Thread (8 messages) flat view 8 messages, 5 authors, 2020-08-06

Re: [PATCH bpf-next 0/3] Add generic and raw BTF parsing APIs to libbpf

From: Andrii Nakryiko <hidden>
Date: 2020-08-06 17:51:16
Also in: bpf

On Thu, Aug 6, 2020 at 10:39 AM Arnaldo Carvalho de Melo
[off-list ref] wrote:
Em Sat, Aug 01, 2020 at 06:32:16PM -0700, Andrii Nakryiko escreveu:
quoted
It's pretty common for applications to want to parse raw (binary) BTF data
from file, as opposed to parsing it from ELF sections. It's also pretty common
for tools to not care whether given file is ELF or raw BTF format. This patch
series exposes internal raw BTF parsing API and adds generic variant of BTF
parsing, which will efficiently determine the format of a given fail and will
parse BTF appropriately.

Patches #2 and #3 removes re-implementations of such APIs from bpftool and
resolve_btfids tools.

Andrii Nakryiko (3):
  libbpf: add btf__parse_raw() and generic btf__parse() APIs
  tools/bpftool: use libbpf's btf__parse() API for parsing BTF from file
  tools/resolve_btfids: use libbpf's btf__parse() API
I haven't checked which of the patches, or some in other series caused
this on Clear Linux:

  21 clearlinux:latest             : FAIL gcc (Clear Linux OS for Intel Architecture) 10.2.1 20200723 releases/gcc-10.2.0-3-g677b80db41, clang ver
sion 10.0.1

  gcc (Clear Linux OS for Intel Architecture) 10.2.1 20200723 releases/gcc-10.2.0-3-g677b80db41

  btf.c: In function 'btf__parse_raw':
  btf.c:625:28: error: 'btf' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    625 |  return err ? ERR_PTR(err) : btf;
        |         ~~~~~~~~~~~~~~~~~~~^~~~~
Yeah, fixed in https://patchwork.ozlabs.org/project/netdev/patch/20200805223359.32109-1-danieltimlee@gmail.com/
This is what I have:

[acme@quaco perf]$ git log -10 --oneline tools/lib/bpf
94a1fedd63ed libbpf: Add btf__parse_raw() and generic btf__parse() APIs
2e49527e5248 libbpf: Add bpf_link detach APIs
1acf8f90ea7e libbpf: Fix register in PT_REGS MIPS macros
50450fc716c1 libbpf: Make destructors more robust by handling ERR_PTR(err) cases
dc8698cac7aa libbpf: Add support for BPF XDP link
d4b4dd6ce770 libbpf: Print hint when PERF_EVENT_IOC_SET_BPF returns -EPROTO
cd31039a7347 tools/libbpf: Add support for bpf map element iterator
da7a35062bcc libbpf bpf_helpers: Use __builtin_offsetof for offsetof
499dd29d90bb libbpf: Add support for SK_LOOKUP program type
4be556cf5aef libbpf: Add SEC name for xdp programs attached to CPUMAP
[acme@quaco perf]$
quoted
 tools/bpf/bpftool/btf.c             |  54 +------------
 tools/bpf/resolve_btfids/.gitignore |   4 +
 tools/bpf/resolve_btfids/main.c     |  58 +-------------
 tools/lib/bpf/btf.c                 | 114 +++++++++++++++++++---------
 tools/lib/bpf/btf.h                 |   5 +-
 tools/lib/bpf/libbpf.map            |   2 +
 6 files changed, 89 insertions(+), 148 deletions(-)
 create mode 100644 tools/bpf/resolve_btfids/.gitignore

--
2.24.1
--

- Arnaldo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help