On Fri, Jul 30, 2021 at 4:40 AM Hengqi Chen <hengqi.chen@xxxxxxxxx> wrote: > > Add two new APIs: btf__load_vmlinux_btf and btf__load_module_btf. > btf__load_vmlinux_btf is just an alias to the existing API named > libbpf_find_kernel_btf, rename to be more precisely and consistent > with existing BTF APIs. btf__load_module_btf can be used to load > module BTF, add it for completeness. These two APIs are useful for > implementing tracing tools and introspection tools. This is part > of the effort towards libbpf 1.0. [1] > > [1] https://github.com/libbpf/libbpf/issues/280 I changed this to [0] Closes: https://github.com/libbpf/libbpf/issues/280 which will close an associated Github issue when we sync sources to Github next time. Let's see how this works in practice. > > Signed-off-by: Hengqi Chen <hengqi.chen@xxxxxxxxx> > --- Thanks, applied to bpf-next. But please follow up with a selftest that would utilize this new module BTF API. It's good to have all APIs exercised regularly. Look at test_progs. > tools/lib/bpf/btf.c | 15 ++++++++++++++- > tools/lib/bpf/btf.h | 6 ++++-- > tools/lib/bpf/libbpf.c | 4 ++-- > tools/lib/bpf/libbpf.map | 2 ++ > 4 files changed, 22 insertions(+), 5 deletions(-) > > diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c > index cafa4f6bd9b1..56e84583e283 100644 > --- a/tools/lib/bpf/btf.c > +++ b/tools/lib/bpf/btf.c > @@ -4036,7 +4036,7 @@ static void btf_dedup_merge_hypot_map(struct btf_dedup *d) > */ > if (d->hypot_adjust_canon) > continue; > - > + > if (t_kind == BTF_KIND_FWD && c_kind != BTF_KIND_FWD) > d->map[t_id] = c_id; > > @@ -4410,6 +4410,11 @@ static int btf_dedup_remap_types(struct btf_dedup *d) > * data out of it to use for target BTF. > */ > struct btf *libbpf_find_kernel_btf(void) I switched this to __attribute__((alias("btf__load_vmlinux_btf"))); to match what Quentin did recently. Also moved comment above to be next to btf__load_vmlinux_btf. > +{ > + return btf__load_vmlinux_btf(); > +} > + > +struct btf *btf__load_vmlinux_btf(void) > { > struct { > const char *path_fmt; [...] > diff --git a/tools/lib/bpf/libbpf.map b/tools/lib/bpf/libbpf.map > index 5aca3686ca5e..a2f471950213 100644 > --- a/tools/lib/bpf/libbpf.map > +++ b/tools/lib/bpf/libbpf.map > @@ -380,4 +380,6 @@ LIBBPF_0.5.0 { > btf__load_into_kernel; > btf_dump__dump_type_data; > libbpf_set_strict_mode; > + btf__load_vmlinux_btf; > + btf__load_module_btf; This list needs to be alphabetically sorted. I'll fix it up while applying, but please remember it for the future. > } LIBBPF_0.4.0; > -- > 2.25.1 >