Re: Questions about the state of some BTF features

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

 




On 25/10/2024 17:51, Alexei Starovoitov wrote:
> On Fri, Oct 25, 2024 at 9:49 AM Alexei Starovoitov
> <alexei.starovoitov@xxxxxxxxx> wrote:
>>
>> On Fri, Oct 25, 2024 at 9:38 AM Alan Maguire <alan.maguire@xxxxxxxxxx> wrote:
>>>
>>> On 25/10/2024 17:19, Alexei Starovoitov wrote:
>>>> On Fri, Oct 25, 2024 at 9:15 AM Alan Maguire <alan.maguire@xxxxxxxxxx> wrote:
>>>>>
>>>>> On 25/10/2024 17:09, Alexei Starovoitov wrote:
>>>>>> On Thu, Oct 24, 2024 at 4:26 PM Andrii Nakryiko
>>>>>> <andrii.nakryiko@xxxxxxxxx> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> The good news is that already happens, provided you have the updated
>>>>>>>> pahole to handle distilled base generation. After building selftests I see
>>>>>>>>
>>>>>>>> $ objdump -h bpf_testmod.ko |grep BTF
>>>>>>>>   7 .BTF_ids      000001c8  0000000000000000  0000000000000000  00002c50
>>>>>>>>  2**0
>>>>>>>>  50 .BTF          000036f4  0000000000000000  0000000000000000  0006e048
>>>>>>>>  2**0
>>>>>>>>  51 .BTF.base     000004cc  0000000000000000  0000000000000000  0007173c
>>>>>>>>  2**0
>>>>>>>>
>>>>>>>
>>>>>>> Indeed, after updating to the latest pahole master now I get
>>>>>>> .BTF.base, very nice.
>>>>>>
>>>>>> I pulled the latest pahole, rebuilt everything,
>>>>>> but still cannot get it to generate BTF.base.
>>>>>>
>>>>>> Any special trick needed?
>>>>>
>>>>> Hmm, should just work for bpf_testmod.ko as long as "pahole
>>>>> --supported_btf_features" reports "distilled_base" among the set of
>>>>> features. scripts/Makefile.btf should add that feature if KBUILD_EXTMOD
>>>>> is set, as it should be in the case of building bpf_testmod.ko. I'll
>>>>> double-check at my end with latest bpf-next, but it was working
>>>>> yesterday for me.
>>>>
>>>> There must be something else necessary:
>>>>
>>>> pahole -J -j --btf_features=encode_force,var,float,enum64,decl_tag,type_tag,optimized_func,consistent_func,decl_tag_kfuncs
>>>> --lang_exclude=rust --btf_features=distilled_base --btf_base vmlinux
>>>> .../bpf/bpf_testmod/bpf_testmod.ko; .../resolve_btfids -b vmlinux
>>>> .../selftests/bpf/bpf_testmod/bpf_testmod.ko;
>>>>
>>>> objdump -h .../testing/selftests/bpf/bpf_testmod/bpf_testmod.ko|grep BTF
>>>>   7 .BTF_ids      000001c8  0000000000000000  0000000000000000  00001d94  2**0
>>>>  50 .BTF          00002ea7  0000000000000000  0000000000000000  00062e30  2**0
>>>>
>>>
>>> Not sure what's going on for you here to be honest. I just tried pulling
>>> latest bpf-next and dwarves master branch, rebuilding pahole and
>>> selftests. I see .BTF.base sections for each .ko in selftests/bpf.
>>> Can you provide the output of
>>>
>>> pahole --supported_btf_features
>>>
>>> ? If it contains distilled_base things _should_ be working. The only
>>> other reason I can think of that you might not get .BTF.base sections is
>>> if dwarves was built against a local libbpf (rather than the git
>>> submodule)
>>
>> That was it.
>> I did 'git pull' in pahole instead of 'git pull --recurse-submodules'.
>>
>> Thanks for the tips. Now I see .BTF.base section.
> 
> Forgot to add that even in this broken configuration:
> before:
> $ pahole --supported_btf_features
> encode_force,var,float,decl_tag,type_tag,enum64,optimized_func,consistent_func,decl_tag_kfuncs,reproducible_build,distilled_base,global_var
> after:
> $ pahole --supported_btf_features
> encode_force,var,float,decl_tag,type_tag,enum64,optimized_func,consistent_func,decl_tag_kfuncs,reproducible_build,distilled_base,global_var
> 
> No difference :(
> Both claim that distilled_base is working, but it didn't.
> Before had older libbpf submodule.
> Maybe it should print libbpf version or something ?

Good point, this should be clearer. I'll send a patch for pahole which
will ensure the feature isn't reported if libbpf is too old to support
it; at least that way it would have been more obvious for you that
distilled_base wasn't present when using an older libbpf to build pahole.

An extended version description including the libbpf version might be
helpful too, though we shouldn't mess with the format of the basic
pahole version string since it is used so extensively.

Thanks for catching this!

Alan




[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