v1->v2: - Replace trylock with a more light-weight raw_spin_is_locked() call to reduce overhead. - Run fio test in addition to rwsem microbenchmark.
This patch set introduces minor changes to the rwsem code path to provide minor performance improvement especially with short critical sections. 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 wait_lock isn't free. Waiman Long (3): locking/rwsem: Check wait_list without lock if spinner present locking/rwsem: relocate rwsem_down_read_failed() locking/rwsem: Stop active read lock ASAP kernel/locking/rwsem-xadd.c | 129 ++++++++++++++++++++++++++------------------ 1 file changed, 76 insertions(+), 53 deletions(-) -- 1.8.3.1