Re: [RFC PATCH-tip v2 1/6] locking/osq: Make lock/unlock proper acquire/release barrier
From: Waiman Long
Date: Fri Jun 17 2016 - 10:28:31 EST
On 06/16/2016 09:11 PM, Davidlohr Bueso wrote:
On Wed, 15 Jun 2016, Peter Zijlstra wrote:
Yeah, see a few patches further in this series, where he guards a
variables with the osq_lock.
So one problem I have with all this is that if we are hardening
osq_lock/unlock()
because of some future use that is specific to rwsems, then we will
immediately
be hurting mutexes for no good reason.
I am going to change it to use smp_acquire__after_ctrl_dep() as
suggested by PeterZ. Is that a good enough compromise? I have also
changed the xchg in the unlock side to xchg_release which could help
performance in some archs. The thing is when developers see the name
osq_lock/osq_unlock, they will naturally assume the proper barrriers are
provided which is not currently the case.
Anyway, the change won't affect x86, it is probably ARM or PPC that may
have an impact.
Cheers,
Longman