summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/stackcollapse.py
diff options
context:
space:
mode:
authorzhidao su <suzhidao@xiaomi.com>2026-03-25 02:47:18 +0800
committerTejun Heo <tj@kernel.org>2026-03-24 10:33:21 -1000
commit9edd04c4189e047d4b4f6efd1255e2a32cb167b8 (patch)
treec1d97263f8834b8f5bd6deb7f564c513542bc01a /tools/perf/scripts/python/stackcollapse.py
parent4624211bc633481523475d0586a47c0a31c91fa4 (diff)
docs: Raise minimum pahole version to 1.26 for KF_IMPLICIT_ARGS kfuncs
Since Linux 7.0, kfuncs annotated with KF_IMPLICIT_ARGS require pahole v1.26 or later. Without it, such kfuncs will have incorrect BTF prototypes in vmlinux, causing BPF programs to fail to load with a "func_proto incompatible with vmlinux" error. Many sched_ext kfuncs are affected (e.g. scx_bpf_create_dsq, scx_bpf_kick_cpu). The root cause: scripts/Makefile.btf passes --btf_features=decl_tag_kfuncs to pahole only when pahole >= 1.26. Without that flag, pahole emits no DECL_TAG BTF entries for __bpf_kfunc-annotated functions. As a result, resolve_btfids/main.c::collect_kfuncs() finds no bpf_kfunc DECL_TAGs, short-circuits at line 1002, and btf2btf() never creates the _impl variants or strips the implicit 'aux' argument from the visible proto. The vmlinux BTF retains the 3-param prototype while BPF programs declare the 2-param version, triggering the mismatch. Raise the minimum version in the requirements table from 1.22 to 1.26 and add a note explaining the failure mode, so users understand why their BPF programs fail on distributions shipping pahole v1.25 (e.g. Ubuntu 24.04 LTS). Suggested-by: Jonathan Corbet <corbet@lwn.net> Signed-off-by: zhidao su <suzhidao@xiaomi.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions