Messages in this thread | | | Date | Thu, 16 Apr 2009 13:03:01 -0400 (EDT) | From | Steven Rostedt <> | Subject | Re: [PATCH 2/2] tracing/events/lockdep: move tracepoints within recursive protection |
| |
On Thu, 16 Apr 2009, Peter Zijlstra wrote:
> On Thu, 2009-04-16 at 12:15 -0400, Steven Rostedt wrote: > > plain text document attachment > > (0002-tracing-events-lockdep-move-tracepoints-within-recu.patch) > > From: Steven Rostedt <srostedt@redhat.com> > > > > With the current location of the tracepoints in lockdep, the system > > can hard lockup in minutes when the tracepoints are enabled. > > > > Moving the tracepoints outside inside the lockdep protection solves > > the issue. > > NAK > > the idea is to eventually move lockdep on top of the tracepoints. The > tracer should grow to be more robust and handle recursion itself. > > Its likely a case of the tracer using a spinlock or mutex in the > tracepoint code. When I did the tracepoints I converted one such to a > raw_spinlock_t in the trace_print code.
Note, that the ring buffer and events are made to be recursive. That is, it allows one event to trace within another event. If the tracepoint is triggered by something within the trace point handler, then we are screwed. That needs to be fixed.
I have not seen what is triggering back into locking. The ring buffer and what I can see by the event code, does not grab any locks besides raw ones.
-- Steve
| |