linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [RFC][PATCH 0/14]  Mem+Swap Controller v2
@ 2008-08-22 11:27 KAMEZAWA Hiroyuki
  2008-08-22 11:30 ` [RFC][PATCH 1/14] memcg: unlimted root cgroup KAMEZAWA Hiroyuki
                   ` (15 more replies)
  0 siblings, 16 replies; 61+ messages in thread
From: KAMEZAWA Hiroyuki @ 2008-08-22 11:27 UTC (permalink / raw)
  To: linux-mm; +Cc: balbir, nishimura

Hi, I totally rewrote the series. maybe easier to be reviewed.

This patch series provides memory resource controller enhancement(candidates)
Codes are totally rewritten from "preview".
Based on rc3 + a bit old mmtom (may not have conflicts with the latest...)
(I'm not so in hurry now, please see when you have time.)

Contents are following. I'll push them gradually when it seems O.K.

 - New force_empty implementation.
   - rather than drop all accounting, move all accounting to "root".
     This behavior can be changed later (based on some policy.)
     It may take some amount of time about "good" policy, I think start from
     "move charge to the root" is good. I want to hear opinions about this
     interface's behavior.

 - Lockless page_cgroup
   - Removes lock_page_cgroup() and makes access to page->page_cgroup safe
     under some situation. This will makes memcg's lock semantics to
     be better.
     
 - Exporting page_cgroup.
   - Because of Lockess page_cgroup, we can easily access page_cgroup from
     outside of memcontrol.c. There are some people who ask me to allow
     them to access page_cgroup.
 
 - Mem+Swap controller.
   - This controller is implemented as an extention of memory controller.
     If Mem+Swap controller is enabled, you can set 2 limits ans see    
     2 counters.

     memory.limit_in_bytes .... limit of amounts of pages.
     memory.memsw_limit_in_bytes .... limit of amounts of the sum of pages 
                                      and swap_on_disks.
     memory.usage_in_bytes .... current usage of on-memory pages.
     memory.memory.swap_in_bytes .... current usage of swaps which is not 
                                      on_memory.

Any feedback, comments are welcome.

This set passed some fundamental tests on small box and works good.
but I have not done long-run test on big box. So, you may see panic
of race conditions....

TODO:
  - Update Documentation more.
  - Long-run test.
  - Update force_empty's policy.

Major Changes from v1.
  - force_empty is updated.
  - small bug fix on Lockless page_cgroup.
  - Mem+Swap controller is added. (Implementation detail is quite different
    from preview version. But no change in algorithm.)

Patch series:
  I'd like to push patch 1...9 in early than 10..14
  Comments about the direction of patch 1,2,11,13 is helpful.

1. unlimted_root_cgroup.patch 
            .... makes root cgroup's limitation to unlimited.
2. new_force_empty.patch
            .... rewrite force_empty to move the resource rather
3. atomic_flags.patch
            .... makes page_cgroup->flags modification to atomic_ops.
4. lazy-lru-freeing.patch
            .... makes freeing of page_cgroup to be delayed.
5. rcu-free.patch
            ....freeing of page_cgroup by RCU.
6. lockess.patch
            ....remove lock_page_cgroup()
7. prefetch.patch
            .... just adds prefetch().
8. make_mapping_null.patch
            .... guarantee page->mapping to be NULL before uncharge
                 file cache (and check it by BUG_ON)
9. split-page-cgroup.patch
            .... add page_cgroup.h file.
10. mem_counter.patch
            .... replace res_coutner with mem_counter, newly added.
                 (reason of this patch will be shown in patch[11])
11. memcgrp_id.patch
            .... give each mem_cgroup its own ID.
12. swap_cgroup_config.patch
            .... Add Kconfig and some macro for Mem+Swap Controller.
13. swap_counter.patch
            .... modifies mem_counter to handle swaps.
14. swap_account.patch
            .... account swap.

Thanks,
-Kame



















--
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] 61+ messages in thread

end of thread, other threads:[~2008-09-09 14:25 UTC | newest]

Thread overview: 61+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-22 11:27 [RFC][PATCH 0/14] Mem+Swap Controller v2 KAMEZAWA Hiroyuki
2008-08-22 11:30 ` [RFC][PATCH 1/14] memcg: unlimted root cgroup KAMEZAWA Hiroyuki
2008-08-22 22:51   ` Balbir Singh
2008-08-23  0:38   ` kamezawa.hiroyu
2008-08-25  3:19     ` KAMEZAWA Hiroyuki
2008-08-22 11:31 ` [RFC][PATCH 2/14] memcg: rewrite force_empty KAMEZAWA Hiroyuki
2008-08-25  3:21   ` KAMEZAWA Hiroyuki
2008-08-29 11:45   ` Daisuke Nishimura
2008-08-30  7:30     ` KAMEZAWA Hiroyuki
2008-08-22 11:32 ` [RFC][PATCH 3/14] memcg: atomic_flags KAMEZAWA Hiroyuki
2008-08-26  4:55   ` Balbir Singh
2008-08-26 23:50     ` KAMEZAWA Hiroyuki
2008-08-27  1:58       ` KAMEZAWA Hiroyuki
2008-08-26  8:46   ` kamezawa.hiroyu
2008-08-26  8:49     ` Balbir Singh
2008-08-26 23:41       ` KAMEZAWA Hiroyuki
2008-08-22 11:33 ` [RFC][PATCH 4/14] delay page_cgroup freeing KAMEZAWA Hiroyuki
2008-08-26 11:46   ` Balbir Singh
2008-08-26 23:55     ` KAMEZAWA Hiroyuki
2008-08-27  1:17       ` Balbir Singh
2008-08-27  1:39         ` KAMEZAWA Hiroyuki
2008-08-27  2:25           ` Balbir Singh
2008-08-27  2:46             ` KAMEZAWA Hiroyuki
2008-08-22 11:34 ` [RFC][PATCH 5/14] memcg: free page_cgroup by RCU KAMEZAWA Hiroyuki
2008-08-28 10:06   ` Balbir Singh
2008-08-28 10:44     ` KAMEZAWA Hiroyuki
2008-09-01  6:51       ` YAMAMOTO Takashi
2008-09-01  7:01         ` KAMEZAWA Hiroyuki
2008-08-22 11:35 ` [RFC][PATCH 6/14] memcg: lockless page cgroup KAMEZAWA Hiroyuki
2008-09-09  5:40   ` Daisuke Nishimura
2008-09-09  7:56     ` KAMEZAWA Hiroyuki
2008-09-09  8:11       ` Daisuke Nishimura
2008-09-09 11:11         ` KAMEZAWA Hiroyuki
2008-09-09 11:48           ` Balbir Singh
2008-09-09 14:24         ` Balbir Singh
2008-09-09 14:04       ` Balbir Singh
2008-08-22 11:36 ` [RFC][PATCH 7/14] memcg: add prefetch to spinlock KAMEZAWA Hiroyuki
2008-08-28 11:00   ` Balbir Singh
2008-08-22 11:37 ` [RFC][PATCH 8/14] memcg: make mapping null before uncharge KAMEZAWA Hiroyuki
2008-08-22 11:38 ` [RFC][PATCH 9/14] memcg: add page_cgroup.h file KAMEZAWA Hiroyuki
2008-08-22 11:39 ` [RFC][PATCH 10/14] memcg: replace res_counter KAMEZAWA Hiroyuki
2008-08-27  0:44   ` Daisuke Nishimura
2008-08-27  1:26     ` KAMEZAWA Hiroyuki
2008-08-22 11:40 ` [RFC][PATCH 11/14] memcg: mem_cgroup private ID KAMEZAWA Hiroyuki
2008-08-22 11:41 ` [RFC][PATCH 12/14] memcg: mem+swap controller Kconfig KAMEZAWA Hiroyuki
2008-08-22 11:41 ` [RFC][PATCH 13/14] memcg: mem+swap counter KAMEZAWA Hiroyuki
2008-08-28  8:51   ` Daisuke Nishimura
2008-08-28  9:32     ` KAMEZAWA Hiroyuki
2008-08-22 11:44 ` [RFC][PATCH 14/14]memcg: mem+swap accounting KAMEZAWA Hiroyuki
2008-09-01  7:15   ` Daisuke Nishimura
2008-09-01  7:58     ` KAMEZAWA Hiroyuki
2008-09-01  8:53       ` Daisuke Nishimura
2008-09-01  9:53         ` KAMEZAWA Hiroyuki
2008-09-01 10:21           ` Daisuke Nishimura
2008-09-02  2:21           ` Daisuke Nishimura
2008-09-02 11:09           ` Daisuke Nishimura
2008-09-02 11:40             ` KAMEZAWA Hiroyuki
2008-09-03  6:23               ` Daisuke Nishimura
2008-09-03  7:05                 ` KAMEZAWA Hiroyuki
2008-08-22 13:20 ` [RFC][PATCH 0/14] Mem+Swap Controller v2 Balbir Singh
2008-08-22 15:34 ` kamezawa.hiroyu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox