On Tue, Mar 28, 2023 at 05:39:52PM +0200, Christian Brauner wrote: > Hey, > > 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. But note, as Johannes already pointed out somewhere else, that there's probably a lot of code that doesn't apply to the CLONE_INTO_CGROUP case so it might also make sense to just move the missing pieces into the fork handlers.