Messages in this thread | | | Date | Wed, 12 Jan 2011 13:36:20 +0530 | From | Bharata B Rao <> | Subject | Re: [patch] Re: autogroup: sched_setscheduler() fails |
| |
On Wed, Jan 12, 2011 at 08:24:41AM +0100, Mike Galbraith wrote: > On Wed, 2011-01-12 at 12:05 +0530, Bharata B Rao wrote: > > On Wed, Jan 12, 2011 at 01:40:32PM +0800, Yong Zhang wrote: > > > > IMHO, task->cgroups will not change when autogroup take effect. > > > > Yes and I believe this is cause for some of the weird semantics I see > > with autogroup and cgroups. I am not sure if this has already been > > discussed ealier, may be I need to go back and check the archives, but > > consider this: > > > > I have cpu cgroup mounted at /cgroup and see that all the tasks in the > > system are listed in /cgroup/tasks file. > > > > Now I start a task like this: > > > > # ./while1 & > > [1] 2761 > > > > and see that this task belongs to root cgroup. > > Yes, cgroups sees cgroup associations, not autogroup associations. > > > # grep 2761 /cgroup/tasks > > 2671 > > > > But we know that this task really belongs to an autogroup and is not > > sitting directly on root_task_group. > > Yup, cgroups doesn't want it, so autogroup (if enabled) claims it. > > > # cat /proc/2761/autogroup > > /autogroup-49 nice 0 > > > > So we have a task in an autogroup (which is a sub group of root_task_group) > > but is being shown as part of root_task_group. Is this by design ? > > Yes, it's supposed to be transparent to cgroups.
If cgroups doesn't want that task and if its transparent to cgroups, why is it shown as part of /cgroups/tasks ? The task really doesn't belong in there. Its not on the runqueue of root_task_group.
So basically I feel that a task consumed by autogroup shouldn't ideally be shown in root cgroup's tasks file.
Regards, Bharata.
| |