original_kernel/kernel/trace
Frederic Weisbecker 07edf71213 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
trace_current_buffer_unlock_commit() except than it doesn't call
trace_wake_up().

Reported-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
LKML-Reference: <1237759847-21025-4-git-send-email-fweisbec@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2009-03-23 09:22:14 +01:00
..
Kconfig
Makefile tracing: add per-event filtering 2009-03-22 18:38:46 +01:00
blktrace.c
events.c ftrace: event profile hooks 2009-03-20 10:17:07 +01:00
ftrace.c
kmemtrace.c
ring_buffer.c tracing: add ring_buffer_event_discard() to ring buffer 2009-03-22 18:38:25 +01:00
trace.c tracing/events: don't use wake up for events 2009-03-23 09:22:14 +01:00
trace.h tracing/events: don't use wake up for events 2009-03-23 09:22:14 +01:00
trace_boot.c
trace_branch.c
trace_clock.c
trace_event_profile.c ftrace: event profile hooks 2009-03-20 10:17:07 +01:00
trace_event_types.h tracing: remove recording function depth from trace_printk 2009-03-19 15:58:47 -04:00
trace_events.c tracing/events: make the filter files writable 2009-03-23 09:22:14 +01:00
trace_events_filter.c tracing: add per-subsystem filtering 2009-03-22 18:38:47 +01:00
trace_events_stage_1.h
trace_events_stage_2.h tracing: add run-time field descriptions for event filtering 2009-03-22 18:11:22 +01:00
trace_events_stage_3.h tracing/events: don't use wake up for events 2009-03-23 09:22:14 +01:00
trace_export.c
trace_functions.c
trace_functions_graph.c function-graph: show binary events as comments 2009-03-19 15:58:56 -04:00
trace_hw_branches.c
trace_irqsoff.c
trace_mmiotrace.c tracing: remove recording function depth from trace_printk 2009-03-19 15:58:47 -04:00
trace_nop.c trace: Call tracing_reset_online_cpus before tracer->init() 2009-02-06 01:01:41 +01:00
trace_output.c ftrace: ensure every event gets an id 2009-03-20 10:17:06 +01:00
trace_output.h tracing: make print_(b)printk_msg_only global 2009-03-19 15:57:55 -04:00
trace_power.c
trace_printk.c tracing: remove recording function depth from trace_printk 2009-03-19 15:58:47 -04:00
trace_sched_switch.c
trace_sched_wakeup.c
trace_selftest.c tracing: keep the tracing buffer after self-test failure 2009-03-22 15:17:21 +01:00
trace_selftest_dynamic.c
trace_stack.c
trace_stat.c
trace_stat.h
trace_syscalls.c
trace_sysprof.c
trace_workqueue.c