Messages in this thread | | | From | Waiman Long <> | Subject | [PATCH v2 0/8] locking/rwsem: Rework writer wakeup and handoff | Date | Mon, 27 Mar 2023 16:24:05 -0400 |
| |
This is a followup to the patches in queue.git locking/core branch posted by Peter in [1]. His patch series unified the reader and writer paths as much as possible and making the code a bit easier to maintain. Unfortunately, it did regress performance because it suppress writer lock stealing via optimistic spinning [2].
This series include the 7 patches in his locking/core branch with a minor change to the last one to remove the now unneeded rwsem_wlock_ehandoff event. The last patch in the series restores the old write lock slow path behavior of acquiring the write lock mostly in the slow path which is necessary to restore the performance level back to parity.
[1] https://lore.kernel.org/lkml/Y%2FuN+89FlTw45uiA@hirez.programming.kicks-ass.net/ [2] https://lore.kernel.org/lkml/c126f079-88a2-4067-6f94-82f51cf5ff2b@redhat.com/
Peter Zijlstra (6): locking/rwsem: Enforce queueing when HANDOFF locking/rwsem: Rework writer wakeup locking/rwsem: Simplify rwsem_writer_wake() locking/rwsem: Split out rwsem_reader_wake() locking/rwsem: Unify wait loop locking/rwsem: Use the force
Waiman Long (2): locking/rwsem: Minor code refactoring in rwsem_mark_wake() locking/rwsem: Restore old write lock slow path behavior
kernel/locking/rwsem.c | 466 ++++++++++++++++++++++------------------- 1 file changed, 246 insertions(+), 220 deletions(-)
-- 2.31.1
| |