On Wed, Feb 10, 2021 at 12:14 AM Alexei Starovoitov <ast@xxxxxx> wrote: > > On 2/9/21 2:43 PM, KP Singh wrote: > > On Tue, Feb 9, 2021 at 11:32 PM Alexei Starovoitov <ast@xxxxxx> wrote: > >> > >> On 2/9/21 1:12 PM, KP Singh wrote: > >>> On Tue, Feb 9, 2021 at 9:57 PM Alexei Starovoitov > >>> <alexei.starovoitov@xxxxxxxxx> wrote: > >>>> > >>>> From: Alexei Starovoitov <ast@xxxxxxxxxx> > >>>> > >>>> Since sleepable programs are now executing under migrate_disable > >>>> the per-cpu maps are safe to use. > >>>> The map-in-map were ok to use in sleepable from the time sleepable > >>>> progs were introduced. > >>>> > >>>> Note that non-preallocated maps are still not safe, since there is > >>>> no rcu_read_lock yet in sleepable programs and dynamically allocated > >>>> map elements are relying on rcu protection. The sleepable programs > >>>> have rcu_read_lock_trace instead. That limitation will be addresses > >>>> in the future. > >>>> > >>>> Signed-off-by: Alexei Starovoitov <ast@xxxxxxxxxx> > >>>> Acked-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > >>> > >>> Acked-by: KP Singh <kpsingh@xxxxxxxxxx> > >>> > >>> Thanks! I actually tested out some of our logic which uses per-cpu maps by > >>> switching the programs to their sleepable counterparts > >> > >> You mean after applying this set, right? > >> migrate_disable is the key. > >> It will be difficult to backport to your kernels though. > >> The bpf change to enable per-cpu is easy, but backporting > >> sched support is a different game. > >> > > > > Yes after applying the whole set. > > > > Also, I think I also got it to work on 5.10 by (I am little less sure > > of this one though) > > > > - Backporting https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=12fa97c64dce2f3c2e6eed5dc618bb9046e40bf0 > > - Backporting https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=74d862b682f51e45d25b95b1ecf212428a4967b0 > > - And, backporting this set (I initially missed > > https://lore.kernel.org/bpf/20210209194856.24269-3-alexei.starovoitov@xxxxxxxxx > > where you add the > > calls and ran into issues). > > and the whole machinery that it depends on. https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=12fa97c64dce2f3c2e6eed5dc618bb9046e40bf0 and https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/commit/?id=74d862b682f51e45d25b95b1ecf212428a4967b0 is the machinery I could find between 5.10 and now. But the backport is not really relevant here, I just mentioned it to clarify that I was testing the series more than just applying this single patch :)