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 7/31/21 3:26 AM, Andrii Nakryiko wrote:
> 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.
> 

Thanks, will do.

>>  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.
> 

OK, the alias attribute look nicer.

>> +{
>> +       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.
> 

Yeah, will keep this in mind.

>>  } 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