Re: [PATCH v7 bpf-next 09/10] bpf: wire up sleepable bpf_get_stack() and bpf_get_task_stack() helpers

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

 



On Sun, Nov 10, 2024 at 9:51 PM Sergey Senozhatsky
<senozhatsky@xxxxxxxxxxxx> wrote:
>
> Hi,
>
> On (24/08/29 10:42), Andrii Nakryiko wrote:
> > Now that build ID related internals in kernel/bpf/stackmap.c can be used
> > both in sleepable and non-sleepable contexts, we need to add additional
> > rcu_read_lock()/rcu_read_unlock() protection around fetching
> > perf_callchain_entry, but with the refactoring in previous commit it's
> > now pretty straightforward. We make sure to do rcu_read_unlock (in
> > sleepable mode only) right before stack_map_get_build_id_offset() call
> > which can sleep. By that time we don't have any more use of
> > perf_callchain_entry.
>
> Shouldn't this be backported to stable kernels?  It seems that those still
> do suspicious-RCU deference:
>
> __bpf_get_stack()
>   get_perf_callchain()
>     perf_callchain_user()
>       perf_get_guest_cbs()

Do you see this issue in practice or have some repro?
__bpf_get_stack() shouldn't be callable from sleepable BPF programs
until my patch set, so I don't think there is anything to be
backported. But maybe I'm missing something, which is why I'm asking
whether this is a conclusion drawn from source code analysis, or there
was actually a report somewhere.





[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