Re: [PATCH 3/3] trace: print address if symbol not found

From: Tobin C. Harding
Date: Mon Dec 18 2017 - 22:00:24 EST


On Mon, Dec 18, 2017 at 06:51:43PM -0500, Steven Rostedt wrote:
> On Tue, 19 Dec 2017 08:16:14 +1100
> "Tobin C. Harding" <me@xxxxxxxx> wrote:
>
> > > > #endif /* _LINUX_KERNEL_TRACE_H */
> > > > diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
> > > > index 1e1558c99d56..3e28522a76f4 100644
> > > > --- a/kernel/trace/trace_events_hist.c
> > > > +++ b/kernel/trace/trace_events_hist.c
> > > > @@ -982,7 +982,7 @@ static void hist_trigger_stacktrace_print(struct seq_file *m,
> > > > return;
> > > >
> > > > seq_printf(m, "%*c", 1 + spaces, ' ');
> > > > - sprint_symbol(str, stacktrace_entries[i]);
> > > > + trace_sprint_symbol_addr(str, stacktrace_entries[i]);
> > >
>
> >
> > If you have the time to give me some brief pointers on how I should go
> > about testing this I'd love to test it before the next version. I know
> > very little about ftrace.
>
> For hitting the histogram stacktrace trigger (this code path), make
> sure you have CONFIG_HIST_TRIGGERS enabled. And then do:
>
> # cd /sys/kernel/debug/tracing
> # echo 'hist:keys=common_pid.execname,stacktrace:vals=prev_state' > \
> events/sched/sched_switch/trigger
> # cat events/sched/sched_switch/hist
>
> For the "sym" part, you can do (from the same directory):
>
> # echo 'hist:keys=call_site.sym:vals=bytes_req' > \
> events/kmem/kmalloc/trigger
> # cat events/kmem/kmalloc/hist
>
>
> And for sym-offset:
>
> # echo 'hist:keys=call_site.sym-offset:vals=bytes_req' > \
> events/kmem/kmalloc/trigger
> # cat events/kmem/kmalloc/hist

I ran through these as outlined here for the new version (v4). This hits
the modified code but doesn't test symbol look up failure.

I also configured kernel with 'Perform a startup test on ftrace' for
good luck.

Are you happy with this level of testing?

thanks,
Tobin.