hi, adding helpers for trampolines and 2 other fixes to have kernel support for loading trampoline programs in bcc/bpftrace. Original rfc post [1]. Speedup output of perf bench while running klockstat.py on kprobes vs trampolines: Without: $ perf bench sched messaging -l 50000 ... Total time: 18.571 [sec] With current kprobe tracing: $ perf bench sched messaging -l 50000 ... Total time: 183.395 [sec] With kfunc tracing: $ perf bench sched messaging -l 50000 ... Total time: 39.773 [sec] v2 changes: - make the unwind work for dispatcher as well - added test for allowed trampolines count - used raw tp pt_regs nest-arrays for trampoline helpers thanks, jirka [1] https://lore.kernel.org/netdev/20191229143740.29143-1-jolsa@xxxxxxxxxx/ --- Jiri Olsa (6): bpf: Allow ctx access for pointers to scalar bpf: Add bpf_perf_event_output_kfunc bpf: Add bpf_get_stackid_kfunc bpf: Add bpf_get_stack_kfunc bpf: Allow to resolve bpf trampoline and dispatcher in unwind selftest/bpf: Add test for allowed trampolines count include/linux/bpf.h | 12 +++++++++- kernel/bpf/btf.c | 13 ++++++++++- kernel/bpf/core.c | 2 ++ kernel/bpf/dispatcher.c | 4 ++-- kernel/bpf/trampoline.c | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++------ kernel/trace/bpf_trace.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/testing/selftests/bpf/prog_tests/trampoline_count.c | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/testing/selftests/bpf/progs/test_trampoline_count.c | 21 ++++++++++++++++++ 8 files changed, 325 insertions(+), 11 deletions(-) create mode 100644 tools/testing/selftests/bpf/prog_tests/trampoline_count.c create mode 100644 tools/testing/selftests/bpf/progs/test_trampoline_count.c