Message ID | 20200929020533.711288-1-andriin@fb.com (mailing list archive) |
---|---|
Headers | show |
Series | libbpf: BTF writer APIs | expand |
On Mon, Sep 28, 2020 at 7:06 PM Andrii Nakryiko <andriin@fb.com> wrote: > > This patch set introduces a new set of BTF APIs to libbpf that allow to > conveniently produce BTF types and strings. These APIs will allow libbpf to do > more intrusive modifications of program's BTF (by rewriting it, at least as of > right now), which is necessary for the upcoming libbpf static linking. But > they are complete and generic, so can be adopted by anyone who has a need to > produce BTF type information. > > One such example outside of libbpf is pahole, which was actually converted to > these APIs (locally, pending landing of these changes in libbpf) completely > and shows reduction in amount of custom pahole code necessary and brings nice > savings in memory usage (about 370MB reduction at peak for my kernel > configuration) and even BTF deduplication times (one second reduction, > 23.7s -> 22.7s). Memory savings are due to avoiding pahole's own copy of > "uncompressed" raw BTF data. Time reduction comes from faster string > search and deduplication by relying on hashmap instead of BST used by pahole's > own code. Consequently, these APIs are already tested on real-world > complicated kernel BTF, but there is also pretty extensive selftest doing > extra validations. > > Selftests in patch #3 add a set of generic ASSERT_{EQ,STREQ,ERR,OK} macros > that are useful for writing shorter and less repretitive selftests. I decided > to keep them local to that selftest for now, but if they prove to be useful in > more contexts we should move them to test_progs.h. And few more (e.g., > inequality tests) macros are probably necessary to have a more complete set. > > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > > v2->v3: > - resending original patches #7-9 as patches #1-3 due to merge conflict; Applied. Thanks
Hello: This series was applied to bpf/bpf-next.git (refs/heads/master): On Mon, 28 Sep 2020 19:05:29 -0700 you wrote: > This patch set introduces a new set of BTF APIs to libbpf that allow to > conveniently produce BTF types and strings. These APIs will allow libbpf to do > more intrusive modifications of program's BTF (by rewriting it, at least as of > right now), which is necessary for the upcoming libbpf static linking. But > they are complete and generic, so can be adopted by anyone who has a need to > produce BTF type information. > > [...] Here is the summary with links: - [v3,bpf-next,1/3] libbpf: add BTF writing APIs https://git.kernel.org/bpf/bpf-next/c/4a3b33f8579a - [v3,bpf-next,2/3] libbpf: add btf__str_by_offset() as a more generic variant of name_by_offset https://git.kernel.org/bpf/bpf-next/c/f86ed050bcee - [v3,bpf-next,3/3] selftests/bpf: test BTF writing APIs https://git.kernel.org/bpf/bpf-next/c/9141f75a3279 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html