Re: [PATCH] btf: warn but return no error for NULL btf from __register_btf_kfunc_id_set()

From: SeongJae Park
Date: Tue Jun 27 2023 - 12:44:34 EST


On Tue, 27 Jun 2023 16:37:50 +0000 SeongJae Park <sj@xxxxxxxxxx> wrote:

> Hi Jiri,
>
> On Tue, 27 Jun 2023 18:20:39 +0200 Jiri Olsa <olsajiri@xxxxxxxxx> wrote:
>
> > On Mon, Jun 26, 2023 at 06:11:20PM +0000, SeongJae Park wrote:
> > > __register_btf_kfunc_id_set() assumes .BTF to be part of the module's
> > > .ko file if CONFIG_DEBUG_INFO_BTF is enabled. If that's not the case,
> > > the function prints an error message and return an error. As a result,
> > > such modules cannot be loaded.
> > >
> > > However, the section could be stripped out during a build process. It
> > > would be better to let the modules loaded, because their basic
> > > functionalities have no problem[1], though the BTF functionalities will
> > > not be supported. Make the function to lower the level of the message
> > > from error to warn, and return no error.
> > >
> > > [1] https://lore.kernel.org/bpf/20220219082037.ow2kbq5brktf4f2u@apollo.legion/
> > >
> > > Reported-by: Alexander Egorenkov <Alexander.Egorenkov@xxxxxxx>
> > > Link: https://lore.kernel.org/bpf/87y228q66f.fsf@xxxxxxxxxxxxxxxxxxxx/
> > > Suggested-by: Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx>
> > > Link: https://lore.kernel.org/bpf/20220219082037.ow2kbq5brktf4f2u@apollo.legion/
> > > Fixes: dee872e124e8 ("bpf: Populate kfunc BTF ID sets in struct btf")
> >
> > should it be this one in Fixes instead?
> > c446fdacb10d bpf: fix register_btf_kfunc_id_set for !CONFIG_DEBUG_INFO_BTF
>
> The commit c446fdacb10d was trying to fix commit dee872e124e8, which this patch
> is claiming to fix, by relaxing the check. Nevertheless, it seems the check
> need to further relaxed, and therefore I wrote this patch.
>
> For the reason, I was thinking this patch is directly fixing c446fdacb10d, but
> is also fixing a problem originally introduced by dee872e124e8. Nevertheless,
> as the dee872e124e8 also has the Fixes tag, I think your suggestion makes

s/dee872e124e8 also has /c446fdacb10d also has /

Sorry if it made anyone be confused.


Thanks,
SJ

[...]