Re: [PATCH v1 3/3] cgroup: relax common ancestor restriction for direct descendants

From: James Bottomley
Date: Thu Jul 21 2016 - 14:16:54 EST

On Thu, 2016-07-21 at 11:50 -0400, Tejun Heo wrote:
> Hello, James.
> On Thu, Jul 21, 2016 at 08:34:36AM -0700, James Bottomley wrote:
> > So if I as the cgroup ns owner am moving a task from A to A_subdir,
> > the admin scanning tasks in all of A may miss this task in motion
> > because all the tasks files can't be scanned atomically?
> So, the admin just wants to move processes from A and only A to B.
> It doesn't wanna interfere with processes in the subdirs or on-going
> ns operations, but if the race occurs, both A -> B migration and ns
> subdir operation would succeed and the end result would be something
> neither expects.

OK so a theoretical (not saying it's implementable, we'll have to
explore that) way of fixing all of this is to have separate views of
the tree. If the admin always saw everything in A, even if the
cgroupns had created subdirectories in its own namespace. That way
there'd be no race ever in the admin's view (because it's the view they
created and would expect to see). All sub cgroup activity would only
be visible to tasks in the new cgroupns (we'd probably have to have
them make this visible by mounting a new cgroup tree).