diff options
author | Steven Rostedt <srostedt@redhat.com> | 2008-05-12 21:20:45 +0200 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2008-05-23 20:41:35 +0200 |
commit | 93a588f459da134be6ab17c4104e28441beb0d22 (patch) | |
tree | 30eb991743d7ce5698f070204d666eca98519213 /kernel/trace/trace.h | |
parent | 1d4db00a5e30c7b8f8dc2a1b19e886fd942be143 (diff) | |
download | lwn-93a588f459da134be6ab17c4104e28441beb0d22.tar.gz lwn-93a588f459da134be6ab17c4104e28441beb0d22.zip |
ftrace: change buffers to producer consumer
This patch changes the way the CPU trace buffers are handled.
Instead of always starting from the trace page head, the logic
is changed to a producer consumer logic. This allows for the
buffers to be drained while they are alive.
Signed-off-by: Steven Rostedt <srostedt@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/trace/trace.h')
-rw-r--r-- | kernel/trace/trace.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h index 5df8ff2b84a7..0ce127455b4b 100644 --- a/kernel/trace/trace.h +++ b/kernel/trace/trace.h @@ -53,13 +53,15 @@ struct trace_entry { * the trace, etc.) */ struct trace_array_cpu { - void *trace_current; struct list_head trace_pages; atomic_t disabled; cycle_t time_offset; /* these fields get copied into max-trace: */ - unsigned trace_current_idx; + unsigned trace_head_idx; + unsigned trace_tail_idx; + void *trace_head; /* producer */ + void *trace_tail; /* consumer */ unsigned long trace_idx; unsigned long saved_latency; unsigned long critical_start; |