[Devel] Re: [RFD][PATCH] memcg: Move Usage at Task Move
KAMEZAWA Hiroyuki
kamezawa.hiroyu at jp.fujitsu.com
Tue Jun 10 21:14:37 PDT 2008
On Wed, 11 Jun 2008 12:44:46 +0900 (JST)
yamamoto at valinux.co.jp (YAMAMOTO Takashi) wrote:
> > I'm now considering following logic. How do you think ?
> >
> > Assume: move TASK from group:CURR to group:DEST.
> >
> > == move_task(TASK, CURR, DEST)
> >
> > if (DEST's limit is unlimited)
> > moving TASK
> > return success.
> >
> > usage = check_usage_of_task(TASK).
> >
> > /* try to reserve enough room in destionation */
> > if (try_to_reserve_enough_room(DEST, usage)) {
> > move TASK to DEST and move pages AMAP.
> > /* usage_of_task(TASK) can be changed while we do this.
> > Then, we move AMAP. */
> > return success;
> > }
> > return failure.
> > ==
>
> AMAP means that you might leave some random charges in CURR?
>
yes. but we can reduce bad case by some way
- reserve more than necessary.
or
- read_lock mm->sem while move.
> i think that you can redirect new charges in TASK to DEST
> so that usage_of_task(TASK) will not grow.
>
Hmm, to do that, we have to handle complicated cgroup's attach ops.
at this moving, memcg is pointed by
- TASK->cgroup->memcg(CURR)
after move
- TASK->another_cgroup->memcg(DEST)
This move happens before cgroup is replaced by another_cgroup.
Thanks,
-Kame
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list