Em Fri, Mar 30, 2018 at 11:26:33AM -0700, Martin KaFai Lau escreveu: > This patch introduces BPF Type Format (BTF). > > BTF (BPF Type Format) is the meta data format which describes > the data types of BPF program/map. Hence, it basically focus > on the C programming language which the modern BPF is primary > using. The first use case is to provide a generic pretty print > capability for a BPF map. > > A modified pahole that can convert dwarf to BTF is here: > https://github.com/iamkafai/pahole/tree/btf
Hey, great, I'll try to review this and if all is well, merge this, please consider CCing me in patches to pahole :-) - Arnaldo > Please see individual patch for details. > > Martin KaFai Lau (10): > bpf: btf: Introduce BPF Type Format (BTF) > bpf: btf: Validate type reference > bpf: btf: Check members of struct/union > bpf: btf: Add pretty print capability for data with BTF type info > bpf: btf: Add BPF_BTF_LOAD command > bpf: btf: Add BPF_OBJ_GET_INFO_BY_FD support to BTF fd > bpf: btf: Add pretty print support to the basic arraymap > bpf: btf: Sync bpf.h and btf.h to tools/ > bpf: btf: Add BTF support to libbpf > bpf: btf: Add BTF tests > > include/linux/bpf.h | 20 +- > include/linux/btf.h | 48 + > include/uapi/linux/bpf.h | 12 + > include/uapi/linux/btf.h | 132 ++ > kernel/bpf/Makefile | 1 + > kernel/bpf/arraymap.c | 50 + > kernel/bpf/btf.c | 2064 > ++++++++++++++++++++++++++ > kernel/bpf/inode.c | 146 +- > kernel/bpf/syscall.c | 51 +- > tools/include/uapi/linux/bpf.h | 13 + > tools/include/uapi/linux/btf.h | 132 ++ > tools/lib/bpf/Build | 2 +- > tools/lib/bpf/bpf.c | 92 +- > tools/lib/bpf/bpf.h | 16 + > tools/lib/bpf/btf.c | 377 +++++ > tools/lib/bpf/btf.h | 22 + > tools/lib/bpf/libbpf.c | 148 +- > tools/lib/bpf/libbpf.h | 3 + > tools/testing/selftests/bpf/Makefile | 25 +- > tools/testing/selftests/bpf/test_btf.c | 1539 +++++++++++++++++++ > tools/testing/selftests/bpf/test_btf_haskv.c | 48 + > tools/testing/selftests/bpf/test_btf_nokv.c | 43 + > 22 files changed, 4943 insertions(+), 41 deletions(-) > create mode 100644 include/linux/btf.h > create mode 100644 include/uapi/linux/btf.h > create mode 100644 kernel/bpf/btf.c > create mode 100644 tools/include/uapi/linux/btf.h > create mode 100644 tools/lib/bpf/btf.c > create mode 100644 tools/lib/bpf/btf.h > create mode 100644 tools/testing/selftests/bpf/test_btf.c > create mode 100644 tools/testing/selftests/bpf/test_btf_haskv.c > create mode 100644 tools/testing/selftests/bpf/test_btf_nokv.c > > -- > 2.9.5