kernel-ark/include/trace
Frederic Weisbecker 20ab4425a7 tracing: Allocate the ftrace event profile buffer dynamically
Currently the trace event profile buffer is allocated in the stack. But
this may be too much for the stack, as the events can have large
statically defined field size and can also grow with dynamic arrays.

Allocate two per cpu buffer for all profiled events. The first cpu
buffer is used to host every non-nmi context traces. It is protected
by disabling the interrupts while writing and committing the trace.

The second buffer is reserved for nmi. So that there is no race between
them and the first buffer.

The whole write/commit section is rcu protected because we release
these buffers while deactivating the last profiling trace event.

v2: Move the buffers from trace_event to be global, as pointed by
    Steven Rostedt.

v3: Fix the syscall events to handle the profiling buffer races
    by disabling interrupts, now that the buffers are globals.

Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Jason Baron <jbaron@redhat.com>
Cc: Masami Hiramatsu <mhiramat@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
2009-09-18 07:25:44 +02:00
..
events softirq: add BLOCK_IOPOLL to softirq_to_name 2009-09-17 15:53:44 -04:00
boot.h tracing/fastboot: include missing headers 2008-12-12 09:26:13 +01:00
define_trace.h tracing: Undef TRACE_EVENT_FN between trace events headers inclusion 2009-08-27 18:32:54 +02:00
ftrace.h tracing: Allocate the ftrace event profile buffer dynamically 2009-09-18 07:25:44 +02:00
power.h tracing: replace TP<var> with TP_<var> 2009-03-10 00:35:04 -04:00
syscall.h tracing: Create generic syscall TRACE_EVENTs 2009-08-26 00:41:48 +02:00