[PATCH] tools/perf: Fix bpf__probe to set bpf_prog_type type only if differs from the desired one

Ian Rogers irogers at google.com
Fri Aug 18 04:23:44 AEST 2023


On Thu, Aug 17, 2023 at 10:35 AM Athira Rajeev
<atrajeev at linux.vnet.ibm.com> wrote:
>
>
>
> > 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

Hi,

the patch set:
https://lore.kernel.org/lkml/20230810184853.2860737-1-irogers@google.com/
removes the affected code/test.

Thanks,
Ian


More information about the Linuxppc-dev mailing list