Re: [PATCH bpf-next v1 04/14] selftests/bpf: Add kfunc set test to resolve_btfids

Alexei Starovoitov <[email protected]>
Newsgroups org.kernel.vger.linux-kbuild,org.kernel.vger.bpf
Message-ID <CAADnVQLLcDPnt5q3MdYjHC1zCJuBPrbRYgoY__5Gk=GKoBvWAg@mail.gmail.com>
On Tue, Jun 16, 2026 at 12:07 AM Emil Tsalapatis <[email protected]> wrote:
>
> On Mon Jun 1, 2026 at 6:17 PM EDT, Ihor Solodrai wrote:
> > Extend the resolve_btfids selftest to cover kfunc sets defined with
> > BTF_KFUNCS_START/BTF_KFUNCS_END.
> >
> > The test verifies that resolve_btfids correctly processes BTF_ID_FLAGS,
> > resolves function IDs, and checks the kfunc set is sorted.
> >
> > Signed-off-by: Ihor Solodrai <[email protected]>
>
> Reviewed-by: Emil Tsalapatis <[email protected]>
>
> One nit below.
>
> > ---
> >  .../selftests/bpf/prog_tests/resolve_btfids.c | 56 +++++++++++++++++++
> >  tools/testing/selftests/bpf/progs/btf_data.c  | 10 ++++
> >  2 files changed, 66 insertions(+)
> >
> > diff --git a/tools/testing/selftests/bpf/prog_tests/resolve_btfids.c b/tools/testing/selftests/bpf/prog_tests/resolve_btfids.c
> > index d0e51979d455..f6fd79b9dd23 100644
> > --- a/tools/testing/selftests/bpf/prog_tests/resolve_btfids.c
> > +++ b/tools/testing/selftests/bpf/prog_tests/resolve_btfids.c
> > @@ -10,6 +10,10 @@
> >  #include <linux/btf_ids.h>
> >  #include "test_progs.h"
> >
> > +#ifndef KF_FASTCALL
> > +#define KF_FASTCALL (1 << 12)
> > +#endif
> > +
> >  struct symbol {
> >       const char      *name;
> >       int              type;
> > @@ -26,6 +30,17 @@ struct symbol test_symbols[] = {
> >       { "func",    BTF_KIND_FUNC,    -1 },
> >  };
> >
> > +struct kfunc_symbol {
> > +     const char      *name;
> > +     s32              id;
> > +     u32              flags;
> > +};
> > +
> > +static struct kfunc_symbol kfunc_symbols[] = {
> > +     { "kfunc_a", -1, 0 },
> > +     { "kfunc_b", -1, KF_FASTCALL },
> > +};
> > +
> >  /* Align the .BTF_ids section to 4 bytes */
> >  asm (
> >  ".pushsection " BTF_IDS_SECTION " ,\"a\"; \n"
> > @@ -77,7 +92,13 @@ BTF_ID(union,   U)
> >  BTF_ID(func,    func)
> >  BTF_SET_END(test_set)
> >
> > +BTF_KFUNCS_START(test_kfunc_set)
> > +BTF_ID_FLAGS(func, kfunc_a)
> > +BTF_ID_FLAGS(func, kfunc_b, KF_FASTCALL)
> > +BTF_KFUNCS_END(test_kfunc_set)
> > +
> >  #pragma GCC visibility pop
> > +
> >  static int
> >  __resolve_symbol(struct btf *btf, int type_id)
> >  {
> > @@ -108,6 +129,18 @@ __resolve_symbol(struct btf *btf, int type_id)
> >                       test_symbols[i].id = type_id;
> >       }
> >
> > +     if (BTF_INFO_KIND(type->info) == BTF_KIND_FUNC) {
> > +             str = btf__name_by_offset(btf, type->name_off);
> > +             if (str) {
>
> This can be rewritten to collapse the nesting:
> if (BTF_INFO_KIND(type->info) != BTF_KIND_FUNC)
>         return 0;
>
> str = btf__name_by_offset(btf, type->name_off);
> if (!str)
>         return 0;
>
> <the rest>

Thank you for this comment :)

Together we can fight claude habits :)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.