Changes from v1: https://lkml.org/lkml/2016/5/9/12 - dropped READ_ONCE(sem->counter) patch -- we already have barriers (ie set_task_struct) in the loop, and therefore do not see stale variables. - Reworked and merged the other patches to get rid of the explicit waiter (reader) refcount. (peterz).
Hi, This is a follow up series while reviewing Waiman's reader-owned state work[1]. While I have based it on -tip instead of that change, I can certainly rebase the series in some future iteration. Changes are mainly around reader-waiter optimizations, in no particular order. Has passed numerous DB benchmarks without things falling apart. Full details are in each patch. [1] http://permalink.gmane.org/gmane.linux.kernel/2216743 Thanks! Davidlohr Bueso (2): locking/rwsem: Enable lockless waiter wakeup(s) locking/rwsem: Rework zeroing reader waiter->task kernel/locking/rwsem-xadd.c | 73 +++++++++++++++++++++++++++++---------------- 1 file changed, 48 insertions(+), 25 deletions(-) -- 2.8.1