Messages in this thread | | | Date | Tue, 10 Dec 2013 19:00:54 +0100 | From | Peter Zijlstra <> | Subject | Re: [PATCH v2 4/4] futex: Avoid taking hb lock if nothing to wakeup |
| |
On Tue, Dec 10, 2013 at 09:36:36AM -0800, Davidlohr Bueso wrote: > On Tue, 2013-12-10 at 18:15 +0100, Peter Zijlstra wrote: > > - * The length of the list is tracked with atomic ops (hb->waiters), > > - * providing the necessary memory barriers for the waiters. For the > > - * waker side, however, we rely on get_futex_key_refs(), using either > > - * ihold() or the atomic_inc(), for shared futexes. The former provides > > - * a full mb on all architectures. For architectures that do not have an > > - * implicit barrier in atomic_inc/dec, we explicitly add it - please > > - * refer to futex_get_mm() and hb_waiters_inc/dec(). > > IMHO this text gives a nice summary instead of documenting each function > with this things like '... implies MB (B)'. Anyway, I'll resend this > patch with your corrections.
Right, I didn't much care for that. Once you know that you need them and what for, the actual finding of the barriers is usually a 'trivial' matter.
| |