Re: [PATCH] locking/qrwlock: queued_write_lock_slowpath() cleanup

From: Peter Zijlstra
Date: Tue May 04 2021 - 05:20:35 EST


On Tue, Apr 27, 2021 at 08:56:59AM +0100, Will Deacon wrote:
> On Mon, Apr 26, 2021 at 02:50:17PM -0400, Waiman Long wrote:
> > Make the code more readable by replacing the atomic_cmpxchg_acquire()
> > by an equivalent atomic_try_cmpxchg_acquire() and change atomic_add()
> > to atomic_or().
> >
> > For architectures that use qrwlock, I do not find one that has an
> > atomic_add() defined but not an atomic_or(). I guess it should be fine
> > by changing atomic_add() to atomic_or().
> >
> > Note that the previous use of atomic_add() isn't wrong as only one
> > writer that is the wait_lock owner can set the waiting flag and the
> > flag will be cleared later on when acquiring the write lock.
>
> Right, there's no functional change here.
>
> > Suggested-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Waiman Long <longman@xxxxxxxxxx>

> Acked-by: Will Deacon <will@xxxxxxxxxx>

Thanks!