Re: locking/rwsem: RT throttling issue due to RT task hogging the cpu
From: Mukesh Ojha
Date: Tue Sep 27 2022 - 11:31:12 EST
Hi Waiman,
Thanks for the reply.
On 9/27/2022 8:56 PM, Waiman Long wrote:
On 9/27/22 11:25, Waiman Long wrote:
On 9/20/22 12:19, Mukesh Ojha wrote:
Hi,
We are observing one issue where, sem->owner is not set and
sem->count=6 [1] which means both RWSEM_FLAG_WAITERS and
RWSEM_FLAG_HANDOFF bits are set. And if unfold the sem->wait_list we
see the following order of process waiting [2] where [a] is waiting
for write, while [b],[c] are waiting for read and [d] is the RT task
for which waiter.handoff_set=true and it is continuously running on
cpu7 and not letting the first write waiter [a] on cpu7.
[1]
sem = 0xFFFFFFD57DDC6680 -> (
count = (counter = 6),
owner = (counter = 0),
[2]
[a] kworker/7:0 pid: 32516 ==> [b] iptables-restor pid: 18625 ==>
[c]HwBinder:1544_3 pid: 2024 ==> [d] RenderEngine pid: 2032 cpu: 7
prio:97 (RT task)
Sometime back, Waiman has suggested this which could help in RT task
leaving the cpu.
https://lore.kernel.org/all/8c33f989-8870-08c6-db12-521de634b34e@xxxxxxxxxx/
Sorry for the late reply. There is now an alternative way of dealing
with this RT task hogging issue with the commit 48dfb5d2560d
("locking/rwsem: Disable preemption while trying for rwsem lock").
Could you try it to see if it can address your problem?
FYI, this commit is in the tip tree. It is not in the mainline yet.
I only posted that patch so, i am aware about it. In that issue
sem->count was 7 and here it is 6 and current issue occurs after fix
48dfb5d2560d ("locking/rwsem: Disable preemption while trying for rwsem
lock").
-Mukesh
Cheers,
Longman