diff options
author | Waiman Long | 2023-04-11 09:35:58 -0400 |
---|---|---|
committer | Tejun Heo | 2023-04-12 08:23:58 -1000 |
commit | 42a11bf5c5436e91b040aeb04063be1710bb9f9c (patch) | |
tree | ff02e5249b0b5f2e8f16c820c57c0339fd2e5217 /kernel/relay.c | |
parent | ba9182a89626d5f83c2ee4594f55cb9c1e60f0e2 (diff) |
cgroup/cpuset: Make cpuset_fork() handle CLONE_INTO_CGROUP properly
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().
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")
Reported-by: Giuseppe Scrivano <gscrivan@redhat.com>
Signed-off-by: Waiman Long <longman@redhat.com>
Cc: stable@vger.kernel.org # v5.7+
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/relay.c')
0 files changed, 0 insertions, 0 deletions