Re: [PATCH tip/locking/core v8 1/5] locking/qspinlock: Use _acquire/_release versions of cmpxchg & xchg
From: Boqun Feng
Date: Mon Oct 19 2015 - 23:49:15 EST
On Mon, Oct 19, 2015 at 08:46:02PM -0700, Davidlohr Bueso wrote:
> On Tue, 20 Oct 2015, Boqun Feng wrote:
>
> >>@@ -93,7 +94,7 @@ static __always_inline void queued_spin_unlock(struct qspinlock *lock)
> >> /*
> >> * smp_mb__before_atomic() in order to guarantee release semantics
> >> */
> >>- smp_mb__before_atomic_dec();
> >>+ smp_mb__before_atomic();
> >> atomic_sub(_Q_LOCKED_VAL, &lock->val);
> >
> >Just be curious, you don't use atomic_sub_release() here on purpose?
>
> atomic_sub() does not imply barriers, so there's no relaxed variants; that's
> only for _return() (and such) to the caller.
>
Ah.. my mistake ;-(
Thank you.
Regards,
Boqun
> Thanks,
> Davidlohr
Attachment:
signature.asc
Description: PGP signature