]> www.infradead.org Git - users/dwmw2/linux.git/commit
rcu: Use system_unbound_wq to avoid disturbing isolated CPUs
authorWaiman Long <longman@redhat.com>
Tue, 23 Jul 2024 18:10:25 +0000 (14:10 -0400)
committerNeeraj Upadhyay <neeraj.upadhyay@kernel.org>
Mon, 12 Aug 2024 18:16:41 +0000 (23:46 +0530)
commit0aac9daef6763e6efef398faff71f8c593651cce
treeeff9795747ece60d52b49dd7199a28f02e071371
parent8400291e289ee6b2bf9779ff1c83a291501f017b
rcu: Use system_unbound_wq to avoid disturbing isolated CPUs

It was discovered that isolated CPUs could sometimes be disturbed by
kworkers processing kfree_rcu() works causing higher than expected
latency. It is because the RCU core uses "system_wq" which doesn't have
the WQ_UNBOUND flag to handle all its work items. Fix this violation of
latency limits by using "system_unbound_wq" in the RCU core instead.
This will ensure that those work items will not be run on CPUs marked
as isolated.

Beside the WQ_UNBOUND flag, the other major difference between system_wq
and system_unbound_wq is their max_active count. The system_unbound_wq
has a max_active of WQ_MAX_ACTIVE (512) while system_wq's max_active
is WQ_DFL_ACTIVE (256) which is half of WQ_MAX_ACTIVE.

Reported-by: Vratislav Bendel <vbendel@redhat.com>
Closes: https://issues.redhat.com/browse/RHEL-50220
Signed-off-by: Waiman Long <longman@redhat.com>
Reviewed-by: "Uladzislau Rezki (Sony)" <urezki@gmail.com>
Tested-by: Breno Leitao <leitao@debian.org>
Signed-off-by: Neeraj Upadhyay <neeraj.upadhyay@kernel.org>
kernel/rcu/tree.c