cgroup/cpuset: Take isolated CPUs out of workqueue unbound cpumask
authorWaiman Long <longman@redhat.com>
Wed, 25 Oct 2023 18:25:55 +0000 (14:25 -0400)
committerTejun Heo <tj@kernel.org>
Sun, 12 Nov 2023 21:07:41 +0000 (15:07 -0600)
commit72c6303acfa1008c542e093bc9f9916fb99e0323
treebcfc38531e491b67c2371f9fb737e77384abb6d2
parent11e5f407b64a8fa09d1a4b336d15bd285a434c1f
cgroup/cpuset: Take isolated CPUs out of workqueue unbound cpumask

To make CPUs in isolated cpuset partition closer in isolation to
the boot time isolated CPUs specified in the "isolcpus" boot command
line option, we need to take those CPUs out of the workqueue unbound
cpumask so that work functions from the unbound workqueues won't run
on those CPUs.  Otherwise, they will interfere the user tasks running
on those isolated CPUs.

With the introduction of the workqueue_unbound_exclude_cpumask() helper
function in an earlier commit, those isolated CPUs can now be taken
out from the workqueue unbound cpumask.

This patch also updates cgroup-v2.rst to mention that isolated
CPUs will be excluded from unbound workqueue cpumask as well as
updating test_cpuset_prs.sh to verify the correctness of the new
*cpuset.cpus.isolated file, if available via cgroup_debug option.

Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Documentation/admin-guide/cgroup-v2.rst
kernel/cgroup/cpuset.c
tools/testing/selftests/cgroup/test_cpuset_prs.sh