lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAEf4Bzb_XOEoG9anNdzQVJRqd3G4yKJTSa9Dgc9xkMXqn-xdFg@mail.gmail.com>
Date:   Tue, 20 Dec 2022 16:13:13 -0800
From:   Andrii Nakryiko <andrii.nakryiko@...il.com>
To:     Leo Yan <leo.yan@...aro.org>,
        Quentin Monnet <quentin@...valent.com>
Cc:     Changbin Du <changbin.du@...il.com>,
        Alexei Starovoitov <ast@...nel.org>,
        Daniel Borkmann <daniel@...earbox.net>,
        Andrii Nakryiko <andrii@...nel.org>,
        Peter Zijlstra <peterz@...radead.org>,
        Ingo Molnar <mingo@...hat.com>,
        Arnaldo Carvalho de Melo <acme@...nel.org>,
        Shuah Khan <shuah@...nel.org>,
        Martin KaFai Lau <martin.lau@...ux.dev>,
        Song Liu <song@...nel.org>, Yonghong Song <yhs@...com>,
        John Fastabend <john.fastabend@...il.com>,
        KP Singh <kpsingh@...nel.org>,
        Stanislav Fomichev <sdf@...gle.com>,
        Hao Luo <haoluo@...gle.com>, Jiri Olsa <jolsa@...nel.org>,
        bpf@...r.kernel.org, linux-kernel@...r.kernel.org,
        Mark Rutland <mark.rutland@....com>,
        Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
        Namhyung Kim <namhyung@...nel.org>,
        Mykola Lysenko <mykolal@...com>,
        linux-perf-users@...r.kernel.org, linux-kselftest@...r.kernel.org
Subject: Re: [PATCH v3 1/2] libbpf: show error info about missing ".BTF" section

On Tue, Dec 20, 2022 at 3:34 AM Leo Yan <leo.yan@...aro.org> wrote:
>
> On Tue, Dec 20, 2022 at 09:31:14AM +0800, Changbin Du wrote:
>
> [...]
>
> > > > Now will print below info:
> > > > libbpf: failed to find '.BTF' ELF section in /home/changbin/work/linux/vmlinux
> > >
> > > Recently I encountered the same issue, it could be caused by:
> > > either missing to install tool pahole or missing to enable kernel
> > > configuration CONFIG_DEBUG_INFO_BTF.
> > >
> > > Could we give explict info for reasoning failure?  Like:
> > >
> > > "libbpf: failed to find '.BTF' ELF section in /home/changbin/work/linux/vmlinux,
> > > please install pahole and enable CONFIG_DEBUG_INFO_BTF=y for kernel building".
> > >
> > This is vmlinux special information and similar tips are removed from
> > patch V2. libbpf is common for all ELFs.
>
> Okay, I see.  Sorry for noise.
>
> > > > Error: failed to load BTF from /home/changbin/work/linux/vmlinux: No such file or directory
> > >
> > > This log is confusing when we can find vmlinux file but without BTF
> > > section.  Consider to use a separate patch to detect vmlinux not
> > > found case and print out "No such file or directory"?
> > >
> > I think it's already there. If the file doesn't exist, open will fail.
>
> [...]
>
> > > > @@ -990,6 +990,7 @@ static struct btf *btf_parse_elf(const char *path, struct btf *base_btf,
> > > >   err = 0;
> > > >
> > > >   if (!btf_data) {
> > > > +         pr_warn("failed to find '%s' ELF section in %s\n", BTF_ELF_SEC, path);
> > > >           err = -ENOENT;
>
> btf_parse_elf() returns -ENOENT when ELF file doesn't contain BTF
> section, therefore, bpftool dumps error string "No such file or
> directory".  It's confused that actually vmlinux is existed.
>
> I am wondering if we can use error -LIBBPF_ERRNO__FORMAT (or any
> better choice?) to replace -ENOENT at here, this can avoid bpftool to
> outputs "No such file or directory" in this case.

The only really meaningful error code would be -ESRCH, which
strerror() will translate to "No such process", which is also
completely confusing.

In general, I always found these strerror() messages extremely
unhelpful and confusing. I wonder if we should make an effort to
actually emit symbolic names of errors instead (literally, "-ENOENT"
in this case). This is all tooling for engineers, I find -ENOENT or
-ESRCH much more meaningful as an error message, compared to "No such
file" seemingly human-readable interpretation.

Quenting, what do you think about the above proposal for bpftool? We
can have some libbpf helper internally and do it in libbpf error
messages as well and just reuse the logic in bpftool, perhaps?


Anyways, I've applied this patch set to bpf-next. Thanks.


>
> Thanks,
> Leo

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ