On Mon, Jan 08, 2024 at 10:14:13AM +0100, Lorenz Bauer wrote: > On Sat, Jan 6, 2024 at 7:25 PM Daniel Xu <dxu@xxxxxxxxx> wrote: > > > > This macro pair is functionally equivalent to BTF_SET8_START/END, except > > with BTF_SET8_KFUNCS flag set in the btf_id_set8 flags field. The next > > commit will codemod all kfunc set8s to this new variant such that all > > kfuncs are tagged as such in .BTF_ids section. > > > > Signed-off-by: Daniel Xu <dxu@xxxxxxxxx> > > --- > > include/linux/btf_ids.h | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/include/linux/btf_ids.h b/include/linux/btf_ids.h > > index dca09b7f21dc..0fe4f1cd1918 100644 > > --- a/include/linux/btf_ids.h > > +++ b/include/linux/btf_ids.h > > @@ -8,6 +8,9 @@ struct btf_id_set { > > u32 ids[]; > > }; > > > > +/* This flag implies BTF_SET8 holds kfunc(s) */ > > +#define BTF_SET8_KFUNCS (1 << 0) > > Nit: could this be an enum so that the flag is discoverable via BTF? Sure, makes sense. > Also, isn't this UAPI if pahole interprets this flag? Not sure. I guess it'd fall under same category as any of the structs the kernel lays out in .BTF_ids, like `struct btf_id_set8`. IMO it's not, as that's kinda confusing to call anything in ELF uapi. Eg I don't think people would consider layout of `.data..percpu` section uapi. Thanks, Daniel