diff options
author | Oleg Nesterov <[email protected]> | 2013-08-06 18:08:44 +0200 |
---|---|---|
committer | Steven Rostedt <[email protected]> | 2013-08-13 21:05:57 -0400 |
commit | 12473965c38a527a0c6f7a38d23edce60957f873 (patch) | |
tree | 390d32b5ae485dda15302f370812bf668f5cdd87 /net/lapb/lapb_iface.c | |
parent | 36009d07b79d2a168d6037947357d96e5d8cebe7 (diff) |
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/[email protected]
Tested-by: David Ahern <[email protected]>
Acked-by: Peter Zijlstra <[email protected]>
Signed-off-by: Oleg Nesterov <[email protected]>
Signed-off-by: Steven Rostedt <[email protected]>
Diffstat (limited to 'net/lapb/lapb_iface.c')
0 files changed, 0 insertions, 0 deletions