kernel-fxtec-pro1x/include/trace
Oleg Nesterov 12473965c3 tracing/perf: Reimplement TP_perf_assign() logic
The next patch tries to avoid the costly perf_trace_buf_* calls
when possible but there is a problem. We can only do this if
__task == NULL, perf_tp_event(task != NULL) has the additional
code for this case.

Unfortunately, TP_perf_assign/__perf_xxx which changes the default
values of __count/__task variables for perf_trace_buf_submit() is
called "too late", after we already did perf_trace_buf_prepare(),
and the optimization above can't work.

So this patch simply embeds __perf_xxx() into TP_ARGS(), this way
DECLARE_EVENT_CLASS() can use the result of assignments hidden in
"args" right after ftrace_get_offsets_##call() which is mostly
trivial. This allows us to have the fast-path "__task != NULL"
check at the start, see the next patch.

Link: http://lkml.kernel.org/r/20130806160844.GA2739@redhat.com

Tested-by: David Ahern <dsahern@gmail.com>
Acked-by: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
2013-08-13 21:05:57 -04:00
..
events tracing/perf: Reimplement TP_perf_assign() logic 2013-08-13 21:05:57 -04:00
define_trace.h tracing: Add DEFINE_EVENT_FN() macro 2013-06-20 22:24:32 -07:00
ftrace.h tracing/perf: Reimplement TP_perf_assign() logic 2013-08-13 21:05:57 -04:00
syscall.h tracing: Add missing syscall_metadata comment 2013-07-01 20:34:25 -04:00