diff options
| author | Mark Brown <broonie@kernel.org> | 2026-09-30 13:37:11 +0100 |
|---|---|---|
| committer | Mark Brown <broonie@kernel.org> | 2026-09-30 13:37:11 +0100 |
| commit | 4fb7269358e7d4f3cdd7406db85c52053d7de148 (patch) | |
| tree | 4bd99f72e63fa6b26afa396c4c1bd5d83fd0a6d7 /Documentation/admin-guide | |
| parent | e818ae9edd692e46ec435cf60db5e74abf83e7ff (diff) | |
| parent | 8deb0752fa76101ff2a0c5cdaf837d95ed0d0046 (diff) | |
| download | linux-next-4fb7269358e7d4f3cdd7406db85c52053d7de148.tar.gz linux-next-4fb7269358e7d4f3cdd7406db85c52053d7de148.zip | |
Merge branch 'for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git
Diffstat (limited to 'Documentation/admin-guide')
| -rw-r--r-- | Documentation/admin-guide/cgroup-v2.rst | 62 |
1 files changed, 51 insertions, 11 deletions
diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst index 8d2603751c51..7fe950425216 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -2540,16 +2540,55 @@ Cpuset Interface Files A read-only multiple values file which exists on all cpuset-enabled cgroups. - It lists the onlined CPUs that are actually granted to this - cgroup by its parent. These CPUs are allowed to be used by - tasks within the current cgroup. + It lists the active CPUs available to tasks in this cgroup. - If "cpuset.cpus" is empty, the "cpuset.cpus.effective" file shows - all the CPUs from the parent cgroup that can be available to - be used by this cgroup. Otherwise, it should be a subset of - "cpuset.cpus" unless none of the CPUs listed in "cpuset.cpus" - can be granted. In this case, it will be treated just like an - empty "cpuset.cpus". + For a cgroup that is not a valid partition root, an empty + "cpuset.cpus" makes "cpuset.cpus.effective" show all CPUs + available from the parent cgroup. Otherwise, it is a subset + of "cpuset.cpus" unless none of the requested CPUs can be + granted. In that case, it is treated like an empty + "cpuset.cpus". + + For example:: + + P (cpuset.cpus.effective=0-3) + | + +-- C0 (member): cpuset.cpus=1-2 + | cpuset.cpus.effective=1-2 + +-- C1 (invalid root): cpuset.cpus=4-5 + | cpuset.cpus.effective=0-3 + \-- C2 (member): cpuset.cpus=<empty> + cpuset.cpus.effective=0-3 + + C0 gets CPUs 1-2 because they are available from P. + None of C1's requested CPUs 4-5 are available from P, so C1 uses P's + effective CPUs 0-3 instead. + C2 has an empty "cpuset.cpus" and therefore also uses P's effective + CPUs 0-3. + + For a valid non-root partition root, "cpuset.cpus.effective" contains + the active CPUs from "cpuset.cpus.exclusive.effective" except + those granted to valid child partition roots. If + "cpuset.cpus.exclusive" is set to a value different from + "cpuset.cpus", the effective CPUs need not be a subset of + "cpuset.cpus". + + For example, if CPUs 2-5 are allocated to P for exclusive use, + CPUs 2-4 are active, CPU 5 is offline, and none of CPUs 2-5 are + assigned to a valid child partition root:: + + top (root) + | + \-- P (valid partition root) + cpuset.cpus=0-3 + cpuset.cpus.exclusive=2-5 + cpuset.cpus.exclusive.effective=2-5 + cpuset.cpus.effective=2-4 + + P has 2-5 in "cpuset.cpus.exclusive.effective", including the + offline CPU 5. CPU 5 is excluded from "cpuset.cpus.effective", + leaving 2-4. The result also shows that "cpuset.cpus.effective" + need not be a subset of "cpuset.cpus", which is 0-3. Its value will be affected by CPU hotplug events. @@ -2661,8 +2700,9 @@ Cpuset Interface Files A read-only and root cgroup only multiple values file. This file shows the set of all isolated CPUs used in existing - isolated partitions. It will be empty if no isolated partition - is created. + isolated partitions or isolated at boot time via the "domain" + flag of "isolcpus". The latter remain listed even after any + partition using them is released. cpuset.cpus.partition A read-write single value file which exists on non-root |
