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

From: Waiman Long
Date: Wed Dec 01 2021 - 09:57:13 EST


On 12/1/21 09:13, Michal Koutný wrote:
On Tue, Nov 30, 2021 at 10:56:34PM -0500, Waiman Long <longman@xxxxxxxxxx> wrote:
    A valid parent partition may distribute out all its CPUs to
    its child partitions as long as it is not the root cgroup and
    there is no task associated with it.
A valid parent partition which isn't root never has tasks in them to begin
with.
I believe there is some corner cases where it is possible to put task in an
intermediate partition. That is why I put down this statement.
Just mind the threads -- cpuset controller is threaded and having tasks
in inner cgroup nodes is a real scenario. I wouldn't consider it a
corner case.

[ Actually, the paragraph could IMO be simplified:
Right, I shouldn't say corner cases. Having task in an intermediate partition is possible depending on event sequence. I am aware that there are code in the cpuset code to prevent that, but it didn't block all cases.
A valid parent partition may distribute out all its CPUs to
 its child partitions as long as there is no task associated with it.
Assuming there's always at least one kernel thread in the root cgroup
that can't be migrated anyway.]

I am aware of that. That is why I said root cgroup must have at least one cpu in its "cpuset.cpus.effective".

Cheers,
Longman