Re: [tip:tracing/filters] tracing/events: don't use wake up forevents

From: Steven Rostedt
Date: Mon Mar 23 2009 - 15:22:24 EST



On Mon, 23 Mar 2009, Frederic Weisbecker wrote:
> tracing/events: don't use wake up for events
>
> Impact: fix hard-lockup with sched switch events
>
> Some ftrace events, such as sched wakeup, can be traced
> while the runqueue lock is hold. Since they are using
> trace_current_buffer_unlock_commit(), they call wake_up()
> which can try to grab the runqueue lock too, resulting in
> a deadlock.
>
> Now for all event, we call a new helper:
> trace_nowake_buffer_unlock_commit() which do pretty the same than

Ug, that's an ugly name. It should at least be:

trace_buffer_unlock_commit_nowake

to be more in line with kernel conventions. That is where the derivitive
has the same name as the original, like preempt_enable_noresched.

-- Steve

> trace_current_buffer_unlock_commit() except than it doesn't call
> trace_wake_up().
>
> Reported-by: Ingo Molnar <mingo@xxxxxxx>
> Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> LKML-Reference: <1237759847-21025-4-git-send-email-fweisbec@xxxxxxxxx>
> Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/