Messages in this thread | | | Date | Tue, 20 Oct 2015 17:32:28 -0400 | From | Steven Rostedt <> | Subject | Re: [RFC][PATCH] tracing: Have stack tracer force RCU to be watching |
| |
On Tue, 20 Oct 2015 13:25:28 -0700 "Paul E. McKenney" <paulmck@linux.vnet.ibm.com> wrote:
> On Tue, Oct 20, 2015 at 12:10:31PM -0400, Steven Rostedt wrote: > > > > Paul, > > > > I've spent a couple of days debugging this, and finally found that my > > stack tracer was calling the stack trace code, which calls > > __module_address() which asserts the below. > > > > Is just calling rcu_irq_enter() and rcu_irq_exit() safe to do > > everywhere (with interrupts always disabled)? This patch appears to fix > > the bug. > > Yep! Just don't call it from an NMI handler. And don't call it with > interrupts enabled. The patch looks to have interrupts always disabled, > and the surrounding code doesn't look like NMI-safe code anyway, so > should be OK. > > Thanx, Paul >
Hmm, good point about NMI handler. Right now I think the only thing protecting this from getting in the critical section while in NMI is the check that we are using the task struct stack. But that may not be enough in 32 bit.
I should probably add a "if (in_nmi()) return" somewhere.
-- Steve
| |