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

Steven Rostedt
2017-12-18T23:51:43Z

On Tue, 19 Dec 2017 08:16:14 +1100
"Tobin C. Harding" <me@tobin.cc> 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

-- Steve