[PATCH -mmotm 0/8] memcg: recharge at task move

Daisuke Nishimura
2009-11-06T05:29:16Z

Hi.

In current memcg, charges associated with a task aren't moved to the new cgroup
at task move. These patches are for this feature, that is, for recharging to
the new cgroup and, of course, uncharging from old cgroup at task move.

Current virsion supports only recharge of non-shared(mapcount == 1) anonymous pages
and swaps of those pages. I think it's enough as a first step.

[1/8] cgroup: introduce cancel_attach()
[2/8] memcg: move memcg_tasklist mutex
[3/8] memcg: add mem_cgroup_cancel_charge()
[4/8] memcg: cleanup mem_cgroup_move_parent()
[5/8] memcg: add interface to recharge at task move
[6/8] memcg: recharge charges of anonymous page
[7/8] memcg: avoid oom during recharge at task move
[8/8] memcg: recharge charges of anonymous swap

2 is dependent on 1 and 4 is dependent on 3.
3 and 4 are just for cleanups.
5-8 are the body of this feature.

Major Changes from Oct13:
- removed "[RFC]".
- rebased on mmotm-2009-11-01-10-01.
- dropped support for file cache and shmem/tmpfs(revisit in future).
- Updated Documentation/cgroup/memory.txt.

TODO:
- add support for file cache, shmem/tmpfs, and shared(mapcount > 1) pages.
- implement madvise(2) to let users decide the target vma for recharge.

Any comments or suggestions would be welcome.

Thanks,
Dasiuke Nishimura.