]> git.baikalelectronics.ru Git - kernel.git/commit
btf: separate btf creation and loading
authorAndrii Nakryiko <andriin@fb.com>
Fri, 8 Feb 2019 19:19:36 +0000 (11:19 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Fri, 8 Feb 2019 20:04:13 +0000 (12:04 -0800)
commit1f9d34bba70a6bc6c0c8e7ccb878acde7e98d5f2
treea7b9c48234295bf780fa7476bf476efe29690b87
parent03009ea402f0f7e7dcdcfc4a66b0c58e63a405be
btf: separate btf creation and loading

This change splits out previous btf__new functionality of constructing
struct btf and loading it into kernel into two:
- btf__new() just creates and initializes struct btf
- btf__load() attempts to load existing struct btf into kernel

btf__free will still close BTF fd, if it was ever loaded successfully
into kernel.

This change allows users of libbpf to manipulate BTF using its API,
without the need to unnecessarily load it into kernel.

One of the intended use cases is pahole, which will do DWARF to BTF
conversion and then use libbpf to do type deduplication, while then
handling ELF sections overwriting and other concerns on its own.

Fixes: f2f9a84a533b ("bpf: btf: print map dump and lookup with btf info")
Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Acked-by: Song Liu <songliubraving@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
tools/lib/bpf/btf.c
tools/lib/bpf/btf.h
tools/lib/bpf/libbpf.c
tools/lib/bpf/libbpf.map