Re: [PATCH bpf-next v3] libbpf: add btf__load_vmlinux_btf/btf__load_module_btf

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
>



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux