Merge branch 'btf_get_next_id'
authorAlexei Starovoitov <ast@kernel.org>
Tue, 20 Aug 2019 16:51:07 +0000 (09:51 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 20 Aug 2019 16:51:07 +0000 (09:51 -0700)
commit51746f94865a165e66d34ab74403810d31eae951
tree30a08257f3e2b40204d52143a4219d022675a82e
parent098454362a06029c1abc175b74409bf7d6e6604b
parent4d374ba0bf30a2a372167ee4b7cdd527e7b47b3b
Merge branch 'btf_get_next_id'

Quentin Monnet says:

====================
This set adds a new command BPF_BTF_GET_NEXT_ID to the bpf() system call,
adds the relevant API function in libbpf, and uses it in bpftool to list
all BTF objects loaded on the system (and to dump the ids of maps and
programs associated with them, if any).

The main motivation of listing BTF objects is introspection and debugging
purposes. By getting BPF program and map information, it should already be
possible to list all BTF objects associated to at least one map or one
program. But there may be unattached BTF objects, held by a file descriptor
from a user space process only, and we may want to list them too.

As a side note, it also turned useful for examining the BTF objects
attached to offloaded programs, which would not show in program information
because the BTF id is not copied when retrieving such info. A fix is in
progress on that side.

v2:
- Rebase patch with new libbpf function on top of Andrii's changes
  regarding libbpf versioning.
====================

Signed-off-by: Alexei Starovoitov <ast@kernel.org>