Messages in this thread | | | Date | Wed, 15 Jun 2016 11:56:11 -0700 | From | Davidlohr Bueso <> | Subject | Re: [RFC PATCH-tip v2 1/6] locking/osq: Make lock/unlock proper acquire/release barrier |
| |
On Wed, 15 Jun 2016, Peter Zijlstra wrote:
>On Wed, Jun 15, 2016 at 11:27:24AM -0700, Davidlohr Bueso wrote: >> On Wed, 15 Jun 2016, Peter Zijlstra wrote: >> >> >In any case, its fairly simple to cure, just add >> >smp_acquire__after_ctrl_dep() at the end. If we bail because >> >need_resched() we don't need the acquire I think. >> >> I was just considering this for your smp_cond_acquire/smp_cond_load_acquire > >Right, so that need_resched break makes that a bit awkward. Not to >mention the cpu_relaxed() vs cpu_relaxed_lowlatency() difference.
Oh sure, I was merely refering to the ordering semantics, not the calls themselves -- although at some point, as archs begin to port locking/core optimizations, we _will_ need the variants for dealing with '_lowlatency'.
> >> rework, so yeah I guess an smp_acquire__after_ctrl_dep would be a nice >> compromise. >> >> However, I was always under the impression that races with node->locked were >> rather harmless (as indicated in the mentioned commit) -- which is why ->locked >> are simple load/stores, with the exception of the unqueueing -- but yeah, that's >> not even paired. > >Yeah, see a few patches further in this series, where he guards a >variables with the osq_lock.
*sigh*
| |