Re: [RFC PATCH v3] locking/atomic: Implement atomic{,64,_long}_{fetch_,}{andnot_or}{,_relaxed,_acquire,_release}()

From: Will Deacon
Date: Thu Jul 29 2021 - 08:35:32 EST


On Thu, Jul 29, 2021 at 01:43:41PM +0200, Arnd Bergmann wrote:
> On Thu, Jul 29, 2021 at 11:56 AM Will Deacon <will@xxxxxxxxxx> wrote:
> > On Thu, Jul 29, 2021 at 05:30:03PM +0800, Rui Wang wrote:
> > > This patch introduce a new atomic primitive andnot_or:
> >
> > Please see my other comments on the other patches you posted:
> >
> > https://lore.kernel.org/r/20210729093923.GD21151@willie-the-truck
> >
> > Overall, I'm not thrilled to bits by extending the atomics API with
> > operations that cannot be implemented efficiently on any (?) architectures
> > and are only used by the qspinlock slowpath on machines with more than 16K
> > CPUs.
>
> Wouldn't this also help improve set_mask_bits()? That one at least has
> a handful of users in the kernel.

For pure LL/SC architectures, yes, but I don't think it helps anybody else.

Afaict, an architecture can already override set_mask_bits, so why do we
need to add this primitive to the atomic API?

Will