mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-20 05:31:15 +00:00
perf, bpf: minimize the size of perf_trace_() tracepoint handler
move trace_call_bpf() into helper function to minimize the size of perf_trace_*() tracepoint handlers. text data bss dec hex filename 10541679 5526646 2945024 19013349 1221ee5 vmlinux_before 10509422 5526646 2945024 18981092 121a0e4 vmlinux_after It may seem that perf_fetch_caller_regs() can also be moved, but that is incorrect, since ip/sp will be wrong. bpf+tracepoint performance is not affected, since perf_swevent_put_recursion_context() is now inlined. export_symbol_gpl can also be dropped. No measurable change in normal perf tracepoints. Suggested-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Acked-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c60c984042
commit
85b67bcb7e
3 changed files with 27 additions and 11 deletions
|
@ -64,16 +64,9 @@ perf_trace_##call(void *__data, proto) \
|
|||
\
|
||||
{ assign; } \
|
||||
\
|
||||
if (prog) { \
|
||||
*(struct pt_regs **)entry = __regs; \
|
||||
if (!trace_call_bpf(prog, entry) || hlist_empty(head)) { \
|
||||
perf_swevent_put_recursion_context(rctx); \
|
||||
return; \
|
||||
} \
|
||||
} \
|
||||
perf_trace_buf_submit(entry, __entry_size, rctx, \
|
||||
event_call->event.type, __count, __regs, \
|
||||
head, __task); \
|
||||
perf_trace_run_bpf_submit(entry, __entry_size, rctx, \
|
||||
event_call, __count, __regs, \
|
||||
head, __task); \
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue