[v4,0/5] lockinig/rwsem: Fix rwsem bugs & enable true lock handoff

Message ID 20221024174418.796468-1-longman@redhat.com
Headers
Series lockinig/rwsem: Fix rwsem bugs & enable true lock handoff |

Message

Waiman Long Oct. 24, 2022, 5:44 p.m. UTC
  v4:
 - Update patch descriptions in patches 1 & 2 to make clear the live
   lock conditions that are being fixed by these patches. There is no code
   change from v3.

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

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(-)