public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v7 0/4] lockinig/rwsem: Fix rwsem bugs & enable true lock handoff
@ 2023-01-26  0:36 Waiman Long
  2023-01-26  0:36 ` [PATCH v7 1/4] locking/rwsem: Prevent non-first waiter from spinning in down_write() slowpath Waiman Long
                   ` (5 more replies)
  0 siblings, 6 replies; 17+ messages in thread
From: Waiman Long @ 2023-01-26  0:36 UTC (permalink / raw)
  To: Peter Zijlstra, Ingo Molnar, Will Deacon, Boqun Feng
  Cc: linux-kernel, john.p.donnelly, Hillf Danton, Mukesh Ojha,
	Ting11 Wang 王婷, Waiman Long

v7:
 - Add a comment to down_read_non_owner() in patch 2.
 - Drop v6 patches 4 & 6 and simplify the direct rwsem lock handoff
   patch as suggested by PeterZ.

v6:
 - Fix an error in patch 2 reported by kernel test robot.

v5:
 - Drop patch 2 and replace it with 2 new patches disabling preemption on
   all reader functions and writer functions respectively. The other
   patches are adjusted accordingly.

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 (4):
  locking/rwsem: Prevent non-first waiter from spinning in down_write()
    slowpath
  locking/rwsem: Disable preemption at all down_read*() and up_read()
    code paths
  locking/rwsem: Disable preemption at all down_write*() and up_write()
    code paths
  locking/rwsem: Enable direct rwsem lock handoff

 kernel/locking/rwsem.c | 161 +++++++++++++++++++++++++++++------------
 1 file changed, 115 insertions(+), 46 deletions(-)

-- 
2.31.1


^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2023-02-23  1:48 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-26  0:36 [PATCH v7 0/4] lockinig/rwsem: Fix rwsem bugs & enable true lock handoff Waiman Long
2023-01-26  0:36 ` [PATCH v7 1/4] locking/rwsem: Prevent non-first waiter from spinning in down_write() slowpath Waiman Long
2023-01-26 11:38   ` [tip: locking/core] " tip-bot2 for Waiman Long
2023-01-26  0:36 ` [PATCH v7 2/4] locking/rwsem: Disable preemption at all down_read*() and up_read() code paths Waiman Long
2023-01-26 11:38   ` [tip: locking/core] locking/rwsem: Disable preemption in " tip-bot2 for Waiman Long
2023-01-26  0:36 ` [PATCH v7 3/4] locking/rwsem: Disable preemption at all down_write*() and up_write() " Waiman Long
2023-01-26 11:38   ` [tip: locking/core] locking/rwsem: Disable preemption in " tip-bot2 for Waiman Long
2023-01-26  0:36 ` [PATCH v7 4/4] locking/rwsem: Enable direct rwsem lock handoff Waiman Long
2023-02-12 13:33   ` kernel test robot
2023-02-13 12:31   ` Peter Zijlstra
2023-02-13 17:14     ` Waiman Long
2023-02-13 21:52       ` Peter Zijlstra
2023-02-14  2:03         ` Waiman Long
2023-02-23  1:44   ` kernel test robot
2023-01-26 12:46 ` [PATCH v7 0/4] lockinig/rwsem: Fix rwsem bugs & enable true " Ingo Molnar
2023-01-26 13:17   ` Waiman Long
     [not found] ` <20230126100441.4823-1-hdanton@sina.com>
2023-01-26 12:59   ` [PATCH v7 4/4] locking/rwsem: Enable direct rwsem " Waiman Long

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox