Since Linux 7.0, kfuncs annotated with KF_IMPLICIT_ARGS require pahole v1.26 or later. Without it, such kfuncs have incorrect BTF prototypes in vmlinux, causing BPF programs to fail with 'func_proto incompatible with vmlinux' error.
This affects all sched_ext kfuncs (e.g. scx_bpf_create_dsq, scx_bpf_dispatch) and other KF_IMPLICIT_ARGS kfuncs across the kernel. Ubuntu 24.04 LTS ships pahole v1.25 by default, causing 23/30 sched_ext selftests to fail on affected systems. Document this requirement in Documentation/process/changes.rst so users understand the failure mode and can upgrade pahole appropriately. Signed-off-by: zhidao su <[email protected]> --- Documentation/process/changes.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/process/changes.rst b/Documentation/process/changes.rst index 6b373e193548..141a4576c24d 100644 --- a/Documentation/process/changes.rst +++ b/Documentation/process/changes.rst @@ -145,6 +145,11 @@ Since Linux 5.2, if CONFIG_DEBUG_INFO_BTF is selected, the build system generates BTF (BPF Type Format) from DWARF in vmlinux, a bit later from kernel modules as well. This requires pahole v1.22 or later. +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. + It is found in the 'dwarves' or 'pahole' distro packages or from https://fedorapeople.org/~acme/dwarves/. -- 2.43.0

