Re: [PATCH 3/6] cgroup: introduce cgroup_taskset and use it insubsys->can_attach(), cancel_attach() and attach()

From: KAMEZAWA Hiroyuki
Date: Thu Aug 25 2011 - 04:45:27 EST


On Thu, 25 Aug 2011 10:40:06 +0200
Tejun Heo <tj@xxxxxxxxxx> wrote:

> Hello,
>
> On Thu, Aug 25, 2011 at 10:21 AM, KAMEZAWA Hiroyuki
> <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
> >> Hmmm... the above is basically identity transformation of the existing
> >> code. ÂIf the above is broken, the current code is broken too. ÂIs it?
> >>
> > Current code is not broken.
>
> Trust me. If the posted code is broken, the current code is too. It
> is an IDENTITY transformation.
>
> > mem_cgroup_can_attach(....., task) need to do real job only when task->mm->owner
> > == task. In this modification, you pass a set of task at once.
>
> Before the change, cgroup would migrate multiple tasks all the same
> but memcg wouldn't have noticed it unless it opted in explicitly using
> [can_]attach_task(). When multiple tasks were moving, [can_]attach()
> would only be called with the leader whether the leader actually is
> changing cgroup or not. The interface sucked and it wasn't properly
> documented but that's what was happening. The interface change is just
> making the breakage obvious - +1 for the new interface. :)
>
Thank you for clarification. Ok, current code is broken.


> > So, mem_cgroup_can_attach() need to check _all_ tasks in tset rather than a
> > first task in tset. please scan and find mm->owner.
> >
> > Anyway, if you merge this onto mm-tree first, I think I can have time to
> > write a fix up if complicated.
>
> As for specific merging order, it shouldn't matter all that much but
> if you wanna backport fixes for -stable, maybe it would make more
> sense to sequence the fix before this change.
>
> Thank you.

Sure. IIUC, the case thread_leader != mm->owner is uncommon.
I'll consider a fix onto your fix, first.

I'll cosinder a fix for stable tree if someone requests.

Thanks,
-Kame

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/