lkml.org 
[lkml]   [2022]   [Apr]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC bpf-next 0/4] bpf: Speed up symbol resolving in kprobe multi link
Date
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@mail.gmail.com/
---
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

\
 
 \ /
  Last update: 2022-04-07 17:32    [W:0.230 / U:0.272 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site