Re: [PATCH bpf v1 3/3] tools/resolve_btfids: Demote unresolved symbol message to debug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Nov 17, 2021 at 10:50:43AM IST, Andrii Nakryiko wrote:
> On Mon, Nov 15, 2021 at 11:18 AM Kumar Kartikeya Dwivedi
> <memxor@xxxxxxxxx> wrote:
> >
> > resolve_btfids prints a warning when it finds an unresolved symbol,
> > (id == 0) in id_patch. This can be the case for BTF sets that are empty
> > (due to disabled config options), hence printing warnings for certain
> > builds, most recently seen in [0]. Hence, demote the warning to debug
> > log level to avoid build time noise.
> >
> >   [0]: https://lore.kernel.org/all/1b99ae14-abb4-d18f-cc6a-d7e523b25542@xxxxxxxxx
> >
> > Fixes: 0e32dfc80bae ("bpf: Enable TCP congestion control kfunc from modules")
> > Reported-by: Pavel Skripkin <paskripkin@xxxxxxxxx>
> > Signed-off-by: Kumar Kartikeya Dwivedi <memxor@xxxxxxxxx>
> > ---
> >  tools/bpf/resolve_btfids/main.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/main.c
> > index a59cb0ee609c..833bfcc9ccf6 100644
> > --- a/tools/bpf/resolve_btfids/main.c
> > +++ b/tools/bpf/resolve_btfids/main.c
> > @@ -569,7 +569,7 @@ static int id_patch(struct object *obj, struct btf_id *id)
> >         int i;
> >
> >         if (!id->id) {
> > -               pr_err("WARN: resolve_btfids: unresolved symbol %s\n", id->name);
> > +               pr_debug("WARN: resolve_btfids: unresolved symbol %s\n", id->name);
>
> This is an important warning that helps detect some misconfiguration,
> we cannot just hide it. If it really is happening for empty lists
> (why?), we should handle empty lists better, but not hide the warning.
>

+Cc Jiri

Sorry for the delay. The 'why' is because in case of empty BTF set, the id->cnt
aliasing over id->id (for non-set __BTF_ID_*) is zero, so it trips over when it
sees it as 0 for empty set in id_patch.

So, what would be your opinion on how to handle this case? Ignore the warning
case for empty sets specifically? (e.g. using string comparison in id_patch for
id->name, or split id and cnt out of union and assign non-zero to id in case cnt
== 0, otherwise copy (saving strncmp for all symbols in id_patch))

Also, if I'm respinning, any comments on the first two which are also fixes for
bugs I introduced, so that we can avoid another round?

--
Kartikeya



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux