Thread (1 message) 1 message, 1 author, 2011-08-25

Re: [PATCH 2/6] cgroup: improve old cgroup handling in cgroup_attach_proc()

From: Paul Menage <hidden>
Date: 2011-08-25 08:51:39

Possibly related (same subject, not in this thread)

On Tue, Aug 23, 2011 at 3:19 PM, Tejun Heo [off-list ref] 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help