[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190425223011.284686-1-andriin@fb.com>
Date: Thu, 25 Apr 2019 15:30:07 -0700
From: Andrii Nakryiko <andriin@...com>
To: <andrii.nakryiko@...il.com>, <netdev@...r.kernel.org>,
<bpf@...r.kernel.org>
Subject: [PATCH v4 bpf-next 0/4] add btf dumping to bpftool
This patch set adds a new `bpftool btf dump` sub-command, which allows to dump
BTF contents (only types for now). Currently it only outputs low-level
content, almost 1:1 with binary BTF format, but follow up patches will add
ability to dump BTF types as a compilable C header file. JSON output is
supported as well.
Patch #1 adds `btf` sub-command, dumping BTF types in human-readable format.
It also implements reading .BTF data from ELF file.
Patch #2 adds minimal documentation with output format examples and different
ways to specify source of BTF data.
Patch #3 adds support for btf command in bash-completion/bpftool script.
Patch #4 fixes minor indentation issue in bash-completion script.
Output format is mostly following existing format of BPF verifier log, but
deviates from it in few places. More details are in commit message for patch
#1.
Example of output for all supported BTF kinds are in patch #2 as part of
documentation. Some field names are quite verbose and I'd rather shorten them,
if we don't feel like being very close to BPF verifier names is a necessity,
but in this patch I left them exactly the same as in verifier log.
v3->v4:
- reverse Christmas tree (Quentin)
- better docs (Quentin)
v2->v3:
- make map's key|value|kv|all suggestion more precise (Quentin)
- fix default case indentations (Quentin)
v1->v2:
- fix unnecessary trailing whitespaces in bpftool-btf.rst (Yonghong)
- add btf in main.c for a list of possible OBJECTs
- handle unknown keyword under `bpftool btf dump` (Yonghong)
Andrii Nakryiko (4):
bpftool: add ability to dump BTF types
bpftool/docs: add btf sub-command documentation
bpftool: add bash completions for btf command
bpftool: fix indendation in bash-completion/bpftool
.../bpf/bpftool/Documentation/bpftool-btf.rst | 222 +++++++
.../bpftool/Documentation/bpftool-cgroup.rst | 3 +-
.../bpftool/Documentation/bpftool-feature.rst | 3 +-
.../bpf/bpftool/Documentation/bpftool-map.rst | 3 +-
.../bpf/bpftool/Documentation/bpftool-net.rst | 3 +-
.../bpftool/Documentation/bpftool-perf.rst | 3 +-
.../bpftool/Documentation/bpftool-prog.rst | 3 +-
tools/bpf/bpftool/Documentation/bpftool.rst | 3 +-
tools/bpf/bpftool/bash-completion/bpftool | 68 +-
tools/bpf/bpftool/btf.c | 586 ++++++++++++++++++
tools/bpf/bpftool/main.c | 3 +-
tools/bpf/bpftool/main.h | 1 +
12 files changed, 882 insertions(+), 19 deletions(-)
create mode 100644 tools/bpf/bpftool/Documentation/bpftool-btf.rst
create mode 100644 tools/bpf/bpftool/btf.c
--
2.17.1
Powered by blists - more mailing lists