[PATCH v3 0/5] lockinig/rwsem: Fix rwsem bugs & enable true lock handoff

From: Waiman Long
Date: Mon Oct 17 2022 - 17:14:52 EST


v3:
- Make a minor cleanup to patch 1.
- Add 3 more patches to implement true lock handoff.

v2:
- Add an additional patch to limit the # of first waiter optimistic
spinning in the writer slowpath.

It turns out the current waiter optimistic spinning code does not work
that well if we have RT tasks in the mix. This patch series include two
different fixes to resolve those issues. The last 3 patches modify the
handoff code to implement true lock handoff similar to that of mutex.

Waiman Long (5):
locking/rwsem: Prevent non-first waiter from spinning in down_write()
slowpath
locking/rwsem: Limit # of null owner retries for handoff writer
locking/rwsem: Change waiter->hanodff_set to a handoff_state enum
locking/rwsem: Enable direct rwsem lock handoff
locking/rwsem: Update handoff lock events tracking

kernel/locking/lock_events_list.h | 6 +-
kernel/locking/rwsem.c | 172 +++++++++++++++++++++++-------
2 files changed, 138 insertions(+), 40 deletions(-)

--
2.31.1