Daisuke Nishimura 4ffef5feff memcg: move charges of anonymous page
This patch is the core part of this move-charge-at-task-migration feature.
 It implements functions to move charges of anonymous pages mapped only by
the target task.

Implementation:
- define struct move_charge_struct and a valuable of it(mc) to remember the
  count of pre-charges and other information.
- At can_attach(), get anon_rss of the target mm, call __mem_cgroup_try_charge()
  repeatedly and count up mc.precharge.
- At attach(), parse the page table, find a target page to be move, and call
  mem_cgroup_move_account() about the page.
- Cancel all precharges if mc.precharge > 0 on failure or at the end of
  task move.

[akpm@linux-foundation.org: a little simplification]
Signed-off-by: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Cc: Balbir Singh <balbir@linux.vnet.ibm.com>
Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Paul Menage <menage@google.com>
Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2010-03-12 15:52:36 -08:00
..
2009-12-03 13:49:43 +01:00
2009-04-01 08:59:13 -07:00
2010-03-06 11:26:23 -08:00
2010-03-06 11:26:24 -08:00
2010-03-06 11:26:23 -08:00
2009-06-16 19:47:28 -07:00
2009-09-22 07:17:35 -07:00
2010-03-06 11:26:24 -08:00
2010-03-12 15:52:32 -08:00
2010-03-12 15:52:32 -08:00
2010-03-06 11:26:23 -08:00
2009-12-15 08:53:16 -08:00
2010-02-26 08:25:35 +01:00
2009-12-16 19:48:48 -05:00
2010-03-01 17:59:24 -08:00
2010-03-06 11:26:25 -08:00
2009-06-23 12:50:05 -07:00
2010-01-13 16:09:33 -08:00