Patch 1 checks wait_list without lock when spinners are present. Patch 2 moves down the rwsem_down_read_failed() function after the optimistic spinning section so that functions in that section can be used.
Patch 3 undoes active read lock ASAP when either the spinners are present or the trylock fails. Waiman Long (3): locking/rwsem: Check wait_list without lock if spinner present locking/rwsem: move down rwsem_down_read_failed() locking/rwsem: Stop active read lock ASAP kernel/locking/rwsem-xadd.c | 126 +++++++++++++++++++++++++++----------------- 1 file changed, 78 insertions(+), 48 deletions(-) -- 1.8.3.1

