Commit 0aac9da
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>1 parent 8400291 commit 0aac9da
1 file changed
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3539 | 3539 | | |
3540 | 3540 | | |
3541 | 3541 | | |
3542 | | - | |
| 3542 | + | |
3543 | 3543 | | |
3544 | 3544 | | |
3545 | | - | |
| 3545 | + | |
3546 | 3546 | | |
3547 | 3547 | | |
3548 | 3548 | | |
| |||
3634 | 3634 | | |
3635 | 3635 | | |
3636 | 3636 | | |
3637 | | - | |
| 3637 | + | |
3638 | 3638 | | |
3639 | 3639 | | |
3640 | 3640 | | |
| |||
3704 | 3704 | | |
3705 | 3705 | | |
3706 | 3706 | | |
3707 | | - | |
| 3707 | + | |
3708 | 3708 | | |
3709 | 3709 | | |
3710 | 3710 | | |
| |||
0 commit comments