Re: [RFC PATCH bpf-next] bpf: Iterate through all PT_NOTE sections when looking for build id

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

 



On Wed, Aug 12, 2020 at 8:27 AM Song Liu <songliubraving@xxxxxx> wrote:
>
>
>
> > On Aug 12, 2020, at 5:31 AM, Jiri Olsa <jolsa@xxxxxxxxxx> wrote:
> >
> > Currently when we look for build id within bpf_get_stackid helper
> > call, we check the first NOTE section and we fail if build id is
> > not there.
> >
> > However on some system (Fedora) there can be multiple NOTE sections
> > in binaries and build id data is not always the first one, like:
> >
> >  $ readelf -a /usr/bin/ls
> >  ...
> >  [ 2] .note.gnu.propert NOTE             0000000000000338  00000338
> >       0000000000000020  0000000000000000   A       0     0     8358
> >  [ 3] .note.gnu.build-i NOTE             0000000000000358  00000358
> >       0000000000000024  0000000000000000   A       0     0     437c
> >  [ 4] .note.ABI-tag     NOTE             000000000000037c  0000037c
> >  ...
> >
> > So the stack_map_get_build_id function will fail on build id retrieval
> > and fallback to BPF_STACK_BUILD_ID_IP.
> >
> > This patch is changing the stack_map_get_build_id code to iterate
> > through all the NOTE sections and try to get build id data from
> > each of them.
> >
> > When tracing on sched_switch tracepoint that does bpf_get_stackid
> > helper call kernel build, I can see about 60% increase of successful
> > build id retrieval. The rest seems fails on -EFAULT.
> >
> > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
>
> LGTM. Thanks for the fix!
>
> Acked-by: Song Liu <songliubraving@xxxxxx>

It's a good fix.
Applied to bpf tree. Thanks



[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