[PATCH 2/6] cgroup: improve old cgroup handling in cgroup_attach_proc()
Paul Menage
paul at paulmenage.org
Thu Aug 25 01:51:39 PDT 2011
On Tue, Aug 23, 2011 at 3:19 PM, Tejun Heo <tj at kernel.org> wrote:
> cgroup_attach_proc() behaves differently from cgroup_attach_task() in
> the following aspects.
>
> * All hooks are invoked even if no task is actually being moved.
>
> * ->can_attach_task() is called for all tasks in the group whether the
> new cgrp is different from the current cgrp or not; however,
> ->attach_task() is skipped if new equals new. This makes the calls
> asymmetric.
>
> This patch improves old cgroup handling in cgroup_attach_proc() by
> looking up the current cgroup at the head, recording it in the flex
> array along with the task itself, and using it to remove the above two
> differences. This will also ease further changes.
While I'm all in favour of making things more consistent, do we need
such a big change?
In particular, making the group flex-array entries contain both a task
and a cgroup appears to be only necessary in order to skip tasks where
new_cgroup == old_cgroup. Can't we get the same effect by simply
leaving all such tasks out of the flex-array in the first place?
Paul
More information about the Containers
mailing list