bpf: decouple btf from seq bpf fs dump and enable more maps
authorDaniel Borkmann <daniel@iogearbox.net>
Sat, 11 Aug 2018 23:59:17 +0000 (01:59 +0200)
committerDaniel Borkmann <daniel@iogearbox.net>
Sun, 12 Aug 2018 22:52:45 +0000 (00:52 +0200)
commite8d2bec0457962e8f348a9a3627b398f7fe5c5fc
tree9bda920c6a2940980aeb18a79b827b11e3f1cb0d
parent9d6f417714c3aaf67b23ffdc1d2b036cce3ecc1c
bpf: decouple btf from seq bpf fs dump and enable more maps

Commit a26ca7c982cb ("bpf: btf: Add pretty print support to
the basic arraymap") and 699c86d6ec21 ("bpf: btf: add pretty
print for hash/lru_hash maps") enabled support for BTF and
dumping via BPF fs for array and hash/lru map. However, both
can be decoupled from each other such that regular BPF maps
can be supported for attaching BTF key/value information,
while not all maps necessarily need to dump via map_seq_show_elem()
callback.

The basic sanity check which is a prerequisite for all maps
is that key/value size has to match in any case, and some maps
can have extra checks via map_check_btf() callback, e.g.
probing certain types or indicating no support in general. With
that we can also enable retrieving BTF info for per-cpu map
types and lpm.

Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Yonghong Song <yhs@fb.com>
12 files changed:
include/linux/bpf.h
kernel/bpf/arraymap.c
kernel/bpf/cpumap.c
kernel/bpf/devmap.c
kernel/bpf/hashtab.c
kernel/bpf/inode.c
kernel/bpf/local_storage.c
kernel/bpf/lpm_trie.c
kernel/bpf/sockmap.c
kernel/bpf/stackmap.c
kernel/bpf/syscall.c
kernel/bpf/xskmap.c