On Fri, May 12, 2017 at 01:15:45PM -0400, Steven Rostedt wrote: > From: "Steven Rostedt (VMware)" <rost...@goodmis.org> > > As stack tracing now requires "rcu watching", force RCU to be watching when > recording a stack trace. > > Signed-off-by: Steven Rostedt (VMware) <rost...@goodmis.org>
Assuming that you never get to __trace_stack() if in an NMI handler, this looks good to me! In contrast, if if __trace_stack() ever is called from an NMI handler, invoking rcu_irq_enter() can be fatal. Thanx, Paul > --- > kernel/trace/trace.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c > index c4536c449021..a4208cebb42b 100644 > --- a/kernel/trace/trace.c > +++ b/kernel/trace/trace.c > @@ -2568,7 +2568,12 @@ static inline void ftrace_trace_stack(struct > trace_array *tr, > void __trace_stack(struct trace_array *tr, unsigned long flags, int skip, > int pc) > { > + if (unlikely(rcu_irq_enter_disabled())) > + return; > + > + rcu_irq_enter(); > __ftrace_trace_stack(tr->trace_buffer.buffer, flags, skip, pc, NULL); > + rcu_irq_exit(); > } > > /** > -- > 2.10.2 > >