]> www.infradead.org Git - users/jedix/linux-maple.git/commit
perf report: Do not process non-JIT BPF ksymbol events
authorNamhyung Kim <namhyung@kernel.org>
Wed, 5 Mar 2025 23:28:38 +0000 (15:28 -0800)
committerNamhyung Kim <namhyung@kernel.org>
Fri, 7 Mar 2025 00:00:25 +0000 (16:00 -0800)
commitb0920abe0d529101bcf2eb1cd309032d2a42b4db
tree0cd60cfc895ebf2820acdbe1918a381fe97ad1e6
parent2c744f38da7aeae77f9fc220a538fe8ca88f6db4
perf report: Do not process non-JIT BPF ksymbol events

The length of PERF_RECORD_KSYMBOL for BPF is a size of JITed code so
it'd be 0 when it's not JITed.  The ksymbol is needed to symbolize the
code when it gets samples in the region but non-JITed code cannot get
samples.  Thus it'd be ok to ignore them.

Actually it caused a performance issue in the perf tools on old ARM
kernels where it can refuse to JIT some BPF codes.  It ended up
splitting the existing kernel map (kallsyms).  And later lookup for a
kernel symbol would create a new kernel map from kallsyms and then
split it again and again. :(

Probably there's a bug in the kernel map/symbol handling in perf tools.
But I think we need to fix this anyway.

Reported-by: Kevin Nomura <nomurak@google.com>
Acked-by: Song Liu <song@kernel.org>
Link: https://lore.kernel.org/r/20250305232838.128692-1-namhyung@kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/machine.c