zhidao su <[email protected]> writes: > 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.
This seems like reasonable information, but is there a reason to not just raise the minimum pahole version to 1.26 and be done with it? Thanks, jon

