[PATCH 4/5] cgroup/cpuset: Update description of cpuset.cpus.partition in cgroup-v2.rst

Waiman Long
2021-06-03T21:25:10Z

Update Documentation/admin-guide/cgroup-v2.rst on the new "root-nolb"
cpuset partition type as well as the ability to create non-top cpuset
partition with no cpu allocated to it.

Signed-off-by: Waiman Long <longman@redhat.com>
---
Documentation/admin-guide/cgroup-v2.rst | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)

diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst
index b1e81aa8598a..36a923cabeb0 100644
--- a/Documentation/admin-guide/cgroup-v2.rst
+++ b/Documentation/admin-guide/cgroup-v2.rst
@@ -2010,8 +2010,9 @@ Cpuset Interface Files
It accepts only the following input values when written to.

======== ================================
- "root" a partition root
- "member" a non-root member of a partition
+ "member" Non-root member of a partition
+ "root" Partition root
+ "root-nolb" Partition root with no load balancing
======== ================================

When set to be a partition root, the current cgroup is the
@@ -2020,6 +2021,10 @@ Cpuset Interface Files
partition roots themselves and their descendants. The root
cgroup is always a partition root.

+ With "root-nolb", the CPUs in that partition root will be in an
+ isolated state with no load balancing by the scheduler. Tasks in
+ such a partition must be explicitly bind to each individual CPU.
+
There are constraints on where a partition root can be set.
It can only be set in a cgroup if all the following conditions
are true.
@@ -2038,9 +2043,12 @@ Cpuset Interface Files
file cannot be reverted back to "member" if there are any child
cgroups with cpuset enabled.

- A parent partition cannot distribute all its CPUs to its
- child partitions. There must be at least one cpu left in the
- parent partition.
+ A parent partition may distribute all its CPUs to its child
+ partitions as long as it is not the root cgroup and there is no
+ task directly associated with that parent partition. Otherwise,
+ there must be at least one cpu left in the parent partition.
+ A new task cannot be moved to a partition root with no effective
+ cpu.

Once becoming a partition root, changes to "cpuset.cpus" is
generally allowed as long as the first condition above is true,
@@ -2056,6 +2064,7 @@ Cpuset Interface Files
============== ==============================
"member" Non-root member of a partition
"root" Partition root
+ "root-nolb" Partition root with no load balancing
"root invalid" Invalid partition root
============== ==============================

--
2.18.1