[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160628160333.073b272b@gandalf.local.home>
Date: Tue, 28 Jun 2016 16:03:33 -0400
From: Steven Rostedt <rostedt@...dmis.org>
To: Chunyu Hu <chuhu@...hat.com>
Cc: Namhyung Kim <namhyung@...il.com>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH V3] tracing: Make latency tracers fully support the
set_graph_notrace
On Tue, 28 Jun 2016 04:03:12 -0400 (EDT)
Chunyu Hu <chuhu@...hat.com> wrote:
> Hello,
>
>
> Thanks for attention. It needs about three trace entries after the graph_entry
> of the filtered function, and the entries are all the sub call of the filtered
> function. As tracing_max_latency will be set to the last
> latency value, and only entries with larger latency can be submitted. So
> looks like i missed the reset of the tracing_max_latency. After experiments,
> I wrote a small script, hope it can show something on your machine.
>
> set -x
> debugfs=/sys/kernel/debug
> tracing=/sys/kernel/debug/tracing/
>
> grep debugfs /proc/mounts || mount -t debugfs d $debugfs
>
> echo nop > $tracing/current_tracer
> echo 1 > $tracing/options/display-graph
> echo schedule > $tracing/set_graph_notrace
> echo wakeup > $tracing/current_tracer
>
> for i in $(seq 1 100); do
> for i in $(seq 1 20); do
> echo 1 > $tracing/tracing_max_latency
> cat $tracing/trace > /dev/null
> done
> done
>
Can you post the actually oops you are seeing, because I'm still unable
to trigger this.
-- Steve
>
> > Anyway, the patch looks good to me.
> >
> > Acked-by: Namhyung Kim <namhyung@...nel.org>
> >
> > Thanks,
> > Namhyung
> >
> >
> > >
> > > Signed-off-by: Chunyu Hu <chuhu@...hat.com>
> > > ---
> > > kernel/trace/trace_irqsoff.c | 6 ++++++
> > > kernel/trace/trace_sched_wakeup.c | 6 ++++++
> > > 2 files changed, 12 insertions(+)
> > >
> > > diff --git a/kernel/trace/trace_irqsoff.c b/kernel/trace/trace_irqsoff.c
> > > index 03cdff8..a4ed46a 100644
> > > --- a/kernel/trace/trace_irqsoff.c
> > > +++ b/kernel/trace/trace_irqsoff.c
> > > @@ -175,6 +175,12 @@ static int irqsoff_graph_entry(struct ftrace_graph_ent
> > > *trace)
> > > int ret;
> > > int pc;
> > >
> > > + if (trace->depth < 0)
> > > + return 0;
> > > +
> > > + if (ftrace_graph_notrace_addr(trace->func))
> > > + return 1;
> > > +
> > > if (!func_prolog_dec(tr, &data, &flags))
> > > return 0;
> > >
> > > diff --git a/kernel/trace/trace_sched_wakeup.c
> > > b/kernel/trace/trace_sched_wakeup.c
> > > index 9d4399b..e54fff7 100644
> > > --- a/kernel/trace/trace_sched_wakeup.c
> > > +++ b/kernel/trace/trace_sched_wakeup.c
> > > @@ -239,6 +239,12 @@ static int wakeup_graph_entry(struct ftrace_graph_ent
> > > *trace)
> > > unsigned long flags;
> > > int pc, ret = 0;
> > >
> > > + if (trace->depth < 0)
> > > + return 0;
> > > +
> > > + if (ftrace_graph_notrace_addr(trace->func))
> > > + return 1;
> > > +
> > > if (!func_prolog_preempt_disable(tr, &data, &pc))
> > > return 0;
> > >
> > > --
> > > 1.8.3.1
> > >
> >
>
Powered by blists - more mailing lists