Em Tue, May 10, 2022 at 09:46:56AM +0200, Jiri Olsa escreveu: > hi, > sending change we discussed some time ago [1] to get rid of > some deprecated functions we use in perf prologue code. > > Despite the gloomy discussion I think the final code does > not look that bad ;-) > > This patchset removes following libbpf functions from perf: > bpf_program__set_prep > bpf_program__nth_fd > struct bpf_prog_prep_result So, the first patch is already in torvalds/master, I tried applying the other two patches to my local perf/core, that already is merged with torvalds/master and: [root@quaco ~]# perf test 42 42: BPF filter : 42.1: Basic BPF filtering : FAILED! 42.2: BPF pinning : FAILED! 42.3: BPF prologue generation : FAILED! [root@quaco ~]# I'll push my local perf/core to tmp.perf/core and continue tomorrow. Its failing around here: Open Debuginfo file: /root/.cache/debuginfod_client/e1c3de4b4c5db158f2098e80f2bf9140e8cfbdb6/debuginfo Try to find probe point from debuginfo. Matched function: do_epoll_wait [3806bb5] Probe point found: do_epoll_wait+0 Found 1 probe_trace_events. Looking at the vmlinux_path (8 entries long) symsrc__init: build id mismatch for vmlinux. symsrc__init: cannot get elf header. Using /proc/kcore for kernel data Using /proc/kallsyms for symbols do_epoll_wait is out of .text, skip it. Post processing failed or all events are skipped. (1) Probe point 'do_epoll_wait' not found. bpf_probe: failed to convert perf probe events Failed to add events selected by BPF test child finished with -1 ---- end ---- BPF filter subtest 1: FAILED But: [root@quaco ~]# grep do_epoll_wait /proc/kallsyms ffffffff973c2a30 t do_epoll_wait [root@quaco ~]# - Arnaldo > v2 changes: > - use fallback section prog handler, so we don't need to > use section prefix [Andrii] > - realloc prog->insns array in bpf_program__set_insns [Andrii] > - squash patch 1 from previous version with > bpf_program__set_insns change [Daniel] > - patch 3 already merged [Arnaldo] > - added more comments > > meanwhile.. perf/core and bpf-next diverged, so: > - libbpf bpf_program__set_insns change is based on bpf-next/master > - perf changes do not apply on bpf-next/master so they are based on > perf/core ... however they can be merged only after we release > libbpf 0.8.0 with bpf_program__set_insns change, so we don't break > the dynamic linking > I'm sending perf changes now just for review, I'll resend them > once libbpf 0.8.0 is released > > thanks, > jirka > > > [1] https://lore.kernel.org/bpf/CAEf4BzaiBO3_617kkXZdYJ8hS8YF--ZLgapNbgeeEJ-pY0H88g@xxxxxxxxxxxxxx/ > --- > Jiri Olsa (1): > libbpf: Add bpf_program__set_insns function > > tools/lib/bpf/libbpf.c | 22 ++++++++++++++++++++++ > tools/lib/bpf/libbpf.h | 18 ++++++++++++++++++ > tools/lib/bpf/libbpf.map | 1 + > 3 files changed, 41 insertions(+) > > Jiri Olsa (2): > perf tools: Register fallback libbpf section handler > perf tools: Rework prologue generation code > > tools/perf/util/bpf-loader.c | 175 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------- > 1 file changed, 157 insertions(+), 18 deletions(-) -- - Arnaldo