Messages in this thread | | | Date | Tue, 28 Jun 2016 16:03:33 -0400 | From | Steven Rostedt <> | 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@redhat.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@kernel.org> > > > > Thanks, > > Namhyung > > > > > > > > > > Signed-off-by: Chunyu Hu <chuhu@redhat.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 > > > > > >
| |