cgroup/cpuset: Include isolated cpuset CPUs in cpu_is_isolated() check
authorWaiman Long <longman@redhat.com>
Tue, 5 Dec 2023 22:21:14 +0000 (17:21 -0500)
committerTejun Heo <tj@kernel.org>
Wed, 6 Dec 2023 19:37:28 +0000 (09:37 -1000)
commit3232e7aad11e541da86bbb1fa5ea5737b30bd006
tree51f9c0bdc14c47b8450051127459d9ba23a47fb5
parent77070eeb882124614a40616f01bfe60947be5778
cgroup/cpuset: Include isolated cpuset CPUs in cpu_is_isolated() check

Currently, the cpu_is_isolated() function checks only the statically
isolated CPUs specified via the "isolcpus" and "nohz_full" kernel
command line options. This function is used by vmstat and memcg to
reduce interference with isolated CPUs by not doing stat flushing
or scheduling works on those CPUs.

Workloads running on isolated CPUs within isolated cpuset
partitions should receive the same treatment to reduce unnecessary
interference. This patch introduces a new cpuset_cpu_is_isolated()
function to be called by cpu_is_isolated() so that the set of dynamically
created cpuset isolated CPUs will be included in the check.

Assuming that testing a bit in a cpumask is atomic, no synchronization
primitive is currently used to synchronize access to the cpuset's
isolated_cpus mask.

Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
include/linux/cpuset.h
include/linux/sched/isolation.h
kernel/cgroup/cpuset.c