Re: CLONE_INTO_CGROUP probably needs to call controller attach handlers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


On 3/28/23 11:39, Christian Brauner wrote:

Giuseppe reported that the the affinity mask isn't updated when a
process is spawned directly into the target cgroup via
CLONE_INTO_CGROUP. However, migrating a process will cause the affinity
mask to be updated (see the repro at [1].

I took a quick look and the issue seems to be that we don't call the
various attach handlers during CLONE_INTO_CGROUP whereas we do for
migration. So the solution seems to roughly be that we need to call the
various attach handlers during CLONE_INTO_CGROUP as well when the
parent's cgroups is different from the child cgroup. I think we need to
call all of them, can, cancel and attach.

The plumbing here might be a bit intricate since the arguments that the
fork handlers take are different from the attach handlers.



I saw that the current cgroup code already have the can_fork, fork and cancel_fork callbacks. Unfortunately such callbacks are not defined for cpuset yet. That is why the cpu affinity isn't correctly updated. I can post a patch to add those callback functions to cpuset which should then able to correctly address this issue.


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [Monitors]

  Powered by Linux