Re: [PATCH 1/3] cgroup/cpuset: Make cpuset_fork() handle CLONE_INTO_CGROUP properly

From: Michal Koutný
Date: Mon Apr 03 2023 - 12:55:33 EST


On Fri, Mar 31, 2023 at 10:50:43AM -0400, Waiman Long <longman@xxxxxxxxxx> wrote:
> By default, the clone(2) syscall spawn a child process into the same
> cgroup as its parent. With the use of the CLONE_INTO_CGROUP flag
> introduced by commit ef2c41cf38a7 ("clone3: allow spawning processes
> into cgroups"), the child will be spawned into a different cgroup which
> is somewhat similar to writing the child's tid into "cgroup.threads".
>
> The current cpuset_fork() method does not properly handle the
> CLONE_INTO_CGROUP case where the cpuset of the child may be different
> from that of its parent. Update the cpuset_fork() method to treat the
> CLONE_INTO_CGROUP case similar to cpuset_attach().

Should .can_fork=cpuset_can_fork in analogy to cpuset_can_attach be also
devised? (Sorry if I missed that in the previous discussion.)

>
> Since the newly cloned task has not been running yet, its actual
> memory usage isn't known. So it is not necessary to make change to mm
> in cpuset_fork().
>
> Fixes: ef2c41cf38a7 ("clone3: allow spawning processes into cgroups")
> Signed-off-by: Waiman Long <longman@xxxxxxxxxx>

Thanks,
Michal

Attachment: signature.asc
Description: PGP signature