]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
libbpf: Change log level of BTF loading error message
authorIhor Solodrai <ihor.solodrai@pm.me>
Wed, 18 Sep 2024 19:33:22 +0000 (19:33 +0000)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 4 Oct 2024 00:47:35 +0000 (17:47 -0700)
Reduce log level of BTF loading error to INFO if BTF is not required.

Andrii says:

  Nowadays the expectation is that the BPF program will have a valid
  .BTF section, so even though .BTF is "optional", I think it's fine
  to emit a warning for that case (any reasonably recent Clang will
  produce valid BTF).

  Ihor's patch is fixing the situation with an outdated host kernel
  that doesn't understand BTF. libbpf will try to "upload" the
  program's BTF, but if that fails and the BPF object doesn't use
  any features that require having BTF uploaded, then it's just an
  information message to the user, but otherwise can be ignored.

Suggested-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Ihor Solodrai <ihor.solodrai@pm.me>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/libbpf.c

index 219facd0e66e8be492cfc3dc980605b231598ce2..b8d72b5fbc7905cafac295c457368e0249fdcdd3 100644 (file)
@@ -3581,11 +3581,12 @@ static int bpf_object__sanitize_and_load_btf(struct bpf_object *obj)
 report:
        if (err) {
                btf_mandatory = kernel_needs_btf(obj);
-               pr_warn("Error loading .BTF into kernel: %d. %s\n", err,
-                       btf_mandatory ? "BTF is mandatory, can't proceed."
-                                     : "BTF is optional, ignoring.");
-               if (!btf_mandatory)
+               if (btf_mandatory) {
+                       pr_warn("Error loading .BTF into kernel: %d. BTF is mandatory, can't proceed.\n", err);
+               } else {
+                       pr_info("Error loading .BTF into kernel: %d. BTF is optional, ignoring.\n", err);
                        err = 0;
+               }
        }
        return err;
 }