All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH -mmotm 0/8] memcg: recharge at task move
@ 2009-11-06  5:10 Daisuke Nishimura
  2009-11-06  5:11 ` [PATCH -mmotm 1/8] cgroup: introduce cancel_attach() Daisuke Nishimura
                   ` (10 more replies)
  0 siblings, 11 replies; 41+ messages in thread
From: Daisuke Nishimura @ 2009-11-06  5:10 UTC (permalink / raw)
  To: linux-mm
  Cc: Andrew Morton, Balbir Singh, KAMEZAWA Hiroyuki, Li Zefan,
	Paul Menage, Daisuke Nishimura

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.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 41+ messages in thread
* [PATCH -mmotm 0/8] memcg: move charge at task migration (14/Dec)
@ 2009-12-14  6:17 Daisuke Nishimura
  2009-12-14  6:18 ` [PATCH -mmotm 1/8] cgroup: introduce cancel_attach() Daisuke Nishimura
  0 siblings, 1 reply; 41+ messages in thread
From: Daisuke Nishimura @ 2009-12-14  6:17 UTC (permalink / raw)
  To: linux-mm
  Cc: Andrew Morton, Balbir Singh, KAMEZAWA Hiroyuki, Li Zefan,
	Paul Menage, Daisuke Nishimura

Hi.

These are current patches of my move-charge-at-task-migration feature.

* They have not been mature enough to be merged into linus tree yet. *

Actually, there is a NULL pointer dereference BUG, which I found in my stress
test after about 40 hours running and I'm digging now.
I post these patches just to share my current status.

  [1/8] cgroup: introduce cancel_attach()
  [2/8] cgroup: introduce coalesce css_get() and css_put()
  [3/8] memcg: add interface to move charge at task migration
  [4/8] memcg: move charges of anonymous page
  [5/8] memcg: improve performance in moving charge
  [6/8] memcg: avoid oom during moving charge
  [7/8] memcg: move charges of anonymous swap
  [8/8] memcg: improbe performance in moving swap charge

Overall history of this patch set:
2009/12/14
- rebase on mmotm-2009-12-10-17-19.
- split performance improvement patch into cgroup part and memcg part.
- make use of waitq in avoid-oom patch.
- add TODO section in memory.txt.
2009/12/04
- rebase on mmotm-2009-11-24-16-47.
- change the term "recharge" to "move charge".
- improve performance in moving charge.
- parse the page table in can_attach() phase again(go back to the old behavior),
  because it doesn't add so big overheads, so it would be better to calculate
    the precharge count more accurately.
2009/11/19
- rebase on mmotm-2009-11-17-14-03 + KAMEZAWA-san's show per-process swap usage
  via procfs patch(v3).
- in can_attach(), instead of parsing the page table, make use of per process
  mm_counter(anon_rss, swap_usage).
- handle recharge_at_immigrate as bitmask(as I did in first version)
2009/11/06
- remove "[RFC]".
- rebase on mmotm-2009-11-01-10-01.
- drop support for file cache and shmem/tmpfs(revisit in future).
- update Documentation/cgroup/memory.txt.
2009/10/13
- rebase on mmotm-2009-10-09-01-07 + KAMEZAWA-san's batched charge/uncharge(Oct09) + part
of KAMEZAWA-san's cleanup/fix patches(4,5,7 of Sep25 with some fixes).
- change the term "migrate" to "recharge".
2009/09/24
- change "migrate_charge" flag from "int" to "bool".
- in can_attach(), parse the page table of the task and count only the number
  of target ptes and call try_charge() repeatedly. No isolation at this phase.
- in attach(), parse the page table of the task again, and isolate the target
  page and call move_account() one by one.
- do no swap-in in moving swap account any more.
- add support for shmem/tmpfs's swap.
- update Documentation/cgroup/cgroup.txt.
2009/09/17
- first version


Regards,
Daisuke Nishimura.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 41+ messages in thread
* [PATCH -mmotm 0/8] memcg: move charge at task migration (21/Dec)
@ 2009-12-21  5:31 Daisuke Nishimura
  2009-12-21  5:32 ` [PATCH -mmotm 1/8] cgroup: introduce cancel_attach() Daisuke Nishimura
  0 siblings, 1 reply; 41+ messages in thread
From: Daisuke Nishimura @ 2009-12-21  5:31 UTC (permalink / raw)
  To: Andrew Morton
  Cc: Balbir Singh, KAMEZAWA Hiroyuki, Li Zefan, Paul Menage,
	Daisuke Nishimura, linux-mm

Hi.

These are the latest version of my move-charge-at-task-migration patch.

As I said in http://marc.info/?l=linux-mm&m=126135930226969&w=2, I've fixed
the BUG I found in 14/Dec version, and I think they are ready to be merged
into mmotm. These patches are based on mmotm-2009-12-10-17-19, but can be
applied onto 2.6.33-rc1-git1 too.


  [1/8] cgroup: introduce cancel_attach()
  [2/8] cgroup: introduce coalesce css_get() and css_put()
  [3/8] memcg: add interface to move charge at task migration
  [4/8] memcg: move charges of anonymous page
  [5/8] memcg: improve performance in moving charge
  [6/8] memcg: avoid oom during moving charge
  [7/8] memcg: move charges of anonymous swap
  [8/8] memcg: improbe performance in moving swap charge

 Documentation/cgroups/cgroups.txt |   13 +-
 Documentation/cgroups/memory.txt  |   56 +++-
 include/linux/cgroup.h            |   14 +-
 include/linux/page_cgroup.h       |    2 +
 include/linux/swap.h              |    1 +
 kernel/cgroup.c                   |   45 ++-
 mm/memcontrol.c                   |  649 +++++++++++++++++++++++++++++++++++--
 mm/page_cgroup.c                  |   35 ++-
 mm/swapfile.c                     |   31 ++
 9 files changed, 796 insertions(+), 50 deletions(-)


Overall history of this patch set:
2009/12/21
- Fix NULL pointer dereference BUG.
2009/12/14
- rebase on mmotm-2009-12-10-17-19.
- split performance improvement patch into cgroup part and memcg part.
- make use of waitq in avoid-oom patch.
- add TODO section in memory.txt.
2009/12/04
- rebase on mmotm-2009-11-24-16-47.
- change the term "recharge" to "move charge".
- improve performance in moving charge.
- parse the page table in can_attach() phase again(go back to the old behavior),
  because it doesn't add so big overheads, so it would be better to calculate
    the precharge count more accurately.
2009/11/19
- rebase on mmotm-2009-11-17-14-03 + KAMEZAWA-san's show per-process swap usage
  via procfs patch(v3).
- in can_attach(), instead of parsing the page table, make use of per process
  mm_counter(anon_rss, swap_usage).
- handle recharge_at_immigrate as bitmask(as I did in first version)
2009/11/06
- remove "[RFC]".
- rebase on mmotm-2009-11-01-10-01.
- drop support for file cache and shmem/tmpfs(revisit in future).
- update Documentation/cgroup/memory.txt.
2009/10/13
- rebase on mmotm-2009-10-09-01-07 + KAMEZAWA-san's batched charge/uncharge(Oct09) + part
of KAMEZAWA-san's cleanup/fix patches(4,5,7 of Sep25 with some fixes).
- change the term "migrate" to "recharge".
2009/09/24
- change "migrate_charge" flag from "int" to "bool".
- in can_attach(), parse the page table of the task and count only the number
  of target ptes and call try_charge() repeatedly. No isolation at this phase.
- in attach(), parse the page table of the task again, and isolate the target
  page and call move_account() one by one.
- do no swap-in in moving swap account any more.
- add support for shmem/tmpfs's swap.
- update Documentation/cgroup/cgroup.txt.
2009/09/17
- first version


Regards,
Daisuke Nishimura.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2009-12-21  5:43 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-11-06  5:10 [PATCH -mmotm 0/8] memcg: recharge at task move Daisuke Nishimura
2009-11-06  5:11 ` [PATCH -mmotm 1/8] cgroup: introduce cancel_attach() Daisuke Nishimura
2009-11-09  6:57   ` Balbir Singh
2009-11-09  7:18     ` Li Zefan
2009-11-09  7:23     ` Daisuke Nishimura
2009-11-09  7:23   ` Li Zefan
2009-11-09  7:38     ` Daisuke Nishimura
2009-11-06  5:11 ` [PATCH -mmotm 2/8] memcg: move memcg_tasklist mutex Daisuke Nishimura
2009-11-06  5:54   ` KAMEZAWA Hiroyuki
2009-11-06  7:49     ` Daisuke Nishimura
2009-11-06  8:02       ` KAMEZAWA Hiroyuki
2009-11-10 19:14   ` Balbir Singh
2009-11-10 23:44     ` Daisuke Nishimura
2009-11-06  5:12 ` [PATCH -mmotm 3/8] memcg: add mem_cgroup_cancel_charge() Daisuke Nishimura
2009-11-06  5:13 ` [PATCH -mmotm 4/8] memcg: cleanup mem_cgroup_move_parent() Daisuke Nishimura
2009-11-06  5:56   ` KAMEZAWA Hiroyuki
2009-11-06  5:14 ` [PATCH -mmotm 5/8] memcg: add interface to recharge at task move Daisuke Nishimura
2009-11-06  6:06   ` KAMEZAWA Hiroyuki
2009-11-06  5:14 ` [PATCH -mmotm 6/8] memcg: recharge charges of anonymous page Daisuke Nishimura
2009-11-06  6:35   ` KAMEZAWA Hiroyuki
2009-11-09  0:31     ` Daisuke Nishimura
2009-11-06  5:15 ` [PATCH -mmotm 7/8] memcg: avoid oom during recharge at task move Daisuke Nishimura
2009-11-06  6:39   ` KAMEZAWA Hiroyuki
2009-11-06  5:16 ` [PATCH -mmotm 8/8] memcg: recharge charges of anonymous swap Daisuke Nishimura
2009-11-06  6:45 ` [PATCH -mmotm 0/8] memcg: recharge at task move KAMEZAWA Hiroyuki
2009-11-09  1:44   ` Daisuke Nishimura
2009-11-09  5:16     ` KAMEZAWA Hiroyuki
2009-11-09  5:08 ` Balbir Singh
2009-11-09  8:24   ` Daisuke Nishimura
2009-11-11  1:35 ` [PATCH -mmotm 0/3] some cleanups for memcg Daisuke Nishimura
2009-11-11  1:36   ` [PATCH -mmotm 1/3] memcg: add mem_cgroup_cancel_charge() Daisuke Nishimura
2009-11-11  4:24     ` Balbir Singh
2009-11-11  1:37   ` [PATCH -mmotm 2/3] memcg: cleanup mem_cgroup_move_parent() Daisuke Nishimura
2009-11-11 14:40     ` Balbir Singh
2009-11-11 15:16       ` Daisuke Nishimura
2009-11-11  1:39   ` [PATCH -mmotm 3/3] memcg: remove memcg_tasklist Daisuke Nishimura
2009-11-11  1:49     ` KAMEZAWA Hiroyuki
2009-11-11 16:01     ` Balbir Singh
2009-11-12  8:05       ` Daisuke Nishimura
2009-12-14  6:17 [PATCH -mmotm 0/8] memcg: move charge at task migration (14/Dec) Daisuke Nishimura
2009-12-14  6:18 ` [PATCH -mmotm 1/8] cgroup: introduce cancel_attach() Daisuke Nishimura
2009-12-21  5:31 [PATCH -mmotm 0/8] memcg: move charge at task migration (21/Dec) Daisuke Nishimura
2009-12-21  5:32 ` [PATCH -mmotm 1/8] cgroup: introduce cancel_attach() Daisuke Nishimura

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.