[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YpAmW/BDq4346OaI@kernel.org>
Date: Thu, 26 May 2022 22:16:11 -0300
From: Arnaldo Carvalho de Melo <acme@...nel.org>
To: Jiri Olsa <jolsa@...nel.org>
Cc: Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>,
Andrii Nakryiko <andrii@...nel.org>,
linux-perf-users@...r.kernel.org, netdev@...r.kernel.org,
bpf@...r.kernel.org, Ingo Molnar <mingo@...nel.org>,
Namhyung Kim <namhyung@...nel.org>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Martin KaFai Lau <kafai@...com>,
Song Liu <songliubraving@...com>, Yonghong Song <yhs@...com>,
John Fastabend <john.fastabend@...il.com>,
Ian Rogers <irogers@...gle.com>
Subject: Re: [PATCHv2 0/3] perf tools: Fix prologue generation
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@...co ~]# perf test 42
42: BPF filter :
42.1: Basic BPF filtering : FAILED!
42.2: BPF pinning : FAILED!
42.3: BPF prologue generation : FAILED!
[root@...co ~]#
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@...co ~]# grep do_epoll_wait /proc/kallsyms
ffffffff973c2a30 t do_epoll_wait
[root@...co ~]#
- 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@mail.gmail.com/
> ---
> 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
Powered by blists - more mailing lists