hi, sending additional fix for symbol resolving in kprobe multi link requested by Alexei and Andrii [1]. This speeds up bpftrace kprobe attachment, when using pure symbols (3344 symbols) to attach: Before: # perf stat -r 5 -e cycles ./src/bpftrace -e 'kprobe:x* { } i:ms:1 { exit(); }' ... 6.5681 +- 0.0225 seconds time elapsed ( +- 0.34% ) After: # perf stat -r 5 -e cycles ./src/bpftrace -e 'kprobe:x* { } i:ms:1 { exit(); }' ... 0.5661 +- 0.0275 seconds time elapsed ( +- 4.85% ) There are 2 reasons I'm sending this as RFC though.. - I added test that meassures attachment speed on all possible functions from available_filter_functions, which is 48712 functions on my setup. The attach/detach speed for that is under 2 seconds and the test will fail if it's bigger than that.. which might fail on different setups or loaded machine.. I'm not sure what's the best solution yet, separate bench application perhaps? - copy_user_syms function potentially allocates lot of memory (~6MB in my tests with attaching ~48k functions). I haven't seen this to fail yet, but it might need to be changed to allocate memory gradually if needed, do we care? ;-) thanks, jirka [1] https://lore.kernel.org/bpf/CAEf4BzZtQaiUxQ-sm_hH2qKPRaqGHyOfEsW96DxtBHRaKLoL3Q@xxxxxxxxxxxxxx/ --- Jiri Olsa (4): kallsyms: Add kallsyms_lookup_names function fprobe: Resolve symbols with kallsyms_lookup_names bpf: Resolve symbols with kallsyms_lookup_names for kprobe multi link selftests/bpf: Add attach bench test include/linux/kallsyms.h | 6 ++++ kernel/kallsyms.c | 50 ++++++++++++++++++++++++++++++++- kernel/trace/bpf_trace.c | 123 +++++++++++++++++++++++++++++++++++++++++++++++--------------------------------- kernel/trace/fprobe.c | 23 ++------------- tools/testing/selftests/bpf/prog_tests/kprobe_multi_test.c | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tools/testing/selftests/bpf/progs/kprobe_multi_empty.c | 12 ++++++++ 6 files changed, 283 insertions(+), 72 deletions(-) create mode 100644 tools/testing/selftests/bpf/progs/kprobe_multi_empty.c