Re: [tip:tracing/urgent] tracing: Allocate the ftrace eventprofile buffer dynamically

From: Steven Rostedt
Date: Sat Sep 19 2009 - 09:47:23 EST


On Sat, 2009-09-19 at 10:06 +0000, tip-bot for Frederic Weisbecker
wrote:
> Commit-ID: 20ab4425a77a1f34028cc6ce57053c22c184ba5f
> Gitweb: http://git.kernel.org/tip/20ab4425a77a1f34028cc6ce57053c22c184ba5f
> Author: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> AuthorDate: Fri, 18 Sep 2009 06:10:28 +0200
> Committer: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> CommitDate: Fri, 18 Sep 2009 07:25:44 +0200
>
> 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.

OK, now I'm confused ;-)

This version looks like the correct one.

-- Steve

>
> 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@xxxxxxxxxxx>
> Signed-off-by: Frederic Weisbecker <fweisbec@xxxxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Li Zefan <lizf@xxxxxxxxxxxxxx>
> Cc: Jason Baron <jbaron@xxxxxxxxxx>
> Cc: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
> Cc: 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/