On Fri, Aug 8, 2025 at 8:29 AM Saket Kumar Bhaskar <sk...@linux.ibm.com> wrote:
>
> On Thu, Aug 07, 2025 at 03:21:42PM -0700, Alexei Starovoitov wrote:
> > On Mon, Aug 4, 2025 at 11:29 PM Saket Kumar Bhaskar <sk...@linux.ibm.com> 
> > wrote:
> > >
> > > @@ -60,9 +65,16 @@ static void test_arena_spin_lock_size(int size)
> > >                 return;
> > >         }
> > >
> > > -       skel = arena_spin_lock__open_and_load();
> > > -       if (!ASSERT_OK_PTR(skel, "arena_spin_lock__open_and_load"))
> > > +       skel = arena_spin_lock__open();
> > > +       if (!ASSERT_OK_PTR(skel, "arena_spin_lock__open"))
> > >                 return;
> > > +
> > > +       skel->rodata->nr_cpus = get_nprocs();
> >
> > ...
> >
> > > --- a/tools/testing/selftests/bpf/progs/bpf_arena_spin_lock.h
> > > +++ b/tools/testing/selftests/bpf/progs/bpf_arena_spin_lock.h
> > > @@ -20,8 +20,6 @@
> > >  #define __arena __attribute__((address_space(1)))
> > >  #endif
> > >
> > > -extern unsigned long CONFIG_NR_CPUS __kconfig;
> > > -
> > >  /*
> > >   * Typically, we'd just rely on the definition in vmlinux.h for 
> > > qspinlock, but
> > >   * PowerPC overrides the definition to define lock->val as u32 instead of
> > > @@ -494,7 +492,7 @@ static __always_inline int 
> > > arena_spin_lock(arena_spinlock_t __arena *lock)
> > >  {
> > >         int val = 0;
> > >
> > > -       if (CONFIG_NR_CPUS > 1024)
> > > +       if (nr_cpus > 1024)
> > >                 return -EOPNOTSUPP;
> >
> > We cannot do this. It will make arena_spin_lock much harder to use.
> > BPF CI doesn't run on powerpc anyway, but you can document that this
> > test is disable by creating selftests/bpf/DENYLIST.powerpc.
> Hi Alexie,
> Sorry, I did not get it. Can you please help me to understand why it
> makes arena_spin_lock harder to use.

because requiring user space to do
skel->rodata->nr_cpus = get_nprocs()
is a headache.

Reply via email to