[PATCH] tools/perf: Fix bpf__probe to set bpf_prog_type type only if differs from the desired one
Athira Rajeev
atrajeev at linux.vnet.ibm.com
Fri Aug 18 03:35:02 AEST 2023
> On 07-Aug-2023, at 11:07 AM, Sachin Sant <sachinp at linux.ibm.com> wrote:
>
>
>
>> On 07-Aug-2023, at 10:22 AM, Athira Rajeev <atrajeev at linux.vnet.ibm.com> wrote:
>>
>> The test "BPF prologue generation" fails as below:
>>
>> Writing event: p:perf_bpf_probe/func _text+10423200 f_mode=+20(%gpr3):x32 offset=%gpr4:s64 orig=%gpr5:s32
>> In map_prologue, ntevs=1
>> mapping[0]=0
>> libbpf: prog 'bpf_func__null_lseek': BPF program load failed: Permission denied
>> libbpf: prog 'bpf_func__null_lseek': -- BEGIN PROG LOAD LOG --
>> btf_vmlinux is malformed
>> reg type unsupported for arg#0 function bpf_func__null_lseek#5
>> 0: R1=ctx(off=0,imm=0) R10=fp0
>> ;
>> 0: (57) r3 &= 2
>> R3 !read_ok
>> processed 1 insns (limit 1000000) max_states_per_insn 0 total_states 0 peak_states 0 mark_read 0
>> -- END PROG LOAD LOG --
>> libbpf: prog 'bpf_func__null_lseek': failed to load: -13
>> libbpf: failed to load object '[bpf_prologue_test]'
>> bpf: load objects failed: err=-13: (Permission denied)
>> Failed to add events selected by BPF
>>
>> This fails occurs after this commit:
>> commit d6e6286a12e7 ("libbpf: disassociate section handler
>> on explicit bpf_program__set_type() call")'
>>
>> With this change, SEC_DEF handler libbpf which is determined
>> initially based on program's SEC() is set to NULL. The change
>> is made because sec_def is not valid when user sets the program
>> type with bpf_program__set_type function. This commit also fixed
>> bpf_prog_test_load() helper in selftests/bpf to force-set program
>> type only if it differs from the desired one.
>>
>> The "bpf__probe" function in util/bpf-loader.c, also calls
>> bpf_program__set_type to set bpf_prog_type. Add similar fix in
>> here as well to avoid setting sec_def to NULL.
>>
>> Reported-by: Sachin Sant <sachinp at linux.vnet.ibm.com>
>> Signed-off-by: Athira Rajeev <atrajeev at linux.vnet.ibm.com>
>> ---
>
> Thanks Athira for the fix.
> With this patch applied perf BPF prologue sub test works correctly.
>
> 42: BPF filter :
> 42.1: Basic BPF filtering : Ok
> 42.2: BPF pinning : Ok
> 42.3: BPF prologue generation : Ok
>
> Tested-by: Sachin Sant <sachinp at linux.ibm.com>
>
> Can you please use the above mentioned id(without vnet) in the reported-by ?
>
> - Sachin
Hi All,
Looking for review comments on this patch
Athira
More information about the Linuxppc-dev
mailing list