)]}'
{
  "log": [
    {
      "commit": "31a78f23bac0069004e69f98808b6988baccb6b6",
      "tree": "edca8cffb4682de6be2e79b0b8d381dbb1b70964",
      "parents": [
        "bf5cb66447e7d9f7f111c1d0ebb6d7c90ec24b4d"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Sun Sep 28 23:09:31 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 29 08:41:47 2008 -0700"
      },
      "message": "mm owner: fix race between swapoff and exit\n\nThere\u0027s a race between mm-\u003eowner assignment and swapoff, more easily\nseen when task slab poisoning is turned on.  The condition occurs when\ntry_to_unuse() runs in parallel with an exiting task.  A similar race\ncan occur with callers of get_task_mm(), such as /proc/\u003cpid\u003e/\u003cmmstats\u003e\nor ptrace or page migration.\n\nCPU0                                    CPU1\n                                        try_to_unuse\n                                        looks at mm \u003d task0-\u003emm\n                                        increments mm-\u003emm_users\ntask 0 exits\nmm-\u003eowner needs to be updated, but no\nnew owner is found (mm_users \u003e 1, but\nno other task has task-\u003emm \u003d task0-\u003emm)\nmm_update_next_owner() leaves\n                                        mmput(mm) decrements mm-\u003emm_users\ntask0 freed\n                                        dereferencing mm-\u003eowner fails\n\nThe fix is to notify the subsystem via mm_owner_changed callback(),\nif no new owner is found, by specifying the new task as NULL.\n\nJiri Slaby:\nmm-\u003eowner was set to NULL prior to calling cgroup_mm_owner_callbacks(), but\nmust be set after that, so as not to pass NULL as old owner causing oops.\n\nDaisuke Nishimura:\nmm_update_next_owner() may set mm-\u003eowner to NULL, but mem_cgroup_from_task()\nand its callers need to take account of this situation to avoid oops.\n\nHugh Dickins:\nLockdep warning and hang below exec_mmap() when testing these patches.\nexit_mm() up_reads mmap_sem before calling mm_update_next_owner(),\nso exec_mmap() now needs to do the same.  And with that repositioning,\nthere\u0027s now no point in mm_need_new_owner() allowing for NULL mm.\n\nReported-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a10cebf56ca7e7c034d1b6646230c6553e478967",
      "tree": "80f92bd693b7a6079be2814b01c14649b5f82217",
      "parents": [
        "b4d19cc84e8e6838f4aa0b26b3afcdc8c7f71505"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Mon Sep 22 13:57:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 23 08:09:14 2008 -0700"
      },
      "message": "memcg: check under limit at shrink_usage\n\nCurrent memory cgroup(both in mainline and -mm) doesn\u0027t account swap\ncaches as memory(swap cache support is dropped temporarily now).\n\nSo try_to_free_mem_cgroup_pages doesn\u0027t reflect the count of pages that\nhave been moved to swap cache.\n\nBut this makes mem_cgroup_shrink_usage fail easily if most of the pages\nare anon/shmem, and then shmem_getpage returns -ENOMEM and the process\nwill be killed.\n\nThis patch adds res_counter_check_under_limit to avoid these cases.\n\nBTW, even if swap cache support is enabled again, if a process is moved to\nanother cgroup, which has been just made, between precharge and\nshrink_usage in shmem_getpage, shrink_usage may fail just because there is\nno pages to reclaim.\n\nSo this change would make sense anyway.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9623e078c1f4692a91531af2f639ec8aff8f0472",
      "tree": "ee2ab90d674accd462600d52b14b386df5d748a1",
      "parents": [
        "3ee1062b4ee82a56294808a065b64f4bc6781a56"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Aug 12 15:08:41 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 12 16:07:28 2008 -0700"
      },
      "message": "memcg: fix oops in mem_cgroup_shrink_usage\n\nGot an oops in mem_cgroup_shrink_usage() when testing loop over tmpfs:\nyes, of course, loop0 has no mm: other entry points check but this didn\u0027t.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ef1b0fd61333b3b81ebe29283898c6c84b15c9f",
      "tree": "673b8a3a724c7da185a3507f63843aa694b43ec8",
      "parents": [
        "55b6fd0162ace1e0f1b52c8c092565c115127ef6"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Jul 29 22:33:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 30 09:41:44 2008 -0700"
      },
      "message": "memcg: remove redundant check in move_task()\n\nIt\u0027s guaranteed by cgroup that old_cgrp !\u003d cgrp.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "628f42355389cfb596ca3a5a5f64fb9054a2a06a",
      "tree": "a1a19788e554f4345f80ae835edcb5ad2402533a",
      "parents": [
        "12b9804419cfb1c1bdac413f6c373af3b88d154b"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: limit change shrink usage\n\nShrinking memory usage at limit change.\n\n[akpm@linux-foundation.org: coding-style fixes]\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cede86acd8bd5d2205dec28db8ac86410a3a19e8",
      "tree": "67ad2d42cadee0b6f9a4de21e06602faae8d8604",
      "parents": [
        "accf163e6ab729f1fc5fffaa0310e498270bf4e7"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Jul 25 01:47:18 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: clean up checking of the disabled flag\n\nThose checks are unnecessary, because when the subsystem is disabled\nit can\u0027t be mounted, so those functions won\u0027t get called.\n\nThe check is needed in functions which will be called in other places\nexcept cgroup.\n\n[hugh@veritas.com: further checking of disabled flag]\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "accf163e6ab729f1fc5fffaa0310e498270bf4e7",
      "tree": "798d5c97aa10bd26018fb1175a176c9d57560a39",
      "parents": [
        "b76734e5e34e1889ab9fc5f3756570b1129f0f50"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: remove a redundant check\n\nBecause of remove refcnt patch, it\u0027s very rare case to that\nmem_cgroup_charge_common() is called against a page which is accounted.\n\nmem_cgroup_charge_common() is called when.\n 1. a page is added into file cache.\n 2. an anon page is _newly_ mapped.\n\nA racy case is that a newly-swapped-in anonymous page is referred from\nprural threads in do_swap_page() at the same time.\n(a page is not Locked when mem_cgroup_charge() is called from do_swap_page.)\n\nAnother case is shmem. It charges its page before calling add_to_page_cache().\nThen, mem_cgroup_charge_cache() is called twice. This case is handled in\nmem_cgroup_cache_charge(). But this check may be too hacky...\n\nSigned-off-by : KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b76734e5e34e1889ab9fc5f3756570b1129f0f50",
      "tree": "9929c25da8b9c29fcb0c5394023f66b7668cdfa1",
      "parents": [
        "c9b0ed51483cc2fc42bb801b6675c4231b0e4634"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: add hints for branch\n\nShowing brach direction for obvious conditions.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9b0ed51483cc2fc42bb801b6675c4231b0e4634",
      "tree": "1d322b4bfcaad3296752f6efcab918d1b13b50a3",
      "parents": [
        "69029cd550284e32de13d6dd2f77b723c8a0e444"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:15 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: helper function for relcaim from shmem.\n\nA new call, mem_cgroup_shrink_usage() is added for shmem handling and\nrelacing non-standard usage of mem_cgroup_charge/uncharge.\n\nNow, shmem calls mem_cgroup_charge() just for reclaim some pages from\nmem_cgroup.  In general, shmem is used by some process group and not for\nglobal resource (like file caches).  So, it\u0027s reasonable to reclaim pages\nfrom mem_cgroup where shmem is mainly used.\n\n[hugh@veritas.com: shmem_getpage release page sooner]\n[hugh@veritas.com: mem_cgroup_shrink_usage css_put]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69029cd550284e32de13d6dd2f77b723c8a0e444",
      "tree": "b57b87e5025b6c01722f39302cb98d0dfcd58940",
      "parents": [
        "e8589cc189f96b87348ae83ea4db38eaac624135"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:14 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: remove refcnt from page_cgroup\n\nmemcg: performance improvements\n\nPatch Description\n 1/5 ... remove refcnt fron page_cgroup patch (shmem handling is fixed)\n 2/5 ... swapcache handling patch\n 3/5 ... add helper function for shmem\u0027s memory reclaim patch\n 4/5 ... optimize by likely/unlikely ppatch\n 5/5 ... remove redundunt check patch (shmem handling is fixed.)\n\nUnix bench result.\n\n\u003d\u003d 2.6.26-rc2-mm1 + memory resource controller\nExecl Throughput                           2915.4 lps   (29.6 secs, 3 samples)\nC Compiler Throughput                      1019.3 lpm   (60.0 secs, 3 samples)\nShell Scripts (1 concurrent)               5796.0 lpm   (60.0 secs, 3 samples)\nShell Scripts (8 concurrent)               1097.7 lpm   (60.0 secs, 3 samples)\nShell Scripts (16 concurrent)               565.3 lpm   (60.0 secs, 3 samples)\nFile Read 1024 bufsize 2000 maxblocks    1022128.0 KBps  (30.0 secs, 3 samples)\nFile Write 1024 bufsize 2000 maxblocks   544057.0 KBps  (30.0 secs, 3 samples)\nFile Copy 1024 bufsize 2000 maxblocks    346481.0 KBps  (30.0 secs, 3 samples)\nFile Read 256 bufsize 500 maxblocks      319325.0 KBps  (30.0 secs, 3 samples)\nFile Write 256 bufsize 500 maxblocks     148788.0 KBps  (30.0 secs, 3 samples)\nFile Copy 256 bufsize 500 maxblocks       99051.0 KBps  (30.0 secs, 3 samples)\nFile Read 4096 bufsize 8000 maxblocks    2058917.0 KBps  (30.0 secs, 3 samples)\nFile Write 4096 bufsize 8000 maxblocks   1606109.0 KBps  (30.0 secs, 3 samples)\nFile Copy 4096 bufsize 8000 maxblocks    854789.0 KBps  (30.0 secs, 3 samples)\nDc: sqrt(2) to 99 decimal places         126145.2 lpm   (30.0 secs, 3 samples)\n\n                     INDEX VALUES\nTEST                                        BASELINE     RESULT      INDEX\n\nExecl Throughput                                43.0     2915.4      678.0\nFile Copy 1024 bufsize 2000 maxblocks         3960.0   346481.0      875.0\nFile Copy 256 bufsize 500 maxblocks           1655.0    99051.0      598.5\nFile Copy 4096 bufsize 8000 maxblocks         5800.0   854789.0     1473.8\nShell Scripts (8 concurrent)                     6.0     1097.7     1829.5\n                                                                 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     FINAL SCORE                                                     991.3\n\n\u003d\u003d 2.6.26-rc2-mm1 + this set \u003d\u003d\nExecl Throughput                           3012.9 lps   (29.9 secs, 3 samples)\nC Compiler Throughput                       981.0 lpm   (60.0 secs, 3 samples)\nShell Scripts (1 concurrent)               5872.0 lpm   (60.0 secs, 3 samples)\nShell Scripts (8 concurrent)               1120.3 lpm   (60.0 secs, 3 samples)\nShell Scripts (16 concurrent)               578.0 lpm   (60.0 secs, 3 samples)\nFile Read 1024 bufsize 2000 maxblocks    1003993.0 KBps  (30.0 secs, 3 samples)\nFile Write 1024 bufsize 2000 maxblocks   550452.0 KBps  (30.0 secs, 3 samples)\nFile Copy 1024 bufsize 2000 maxblocks    347159.0 KBps  (30.0 secs, 3 samples)\nFile Read 256 bufsize 500 maxblocks      314644.0 KBps  (30.0 secs, 3 samples)\nFile Write 256 bufsize 500 maxblocks     151852.0 KBps  (30.0 secs, 3 samples)\nFile Copy 256 bufsize 500 maxblocks      101000.0 KBps  (30.0 secs, 3 samples)\nFile Read 4096 bufsize 8000 maxblocks    2033256.0 KBps  (30.0 secs, 3 samples)\nFile Write 4096 bufsize 8000 maxblocks   1611814.0 KBps  (30.0 secs, 3 samples)\nFile Copy 4096 bufsize 8000 maxblocks    847979.0 KBps  (30.0 secs, 3 samples)\nDc: sqrt(2) to 99 decimal places         128148.7 lpm   (30.0 secs, 3 samples)\n\n                     INDEX VALUES\nTEST                                        BASELINE     RESULT      INDEX\n\nExecl Throughput                                43.0     3012.9      700.7\nFile Copy 1024 bufsize 2000 maxblocks         3960.0   347159.0      876.7\nFile Copy 256 bufsize 500 maxblocks           1655.0   101000.0      610.3\nFile Copy 4096 bufsize 8000 maxblocks         5800.0   847979.0     1462.0\nShell Scripts (8 concurrent)                     6.0     1120.3     1867.2\n                                                                 \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n     FINAL SCORE                                                    1004.6\n\nThis patch:\n\nRemove refcnt from page_cgroup().\n\nAfter this,\n\n * A page is charged only when !page_mapped() \u0026\u0026 no page_cgroup is assigned.\n\t* Anon page is newly mapped.\n\t* File page is added to mapping-\u003etree.\n\n * A page is uncharged only when\n\t* Anon page is fully unmapped.\n\t* File page is removed from LRU.\n\nThere is no change in behavior from user\u0027s view.\n\nThis patch also removes unnecessary calls in rmap.c which was used only for\nrefcnt mangement.\n\n[akpm@linux-foundation.org: fix warning]\n[hugh@veritas.com: fix shmem_unuse_inode charging]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8589cc189f96b87348ae83ea4db38eaac624135",
      "tree": "6693422dc81e6da78c4ad892b0d326fb7f946dda",
      "parents": [
        "508b7be0a5b06b64203512ed9b34191cddc83f56"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: better migration handling\n\nThis patch changes page migration under memory controller to use a\ndifferent algorithm.  (thanks to Christoph for new idea.)\n\nBefore:\n - page_cgroup is migrated from an old page to a new page.\nAfter:\n - a new page is accounted , no reuse of page_cgroup.\n\nPros:\n\n - We can avoid compliated lock depndencies and races in migration.\n\nCons:\n\n - new param to mem_cgroup_charge_common().\n\n - mem_cgroup_getref() is added for handling ref_cnt ping-pong.\n\nThis version simplifies complicated lock dependency in page migraiton\nunder memory resource controller.\n\n  new refcnt sequence is following.\n\na mapped page:\n  prepage_migration() ..... +1 to NEW page\n  try_to_unmap()      ..... all refs to OLD page is gone.\n  move_pages()        ..... +1 to NEW page if page cache.\n  remap...            ..... all refs from *map* is added to NEW one.\n  end_migration()     ..... -1 to New page.\n\n  page\u0027s mapcount + (page_is_cache) refs are added to NEW one.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "508b7be0a5b06b64203512ed9b34191cddc83f56",
      "tree": "48b1be978a74d7c2b333efe8a2d1a1187bfe67f0",
      "parents": [
        "a181b0e888a1d917edcab57cd73ccf7d8e75a46c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: avoid unnecessary initialization\n\n* remove over-killing initialization (in fast path)\n* makeing the condition for PAGE_CGROUP_FLAG_ACTIVE be more obvious.\n\nSigned-off-by: KAMEAZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a181b0e888a1d917edcab57cd73ccf7d8e75a46c",
      "tree": "d58dc8da5c16840d3c530ee9cc0014906630ed4b",
      "parents": [
        "7759fc9d10d3559f365cb122d81e0c0a185fe0fe"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Jul 25 01:47:08 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:37 2008 -0700"
      },
      "message": "memcg: make global var read_mostly\n\nmem_cgroup_subsys and page_cgroup_cache should be read_mostly and\nMEM_CGROUP_RECLAIM_RETRIES can be just a fixed number.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "856c13aa1ff6136c1968414fdea5938ea9d5ebf2",
      "tree": "deee908f253c77cbcb868a915e45bfb2ed99383c",
      "parents": [
        "f92523e3a7861f5dbd76021e0719a35fe8771f2d"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Fri Jul 25 01:47:04 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 25 10:53:36 2008 -0700"
      },
      "message": "cgroup files: convert res_counter_write() to be a cgroups write_string() handler\n\nCurrently res_counter_write() is a raw file handler even though it\u0027s\nultimately taking a number, since in some cases it wants to\npre-process the string when converting it to a number.\n\nThis patch converts res_counter_write() from a raw file handler to a\nwrite_string() handler; this allows some of the boilerplate\ncopying/locking/checking to be removed, and simplies the cleanup path,\nsince these functions are now performed by the cgroups framework.\n\n[lizf@cn.fujitsu.com: build fix]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55e462b05b5df4fd113c4a304c4f487d44b0898e",
      "tree": "0d538695cc0611395666194a6326b3ad424a9dc7",
      "parents": [
        "f39e578172f30d3bdd4533465c7ec00db738eb9d"
      ],
      "author": {
        "name": "Balaji Rao",
        "email": "balajirrao@gmail.com",
        "time": "Thu May 01 04:35:12 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 01 08:04:02 2008 -0700"
      },
      "message": "memcg: simple stats for memory resource controller\n\nImplement trivial statistics for the memory resource controller.\n\nSigned-off-by: Balaji Rao \u003cbalajirrao@gmail.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1faf8e40a8ab12ae1f7f474965e6fb031e43f8d6",
      "tree": "7448f437cc527d4396269945e070c841e0f1603d",
      "parents": [
        "33327948782bcef89c78eb47af86b6a2df9fd4a5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Apr 29 01:00:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:11 2008 -0700"
      },
      "message": "memcg: remove redundant initialization in mem_cgroup_create()\n\n*mem has been zeroed, that means mem-\u003einfo has already been filled with 0.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33327948782bcef89c78eb47af86b6a2df9fd4a5",
      "tree": "c1045eaee1b63a6be37a09c969e2433a5c595c33",
      "parents": [
        "4a56d02e34baedbea5eb1fd558f2b856b8c7db1e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Apr 29 01:00:24 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:11 2008 -0700"
      },
      "message": "memcgroup: use vmalloc for mem_cgroup allocation\n\nOn ia64, this kmalloc() requires order-4 pages.  But this is not necessary to\nbe physically contiguous.  For big mem_cgroup, vmalloc is better.  For small\nones, kmalloc is used.\n\n[akpm@linux-foundation.org: simplification]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a56d02e34baedbea5eb1fd558f2b856b8c7db1e",
      "tree": "212dc2ed8562014963f2bd8b66578a5aa36f426c",
      "parents": [
        "3eae90c3cdd4e762d0f4f5e939c98780fccded57"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Apr 29 01:00:23 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:11 2008 -0700"
      },
      "message": "memcgroup: make the memory controller more desktop responsive\n\nThis patch makes the memory controller more responsive on my desktop.\n\n1. Set all cached pages as inactive.  We were by default marking all pages\n   as active, thus forcing us to go through two passes for reclaiming pages\n\n2. Remove congestion_wait(), since we already have that logic in\n   do_try_to_free_pages()\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3eae90c3cdd4e762d0f4f5e939c98780fccded57",
      "tree": "d5b6f138e8464827b7b882fc6acea3916aca8957",
      "parents": [
        "29f2a4dac856e9433a502b05b40e8e90385d8e27"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Apr 29 01:00:22 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "memcg: remove redundant function calls\n\nremove_list/add_list uses page_cgroup_zoneinfo() in it.\n\nSo, it\u0027s called twice before and after lock.\n\n\tmz \u003d page_cgroup_zoneinfo();\n\tlock();\n\tmz \u003d page_cgroup_zoneinfo();\n\t....\n\tunlock();\n\nAnd address of mz never changes.\n\nThis is not good. This patch fixes this behavior.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29f2a4dac856e9433a502b05b40e8e90385d8e27",
      "tree": "242772a246a6a5170ed5183d3fe3944a6f36a169",
      "parents": [
        "85cc59db12724e1248f5e4841e61339cf485d5c7"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Apr 29 01:00:21 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "memcgroup: implement failcounter reset\n\nThis is a very common requirement from people using the resource accounting\nfacilities (not only memcgroup but also OpenVZ beancounters).  They want to\nput the cgroup in an initial state without re-creating it.\n\nFor example after re-configuring a group people want to observe how this new\nconfiguration fits the group needs without saving the previous failcnt value.\n\nMerge two resets into one mem_cgroup_reset() function to demonstrate how\nmultiplexing work.\n\nBesides, I have plans to move the files, that correspond to res_counter to the\nres_counter.c file and somehow \"import\" them into controller.  I don\u0027t know\nhow to make it gracefully yet, but merging resets of max_usage and failcnt in\none function will be there for sure.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85cc59db12724e1248f5e4841e61339cf485d5c7",
      "tree": "960340cafba30181a1e2f60c93cd54a6fdb637ff",
      "parents": [
        "b6ac57d50a375aa2f267e1b2b56c46564a936d00"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Apr 29 01:00:20 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "memcgroup: use triggers in force_empty and max_usage files\n\nThese two files are essentially event callbacks.  They do not care about the\ncontents of the string, but only about the fact of the write itself.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6ac57d50a375aa2f267e1b2b56c46564a936d00",
      "tree": "51aca62f4b9961f2105672b3429723ca73d78386",
      "parents": [
        "faebe9fdf35058bb8421e4c09f6f70994eaf8db2"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Apr 29 01:00:19 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "memcgroup: move memory controller allocations to their own slabs\n\nMove the memory controller data structure page_cgroup to its own slab cache.\nIt saves space on the system, allocations are not necessarily pushed to order\nof 2 and should provide performance benefits.  Users who disable the memory\ncontroller can also double check that the memory controller is not allocating\npage_cgroup\u0027s.\n\nNOTE: Hugh Dickins brought up the issue of whether we want to mark page_cgroup\nas __GFP_MOVABLE or __GFP_RECLAIMABLE.  I don\u0027t think there is an easy answer\nat the moment.  page_cgroup\u0027s are associated with user pages, they can be\nreclaimed once the user page has been reclaimed, so it might make sense to\nmark them as __GFP_RECLAIMABLE.  For now, I am leaving the marking to default\nvalues that the slab allocator uses.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c84872e168d10926acd2dee975d19172eef79252",
      "tree": "c28f4f87ad38b524fe2a4c1e0e590bea3aacd92a",
      "parents": [
        "cf475ad28ac35cc9ba612d67158f29b73b38b05d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Tue Apr 29 01:00:17 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "memcgroup: add the max_usage member on the res_counter\n\nThis field is the maximal value of the usage one since the counter creation\n(or since the latest reset).\n\nTo reset this to the usage value simply write anything to the appropriate\ncgroup file.\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf475ad28ac35cc9ba612d67158f29b73b38b05d",
      "tree": "2c7cd568d00357bd42643ea602884e731cc24f26",
      "parents": [
        "29486df325e1fe6e1764afcb19e3370804c2b002"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Tue Apr 29 01:00:16 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:10 2008 -0700"
      },
      "message": "cgroups: add an owner to the mm_struct\n\nRemove the mem_cgroup member from mm_struct and instead adds an owner.\n\nThis approach was suggested by Paul Menage.  The advantage of this approach\nis that, once the mm-\u003eowner is known, using the subsystem id, the cgroup\ncan be determined.  It also allows several control groups that are\nvirtually grouped by mm_struct, to exist independent of the memory\ncontroller i.e., without adding mem_cgroup\u0027s for each controller, to\nmm_struct.\n\nA new config option CONFIG_MM_OWNER is added and the memory resource\ncontroller selects this config option.\n\nThis patch also adds cgroup callbacks to notify subsystems when mm-\u003eowner\nchanges.  The mm_cgroup_changed callback is called with the task_lock() of\nthe new task held and is called just prior to changing the mm-\u003eowner.\n\nI am indebted to Paul Menage for the several reviews of this patchset and\nhelping me make it lighter and simpler.\n\nThis patch was tested on a powerpc box, it was compiled with both the\nMM_OWNER config turned on and off.\n\nAfter the thread group leader exits, it\u0027s moved to init_css_state by\ncgroup_exit(), thus all future charges from runnings threads would be\nredirected to the init_css_set\u0027s subsystem.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e,\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c27e8818a09bbdfe7c07c629cb2c27e1a742e156",
      "tree": "2ed583bc69f4224259c00aad8703a0bc452b8469",
      "parents": [
        "c64745cf0f34f2cb08fc28c93d844e583d0d591d"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:03 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:08 2008 -0700"
      },
      "message": "CGroup API files: drop mem_cgroup_force_empty()\n\nThis function isn\u0027t needed - a NULL pointer in the cftype read function will\nresult in the same EINVAL response to userspace.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Li Zefan\" \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"YAMAMOTO Takashi\" \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c64745cf0f34f2cb08fc28c93d844e583d0d591d",
      "tree": "d957cd0cd83917ee69c72eb92d1db0c4cb2ed2bc",
      "parents": [
        "9179656961adcea3c25403365597e486d851ac5e"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 01:00:02 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:08 2008 -0700"
      },
      "message": "CGroup API files: use cgroup map for memcontrol stats file\n\nRemove the seq_file boilerplate used to construct the memcontrol stats map,\nand instead use the new map representation for cgroup control files\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Li Zefan\" \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"YAMAMOTO Takashi\" \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c3daa722b624eaf0c5ea60e4f180bd0684542e2",
      "tree": "afdb7e2068b018569dda8415b184b6de2ab330a6",
      "parents": [
        "2c7eabf37647dd459d555e76954b4de87be2321f"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Tue Apr 29 00:59:58 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 29 08:06:08 2008 -0700"
      },
      "message": "CGroup API files: use read_u64 in memory controller\n\nUpdate the memory controller to use read_u64 for its limit/usage/failcnt\ncontrol files, calling the new res_counter_read_u64() function.\n\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: \"Li Zefan\" \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"YAMAMOTO Takashi\" \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41e3355de052693c7a0cad74b845148d262edadf",
      "tree": "7d40851015f1a90a9c6386c3e880ed23ac5127cb",
      "parents": [
        "bb070e43497d4fcfea7d8b52003fe1376c218343"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Apr 08 17:41:54 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 08 18:25:53 2008 -0700"
      },
      "message": "memcg: fix node_state handling\n\nThis should be N_NORMAL_MEMORY.\n\nN_NORMAL_MEMORY is \"true\" if a node has memory for the kernel.  N_HIGH_MEMORY\nis \"true\" if a node has memory for HIGHMEM.  (If CONFIG_HIGHMEM\u003dn, always\n\"true\")\n\nThis check is used for testing whether we can use kmalloc_node() on a node.\nThen, if there is a node which only contains HIGHMEM, the system will call\nkmalloc_node() which doesn\u0027t contain memory for the kernel.  If it happens\nunder SLUB, the kernel will panic.  I think this only happens on x86_32-numa.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4077960e2a38ec59096ff993cd080056e17f3707",
      "tree": "ffc0bdd5e74b2247add9fb30f455ee57cf648a41",
      "parents": [
        "8bab8dded67d026c39367bbd5e27d2f6c556c38e"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Fri Apr 04 14:29:59 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 04 14:46:26 2008 -0700"
      },
      "message": "memory controller: make memory resource control aware of boot options\n\nA boot option for the memory controller was discussed on lkml.  It is a good\nidea to add it, since it saves memory for people who want to turn off the\nmemory controller.\n\nBy default the option is on for the following two reasons:\n\n1. It provides compatibility with the current scheme where the memory\n   controller turns on if the config option is enabled\n2. It allows for wider testing of the memory controller, once the config\n   option is enabled\n\nWe still allow the create, destroy callbacks to succeed, since they are not\naware of boot options.  We do not populate the directory will memory resource\ncontroller specific files.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Sudhir Kumar \u003cskumar@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52ea27eb4cd5f250f33638029a134ff03c5e6bbb",
      "tree": "56397e15561f77a3aed272c006c275e63f611091",
      "parents": [
        "0cf01f6685bef41dea37bbec606f375b7a98fd98"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@openvz.org",
        "time": "Wed Mar 19 17:00:45 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 19 18:53:35 2008 -0700"
      },
      "message": "memcgroup: fix check for thread being a group leader in memcgroup\n\nThe check t-\u003epid \u003d\u003d t-\u003epid is not the blessed way to check whether a task is a\ngroup leader.\n\nThis is not about the code beautifulness only, but about pid namespaces fixes\n- both the tgid and the pid fields on the task_struct are (slowly :( )\nbecoming deprecated.\n\nBesides, the thread_group_leader() macro makes only one dereference :)\n\nSigned-off-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb59e9f1e9786635ea12e12bf6adbb132e10f979",
      "tree": "9104d67895e0e85e3014c60389146ab2318faa7c",
      "parents": [
        "9b3c0a07e0fca35e36751680de3e4c76dbff5df3"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: fix oops on NULL lru list\n\nWhile testing force_empty, during an exit_mmap, __mem_cgroup_remove_list\ncalled from mem_cgroup_uncharge_page oopsed on a NULL pointer in the lru list.\n I couldn\u0027t see what racing tasks on other cpus were doing, but surmise that\nanother must have been in mem_cgroup_charge_common on the same page, between\nits unlock_page_cgroup and spin_lock_irqsave near done (thanks to that kzalloc\nwhich I\u0027d almost changed to a kmalloc).\n\nNormally such a race cannot happen, the ref_cnt prevents it, the final\nuncharge cannot race with the initial charge.  But force_empty buggers the\nref_cnt, that\u0027s what it\u0027s all about; and thereafter forced pages are\nvulnerable to races such as this (just think of a shared page also mapped into\nan mm of another mem_cgroup than that just emptied).  And remain vulnerable\nuntil they\u0027re freed indefinitely later.\n\nThis patch just fixes the oops by moving the unlock_page_cgroups down below\nadding to and removing from the list (only possible given the previous patch);\nand while we\u0027re at it, we might as well make it an invariant that\npage-\u003epage_cgroup is always set while pc is on lru.\n\nBut this behaviour of force_empty seems highly unsatisfactory to me: why have\na ref_cnt if we always have to cope with it being violated (as in the earlier\npage migration patch).  We may prefer force_empty to move pages to an orphan\nmem_cgroup (could be the root, but better not), from which other cgroups could\nrecover them; we might need to reverse the locking again; but no time now for\nsuch concerns.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b3c0a07e0fca35e36751680de3e4c76dbff5df3",
      "tree": "3dd6355a88282ea5577a05b7f2d2d3ae216ab9a8",
      "parents": [
        "2680eed723b664d83e6181ae275fac0ec8fa05ff"
      ],
      "author": {
        "name": "Hirokazu Takahashi",
        "email": "taka@valinux.co.jp",
        "time": "Tue Mar 04 14:29:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: simplify force_empty and move_lists\n\nAs for force_empty, though this may not be the main topic here,\nmem_cgroup_force_empty_list() can be implemented simpler.  It is possible to\nmake the function just call mem_cgroup_uncharge_page() instead of releasing\npage_cgroups by itself.  The tip is to call get_page() before invoking\nmem_cgroup_uncharge_page(), so the page won\u0027t be released during this\nfunction.\n\nKamezawa-san points out that by the time mem_cgroup_uncharge_page() uncharges,\nthe page might have been reassigned to an lru of a different mem_cgroup, and\nnow be emptied from that; but Hugh claims that\u0027s okay, the end state is the\nsame as when it hasn\u0027t gone to another list.\n\nAnd once force_empty stops taking lock_page_cgroup within mz-\u003elru_lock,\nmem_cgroup_move_lists() can be simplified to take mz-\u003elru_lock directly while\nholding page_cgroup lock (but still has to use try_lock_page_cgroup).\n\nSigned-off-by: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2680eed723b664d83e6181ae275fac0ec8fa05ff",
      "tree": "f4c137e43c3bdf78e6923bb3aafaf38680c4c301",
      "parents": [
        "6d48ff8bcfd403ec8d3ef7a56538ea9e6f773b9c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: fix mem_cgroup_move_lists locking\n\nEver since the VM_BUG_ON(page_get_page_cgroup(page)) (now Bad page state) went\ninto page freeing, I\u0027ve hit it from time to time in testing on some machines,\nsometimes only after many days.  Recently found a machine which could usually\nproduce it within a few hours, which got me there at last.\n\nThe culprit is mem_cgroup_move_lists, whose locking is inadequate; and the\narrangement of structures was such that you got page_cgroups from the lru list\nneatly put on to SLUB\u0027s freelist.  Kamezawa-san identified the same hole\nindependently.\n\nThe main problem was that it was missing the lock_page_cgroup it needs to\nsafely page_get_page_cgroup; but it\u0027s tricky to go beyond that too, and I\ncouldn\u0027t do it with SLAB_DESTROY_BY_RCU as I\u0027d expected.  See the code for\ncomments on the constraints.\n\nThis patch immediately gets replaced by a simpler one from Hirokazu-san; but\nis it just foolish pride that tells me to put this one on record, in case we\nneed to come back to it later?\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d48ff8bcfd403ec8d3ef7a56538ea9e6f773b9c",
      "tree": "9331ed70405f4933ac923a7595268ee7e773018e",
      "parents": [
        "b9c565d5a29a795f970b4a1340393d8fc6722fb9"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: css_put after remove_list\n\nmem_cgroup_uncharge_page does css_put on the mem_cgroup before uncharging from\nit, and before removing page_cgroup from one of its lru lists: isn\u0027t there a\ndanger that struct mem_cgroup memory could be freed and reused before\ncompleting that, so corrupting something?  Never seen it, and for all I know\nthere may be other constraints which make it impossible; but let\u0027s be\ndefensive and reverse the ordering there.\n\nmem_cgroup_force_empty_list is safe because there\u0027s an extra css_get around\nall its works; but even so, change its ordering the same way round, to help\nget in the habit of doing it like this.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b9c565d5a29a795f970b4a1340393d8fc6722fb9",
      "tree": "cbd1e0c762738dee438dfd1093a1bb21ce56664b",
      "parents": [
        "d5b69e38f8cdb1e41cc022305c86c9739bf1ffdb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: remove clear_page_cgroup and atomics\n\nRemove clear_page_cgroup: it\u0027s an unhelpful helper, see for example how\nmem_cgroup_uncharge_page had to unlock_page_cgroup just in order to call it\n(serious races from that?  I\u0027m not sure).\n\nOnce that\u0027s gone, you can see it\u0027s pointless for page_cgroup\u0027s ref_cnt to be\natomic: it\u0027s always manipulated under lock_page_cgroup, except where\nforce_empty unilaterally reset it to 0 (and how does uncharge\u0027s\natomic_dec_and_test protect against that?).\n\nSimplify this page_cgroup locking: if you\u0027ve got the lock and the pc is\nattached, then the ref_cnt must be positive: VM_BUG_ONs to check that, and to\ncheck that pc-\u003epage matches page (we\u0027re on the way to finding why sometimes it\ndoesn\u0027t, but this patch doesn\u0027t fix that).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5b69e38f8cdb1e41cc022305c86c9739bf1ffdb",
      "tree": "fdada47ea248d2b7064d5603eb9c68a1bdfb381d",
      "parents": [
        "8869b8f6e09a1b49bf915eb03f663f2e4e8fbcd4"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: memcontrol uninlined and static\n\nMore cleanup to memcontrol.c, this time changing some of the code generated.\nLet the compiler decide what to inline (except for page_cgroup_locked which is\nonly used when CONFIG_DEBUG_VM): the __always_inline on lock_page_cgroup etc.\nwas quite a waste since bit_spin_lock etc.  are inlines in a header file; made\nmem_cgroup_force_empty and mem_cgroup_write_strategy static.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8869b8f6e09a1b49bf915eb03f663f2e4e8fbcd4",
      "tree": "add36501e2bcceaae674569e99b474e5b3555fb4",
      "parents": [
        "8289546e573d5ff681cdf0fc7a1184cca66fdb55"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:09 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: memcontrol whitespace cleanups\n\nSorry, before getting down to more important changes, I\u0027d like to do some\ncleanup in memcontrol.c.  This patch doesn\u0027t change the code generated, but\ncleans up whitespace, moves up a double declaration, removes an unused enum,\nremoves void returns, removes misleading comments, that kind of thing.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8289546e573d5ff681cdf0fc7a1184cca66fdb55",
      "tree": "9cf874b55eb9a6c97233d137278c7b7c89a5f4a1",
      "parents": [
        "7e924aafa4b03ff71de34af8553d9a1ebc86c071"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: remove mem_cgroup_uncharge\n\nNothing uses mem_cgroup_uncharge apart from mem_cgroup_uncharge_page, (a\ntrivial wrapper around it) and mem_cgroup_end_migration (which does the same\nas mem_cgroup_uncharge_page).  And it often ends up having to lock just to let\nits caller unlock.  Remove it (but leave the silly locking until a later\npatch).\n\nMoved mem_cgroup_cache_charge next to mem_cgroup_charge in memcontrol.h.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e924aafa4b03ff71de34af8553d9a1ebc86c071",
      "tree": "21735b7369ede27f34c41184b0a686020b80e2c6",
      "parents": [
        "9442ec9df40d952b0de185ae5638a74970388e01"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: mem_cgroup_charge never NULL\n\nMy memcgroup patch to fix hang with shmem/tmpfs added NULL page handling to\nmem_cgroup_charge_common.  It seemed convenient at the time, but hard to\njustify now: there\u0027s a perfectly appropriate swappage to charge and uncharge\ninstead, this is not on any hot path through shmem_getpage, and no performance\nhit was observed from the slight extra overhead.\n\nSo revert that NULL page handling from mem_cgroup_charge_common; and make it\nclearer by bringing page_cgroup_assign_new_page_cgroup into its body - that\nwas a helper I found more of a hindrance to understanding.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9442ec9df40d952b0de185ae5638a74970388e01",
      "tree": "14b06d71203be119d93736464ca49f37ce402c1c",
      "parents": [
        "98837c7f82ef78aa38f40462aa2fcac68fd3acbf"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:07 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:15 2008 -0800"
      },
      "message": "memcg: bad page if page_cgroup when free\n\nReplace free_hot_cold_page\u0027s VM_BUG_ON(page_get_page_cgroup(page)) by a \"Bad\npage state\" and clear: most users don\u0027t have CONFIG_DEBUG_VM on, and if it\nwere set here, it\u0027d likely cause corruption when the page is reused.\n\nDon\u0027t use page_assign_page_cgroup to clear it: that should be private to\nmemcontrol.c, and always called with the lock taken; and memmap_init_zone\ndoesn\u0027t need it either - like page-\u003emapping and other pointers throughout the\nkernel, Linux assumes pointers in zeroed structures are NULL pointers.\n\nInstead use page_reset_bad_cgroup, added to memcontrol.h for this only.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "427d5416f317681498337ab19218d195edea02d6",
      "tree": "967cfc87ec775ca3c05f95f2339697e796383191",
      "parents": [
        "bd845e38c7a7251a95a8f2c38aa7fb87140b771d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:14 2008 -0800"
      },
      "message": "memcg: move_lists on page not page_cgroup\n\nEach caller of mem_cgroup_move_lists is having to use page_get_page_cgroup:\nit\u0027s more convenient if it acts upon the page itself not the page_cgroup; and\nin a later patch this becomes important to handle within memcontrol.c.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd845e38c7a7251a95a8f2c38aa7fb87140b771d",
      "tree": "007a1a6703f4fe27d52a07e6caea8ce87d06ff77",
      "parents": [
        "acc4988bcf38f9618886eaeb9802aeacc6978ec2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 04 14:29:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Mar 04 16:35:14 2008 -0800"
      },
      "message": "memcg: mm_match_cgroup not vm_match_cgroup\n\nvm_match_cgroup is a perverse name for a macro to match mm with cgroup: rename\nit mm_match_cgroup, matching mm_init_cgroup and mm_free_cgroup.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hirokazu Takahashi \u003ctaka@valinux.co.jp\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dda81ca31dc73e695ff8b83351f7aaefbef192a",
      "tree": "808c6dd9c79f6f62851eb4108c4d7104decc7e9c",
      "parents": [
        "7fde4c3eb7ee68828d76a2148ed6d70b6a794add"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:25 2008 -0800"
      },
      "message": "memcgroup: return negative error code in mem_cgroup_create()\n\nCgroup requires the subsystem to return negative error code on error in the\ncreate method.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fde4c3eb7ee68828d76a2148ed6d70b6a794add",
      "tree": "de983bf2234e050cb22eb653ab9e363186d9acc7",
      "parents": [
        "2324c5dd47233859cd7ba6272d0601f26ce60dcd"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Sat Feb 23 15:24:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:25 2008 -0800"
      },
      "message": "memcgroup: remove a useless VM_BUG_ON()\n\nRemove this VM_BUG_ON(), as Balbir stated:\n\nWe used to have a for loop with !list_empty() as a termination condition\nand VM_BUG_ON(!pc) is a spill over.  With the new loop, VM_BUG_ON(!pc) does\nnot make sense.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60c12b1202a60eabb1c61317e5d2678fcea9893f",
      "tree": "143e5bdbd10d32832fce9183500deebad6c6e4db",
      "parents": [
        "6966a97753854c8b5336cf3997d5d1d205d91b12"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Sat Feb 09 00:10:15 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 09 11:08:33 2008 -0800"
      },
      "message": "memcontrol: add vm_match_cgroup()\n\nmm_cgroup() is exclusively used to test whether an mm\u0027s mem_cgroup pointer\nis pointing to a specific cgroup.  Instead of returning the pointer, we can\njust do the test itself in a new macro:\n\n\tvm_match_cgroup(mm, cgroup)\n\nreturns non-zero if the mm\u0027s mem_cgroup points to cgroup.  Otherwise it\nreturns zero.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c541e14bfa553133c3473a6ed3e4c0583ea2285",
      "tree": "4e8ca5d7272803d3fe1bb06963b132248d0b4240",
      "parents": [
        "072c56c13e1302fcdc39961dc64e76485731ad67"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:41 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "Memory controller remove control_type feature\n\nBased on the discussion at http://lkml.org/lkml/2007/12/20/383, it was felt\nthat control_type might not be a good thing to implement right away.  We\ncan add this flexibility at a later point when required.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "072c56c13e1302fcdc39961dc64e76485731ad67",
      "tree": "934896fdd8aeaa72cb93cb3be2c816a2ac0f0ae7",
      "parents": [
        "1ecaab2bd221251a3fd148abb08e8b877f1e93c8"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:39 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: per-zone-lock for cgroup\n\nNow, lru is per-zone.\n\nThen, lru_lock can be (should be) per-zone, too.\nThis patch implementes per-zone lru lock.\n\nlru_lock is placed into mem_cgroup_per_zone struct.\n\nlock can be accessed by\n   mz \u003d mem_cgroup_zoneinfo(mem_cgroup, node, zone);\n   \u0026mz-\u003elru_lock\n\n   or\n   mz \u003d page_cgroup_zoneinfo(page_cgroup);\n   \u0026mz-\u003elru_lock\n\nSigned-off-by: KAMEZAWA hiroyuki \u003ckmaezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1ecaab2bd221251a3fd148abb08e8b877f1e93c8",
      "tree": "e5ce53b4d045832382ec38555b2a03749cc9d128",
      "parents": [
        "1cfb419b394ba82745c54ff05436d598ecc2dbd5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:38 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: per zone lru for cgroup\n\nThis patch implements per-zone lru for memory cgroup.\nThis patch makes use of mem_cgroup_per_zone struct for per zone lru.\n\nLRU can be accessed by\n\n   mz \u003d mem_cgroup_zoneinfo(mem_cgroup, node, zone);\n   \u0026mz-\u003eactive_list\n   \u0026mz-\u003einactive_list\n\n   or\n   mz \u003d page_cgroup_zoneinfo(page_cgroup);\n   \u0026mz-\u003eactive_list\n   \u0026mz-\u003einactive_list\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc38108e1ba7f3b9e12b82d0236fa3730c2e0439",
      "tree": "6e51d191006b5db840c1eee659c372a2de7f85a8",
      "parents": [
        "6c48a1d040a9a9eaa4acdd7d4cb3885e04bf8413"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate the number of pages to be scanned per cgroup\n\nDefine function for calculating the number of scan target on each Zone/LRU.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c48a1d040a9a9eaa4acdd7d4cb3885e04bf8413",
      "tree": "2fcfb405b5664028d337a8a185c696c9c1f23e64",
      "parents": [
        "5932f3671bb2dd873c5ac443cbf5dc2cd167ae94"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:34 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:22 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: remember reclaim priority in memory cgroup\n\nFunctions to remember reclaim priority per cgroup (as zone-\u003eprev_priority)\n\n[akpm@linux-foundation.org: build fixes]\n[akpm@linux-foundation.org: more build fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5932f3671bb2dd873c5ac443cbf5dc2cd167ae94",
      "tree": "31e2a8fc80487b5ec80d7730c61b62127aebc15d",
      "parents": [
        "58ae83db2a40dea15d4277d499a11dadc823c388"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate active/inactive imbalance per cgroup\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58ae83db2a40dea15d4277d499a11dadc823c388",
      "tree": "18e43609ab67a9577c01188d39714999d5ed03d0",
      "parents": [
        "6d12e2d8ddbe653d80ea4f71578481c1bc933025"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: calculate mapper_ratio per cgroup\n\nDefine function for calculating mapped_ratio in memory cgroup.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d12e2d8ddbe653d80ea4f71578481c1bc933025",
      "tree": "f175cdcadd8566b8f8a2e6a155b33e531eba7f11",
      "parents": [
        "c0149530d0bb356c933a09f3c8103ea02f452d8a"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:31 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: per-zone active inactive counter\n\nThis patch adds per-zone status in memory cgroup.  These values are often read\n(as per-zone value) by page reclaiming.\n\nIn current design, per-zone stat is just a unsigned long value and not an\natomic value because they are modified only under lru_lock.  (So, atomic_ops\nis not necessary.)\n\nThis patch adds ACTIVE and INACTIVE per-zone status values.\n\nFor handling per-zone status, this patch adds\n  struct mem_cgroup_per_zone {\n\t\t...\n  }\nand some helper functions. This will be useful to add per-zone objects\nin mem_cgroup.\n\nThis patch turns memory controller\u0027s early_init to be 0 for calling\nkmalloc() in initialization.\n\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0149530d0bb356c933a09f3c8103ea02f452d8a",
      "tree": "84f378ab7209bac903d49fe4e0807537c609697c",
      "parents": [
        "91a45470f7ddc322073752e711a2e8dcbc339e6f"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:21 2008 -0800"
      },
      "message": "per-zone and reclaim enhancements for memory controller: nid/zid helper function for cgroup\n\nAdd macro to get node_id and zone_id of page_cgroup.  Will be used in\nper-zone-xxx patches and others.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "df878fb04dea044378274d40d063279a9cb787fb",
      "tree": "ba2246475af5c84b9968182b6b8212348671ddef",
      "parents": [
        "4fca88c87b7969c698912e2de9b1b31088c777cb"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:28 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: implicit force_empty() at rmdir\n\nAdd pre_destroy handler for mem_cgroup and try to make mem_cgroup empty at\nrmdir().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2ceb9b7ddedbb2e8e590bc6ce33c854043016f9",
      "tree": "1c75e7947a86c6891bae16129086f4b0d10abc33",
      "parents": [
        "d52aa412d43827033a8e2ce4415ef6e8f8d53635"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: add memory.stat file\n\nShow accounted information of memory cgroup by memory.stat file\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix printk warning]\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d52aa412d43827033a8e2ce4415ef6e8f8d53635",
      "tree": "24d446d16a2acf33c612ebf8856529607632bf37",
      "parents": [
        "3564c7c45156b358efe921ab2e4e516dad92c94c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:24 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: add status accounting function for memory cgroup\n\nAdd statistics account infrastructure for memory controller.  All account\ninformation is stored per-cpu and caller will not have to take lock or use\natomic ops.  This will be used by memory.stat file later.\n\nCACHE includes swapcache now. I\u0027d like to divide it to\nPAGECACHE and SWAPCACHE later.\n\nThis patch adds 3 functions for accounting.\n * __mem_cgroup_stat_add() ... for usual routine.\n * __mem_cgroup_stat_add_safe ... for calling under irq_disabled section.\n * mem_cgroup_read_stat() ... for reading stat value.\n * renamed PAGECACHE to CACHE (because it may include swapcache *now*)\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix smp_processor_id-in-preemptible]\n[akpm@linux-foundation.org: uninline things]\n[akpm@linux-foundation.org: remove dead code]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3564c7c45156b358efe921ab2e4e516dad92c94c",
      "tree": "112cf3f5ed5d723620a1ec736f3516d83b4630ac",
      "parents": [
        "82369553d6d3bc67c54129a02e0bc0b5b88f3045"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:23 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: remember \"a page is on active list of cgroup or not\"\n\nRemember page_cgroup is on active_list or not in page_cgroup-\u003eflags.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82369553d6d3bc67c54129a02e0bc0b5b88f3045",
      "tree": "1d80a6cc9f5840550ad025b32ac8ef8fd915fd98",
      "parents": [
        "3be91277e754c7db04eae145ba622b3a3e3ad96d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:14:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memcgroup: fix hang with shmem/tmpfs\n\nThe memcgroup regime relies upon a cgroup reclaiming pages from itself within\nadd_to_page_cache: which may involve some waiting.  Whereas shmem and tmpfs\nrely upon using add_to_page_cache while holding a spinlock: when it cannot\nwait.  The consequence is that when a cgroup reaches its limit, shmem_getpage\njust hangs - unless there is outside memory pressure too, neither kswapd nor\nradix_tree_preload get it out of the retry loop.\n\nIn most cases we can mem_cgroup_cache_charge the page waitably first, to\nattach the page_cgroup in advance, so add_to_page_cache will do no more than\nincrement a count; then mem_cgroup_uncharge_page after (in both success and\nfailure cases) to balance the books again.\n\nAnd where there used to be a congestion_wait for kswapd (recently made\nredundant by radix_tree_preload), use mem_cgroup_cache_charge with NULL page\nto go through a cycle of allocation and freeing, without accounting to any\nparticular page, and without updating the statistics vector.  This brings the\ncgroup below its limit so the next try usually succeeds.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3be91277e754c7db04eae145ba622b3a3e3ad96d",
      "tree": "347aa7cd186ed87ba7585d63e6584c94fffc2fd6",
      "parents": [
        "ac44d354d5c9ced49b1165d6496f134501134219"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:14:19 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memcgroup: tidy up mem_cgroup_charge_common\n\nTidy up mem_cgroup_charge_common before extending it.  Adjust some comments,\nbut mainly clean up its loop: I\u0027ve an aversion to loops full of continues,\nthen a break or a goto at the bottom.  And the is_atomic test should be on the\n__GFP_WAIT bit, not GFP_ATOMIC bits.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac44d354d5c9ced49b1165d6496f134501134219",
      "tree": "be054e8e2d37739a33d94cc78db3fd65e73c3aff",
      "parents": [
        "217bc3194d57150549e9234e6ddfee30de28cc78"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "Memory controller use rcu_read_lock() in mem_cgroup_cache_charge()\n\nHugh Dickins noticed that we were using rcu_dereference() without\nrcu_read_lock() in the cache charging routine. The patch below fixes\nthis problem\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "217bc3194d57150549e9234e6ddfee30de28cc78",
      "tree": "1de36e60115164b9c3d86b176ce45989cafbc2f2",
      "parents": [
        "cc8475822f8a4b17e9b76e7fadb6b9a341860422"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:17 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: remember \"a page is charged as page cache\"\n\nAdd a flag to page_cgroup to remember \"this page is\ncharged as cache.\"\ncache here includes page caches and swap cache.\nThis is useful for implementing precise accounting in memory cgroup.\nTODO:\n  distinguish page-cache and swap-cache\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc8475822f8a4b17e9b76e7fadb6b9a341860422",
      "tree": "b7e3ee9aba56ffaf93130786f3439cc43339e586",
      "parents": [
        "417eead30434b4bd09a54455e839cf9a62c05460"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:16 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memory cgroup enhancements: force_empty interface for dropping all account in empty cgroup\n\nThis patch adds an interface \"memory.force_empty\".  Any write to this file\nwill drop all charges in this cgroup if there is no task under.\n\n%echo 1 \u003e /....../memory.force_empty\n\nwill drop all charges of memory cgroup if cgroup\u0027s tasks is empty.\n\nThis is useful to invoke rmdir() against memory cgroup successfully.\n\nTested and worked well on x86_64/fake-NUMA system.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "436c6541b13a73790646eb11429bdc8ee50eec41",
      "tree": "45be274e89e7b8db83a98eb3c07031d066e13b16",
      "parents": [
        "ff7283fa3a66823933991ad55a558a3a01d5ab27"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Feb 07 00:14:12 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "memcgroup: fix zone isolation OOM\n\nmem_cgroup_charge_common shows a tendency to OOM without good reason, when\na memhog goes well beyond its rss limit but with plenty of swap available.\nSeen on x86 but not on PowerPC; seen when the next patch omits swapcache\nfrom memcgroup, but we presume it can happen without.\n\nmem_cgroup_isolate_pages is not quite satisfying reclaim\u0027s criteria for OOM\navoidance.  Already it has to scan beyond the nr_to_scan limit when it\nfinds a !LRU page or an active page when handling inactive or an inactive\npage when handling active.  It needs to do exactly the same when it finds a\npage from the wrong zone (the x86 tests had two zones, the PowerPC tests\nhad only one).\n\nDon\u0027t increment scan and then decrement it in these cases, just move the\nincrementation down.  Fix recent off-by-one when checking against\nnr_to_scan.  Cut out \"Check if the meta page went away from under us\",\npresumably left over from early debugging: no amount of such checks could\nsave us if this list really were being updated without locking.\n\nThis change does make the unlimited scan while holding two spinlocks\neven worse - bad for latency and bad for containment; but that\u0027s a\nseparate issue which is better left to be fixed a little later.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff7283fa3a66823933991ad55a558a3a01d5ab27",
      "tree": "e183c588497ce9f18fea1589fa66b6a000e2cbb8",
      "parents": [
        "ae41be374293e70e1ed441d986afcc6e744ef9d9"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:11 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:20 2008 -0800"
      },
      "message": "bugfix for memory cgroup controller: avoid !PageLRU page in mem_cgroup_isolate_pages\n\nThis patch makes mem_cgroup_isolate_pages() to be\n\n  - ignore !PageLRU pages.\n  - fixes the bug that isolation makes no progress if page_zone(page) !\u003d zone\n    page once find. (just increment scan in this case.)\n\nkswapd and memory migration removes a page from list when it handles\na page for reclaiming/migration.\n\nBecause __isolate_lru_page() doesn\u0027t moves page !PageLRU pages, it will\nbe safe to avoid touching !PageLRU() page and its page_cgroup.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae41be374293e70e1ed441d986afcc6e744ef9d9",
      "tree": "d8e2143820bbf3ed2f1f79ed99ee430284567b93",
      "parents": [
        "9175e0311ec9e6d1bf1f6dfecf9268baf08765e6"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "bugfix for memory cgroup controller: migration under memory controller fix\n\nWhile using memory control cgroup, page-migration under it works as following.\n\u003d\u003d\n 1. uncharge all refs at try to unmap.\n 2. charge regs again remove_migration_ptes()\n\u003d\u003d\nThis is simple but has following problems.\n\u003d\u003d\n The page is uncharged and charged back again if *mapped*.\n    - This means that cgroup before migration can be different from one after\n      migration\n    - If page is not mapped but charged as page cache, charge is just ignored\n      (because not mapped, it will not be uncharged before migration)\n      This is memory leak.\n\u003d\u003d\nThis patch tries to keep memory cgroup at page migration by increasing\none refcnt during it. 3 functions are added.\n\n mem_cgroup_prepare_migration() --- increase refcnt of page-\u003epage_cgroup\n mem_cgroup_end_migration()     --- decrease refcnt of page-\u003epage_cgroup\n mem_cgroup_page_migration() --- copy page-\u003epage_cgroup from old page to\n                                 new page.\n\nDuring migration\n  - old page is under PG_locked.\n  - new page is under PG_locked, too.\n  - both old page and new page is not on LRU.\n\nThese 3 facts guarantee that page_cgroup() migration has no race.\n\nTested and worked well in x86_64/fake-NUMA box.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9175e0311ec9e6d1bf1f6dfecf9268baf08765e6",
      "tree": "36ca9f47f8bc18345980270dc9d355f7c107cf6e",
      "parents": [
        "f1a9ee758de7de1e040de849fdef46e6802ea117"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Feb 07 00:14:08 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "bugfix for memory controller: add helper function for assigning cgroup to page\n\nThis patch adds following functions.\n   - clear_page_cgroup(page, pc)\n   - page_cgroup_assign_new_page_group(page, pc)\n\nMainly for cleanup.\n\nA manner \"check page-\u003ecgroup again after lock_page_cgroup()\" is\nimplemented in straight way.\n\nA comment in mem_cgroup_uncharge() will be removed by force-empty patch\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4c4a22148909e4c003562ea7ffe0a06e26919e3c",
      "tree": "fa8b7d00e89f0eb4cdb4394dbc74d898810519aa",
      "parents": [
        "4c6bc8dd5a0932f2c0b30a5f0a124464b7f614d0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memcontrol: move oom task exclusion to tasklist scan\n\nCreates a helper function to return non-zero if a task is a member of a\nmemory controller:\n\n\tint task_in_mem_cgroup(const struct task_struct *task,\n\t\t\t       const struct mem_cgroup *mem);\n\nWhen the OOM killer is constrained by the memory controller, the exclusion\nof tasks that are not a member of that controller was previously misplaced\nand appeared in the badness scoring function.  It should be excluded\nduring the tasklist scan in select_bad_process() instead.\n\n[akpm@linux-foundation.org: build fix]\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3062fc67dad01b1d2a15d58c709eff946389eca4",
      "tree": "521b26bda2f6b106c8b3747a88214eec5f24b998",
      "parents": [
        "e1a1cd590e3fcb0d2e230128daf2337ea55387dc"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Feb 07 00:14:03 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "memcontrol: move mm_cgroup to header file\n\nInline functions must preceed their use, so mm_cgroup() should be defined\nin linux/memcontrol.h.\n\ninclude/linux/memcontrol.h:48: warning: \u0027mm_cgroup\u0027 declared inline after\n\tbeing called\ninclude/linux/memcontrol.h:48: warning: previous declaration of\n\t\u0027mm_cgroup\u0027 was here\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: nuther build fix]\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e1a1cd590e3fcb0d2e230128daf2337ea55387dc",
      "tree": "eb660ab340c657a1eb595b2d4d8e8b62783bf6fb",
      "parents": [
        "bed7161a519a2faef53e1bce1b47595e297c1d14"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: make charging gfp mask aware\n\nNick Piggin pointed out that swap cache and page cache addition routines\ncould be called from non GFP_KERNEL contexts.  This patch makes the\ncharging routine aware of the gfp context.  Charging might fail if the\ncgroup is over it\u0027s limit, in which case a suitable error is returned.\n\nThis patch was tested on a Powerpc box.  I am still looking at being able\nto test the path, through which allocations happen in non GFP_KERNEL\ncontexts.\n\n[kamezawa.hiroyu@jp.fujitsu.com: problem with ZONE_MOVABLE]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bed7161a519a2faef53e1bce1b47595e297c1d14",
      "tree": "fbc0541340465f7d83221b829a9382cac2855916",
      "parents": [
        "8697d33194faae6fdd6b2e799f6308aa00cfdf67"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:14:01 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: make page_referenced() cgroup aware\n\nMake page_referenced() cgroup aware.  Without this patch, page_referenced()\ncan cause a page to be skipped while reclaiming pages.  This patch ensures\nthat other cgroups do not hold pages in a particular cgroup hostage.  It\nis required to ensure that shared pages are freed from a cgroup when they\nare not actively referenced from the cgroup that brought them in\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8697d33194faae6fdd6b2e799f6308aa00cfdf67",
      "tree": "edf6b3e4698b80aac6f1d1f2b9e5698ce8dfa6e5",
      "parents": [
        "c7ba5c9e8176704bfac0729875fa62798037584d"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:59 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: add switch to control what type of pages to limit\n\nChoose if we want cached pages to be accounted or not.  By default both are\naccounted for.  A new set of tunables are added.\n\necho -n 1 \u003e mem_control_type\n\nswitches the accounting to account for only mapped pages\n\necho -n 3 \u003e mem_control_type\n\nswitches the behaviour back\n\n[bunk@kernel.org: mm/memcontrol.c: clenups]\n[akpm@linux-foundation.org: fix sparc32 build]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c7ba5c9e8176704bfac0729875fa62798037584d",
      "tree": "00df1c4cb67e313cdb66233381b4cee275fd46c0",
      "parents": [
        "0eea10301708c64a6b793894c156e21ddd15eb64"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:58 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:19 2008 -0800"
      },
      "message": "Memory controller: OOM handling\n\nOut of memory handling for cgroups over their limit. A task from the\ncgroup over limit is chosen using the existing OOM logic and killed.\n\nTODO:\n1. As discussed in the OLS BOF session, consider implementing a user\nspace policy for OOM handling.\n\n[akpm@linux-foundation.org: fix build due to oom-killer changes]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0eea10301708c64a6b793894c156e21ddd15eb64",
      "tree": "a0dcbe47d48d35ec0554faa5f86068cfab94ca6e",
      "parents": [
        "66e1707bc34609f626e2e7b4fe7e454c9748bad5"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:57 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller improve user interface\n\nChange the interface to use bytes instead of pages.  Page sizes can vary\nacross platforms and configurations.  A new strategy routine has been added\nto the resource counters infrastructure to format the data as desired.\n\nSuggested by David Rientjes, Andrew Morton and Herbert Poetzl\n\nTested on a UML setup with the config for memory control enabled.\n\n[kamezawa.hiroyu@jp.fujitsu.com: possible race fix in res_counter]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66e1707bc34609f626e2e7b4fe7e454c9748bad5",
      "tree": "d850a729887485874c976ba64eb85e3406e488a1",
      "parents": [
        "67e465a77ba658635309ee00b367bec6555ea544"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:56 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: add per cgroup LRU and reclaim\n\nAdd the page_cgroup to the per cgroup LRU.  The reclaim algorithm has\nbeen modified to make the isolate_lru_pages() as a pluggable component.  The\nscan_control data structure now accepts the cgroup on behalf of which\nreclaims are carried out.  try_to_free_pages() has been extended to become\ncgroup aware.\n\n[akpm@linux-foundation.org: fix warning]\n[Lee.Schermerhorn@hp.com: initialize all scan_control\u0027s isolate_pages member]\n[bunk@kernel.org: make do_try_to_free_pages() static]\n[hugh@veritas.com: memcgroup: fix try_to_free order]\n[kamezawa.hiroyu@jp.fujitsu.com: this unlock_page_cgroup() is unnecessary]\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67e465a77ba658635309ee00b367bec6555ea544",
      "tree": "172060de1a91624725215c5f0e1131ce5e5c5e92",
      "parents": [
        "8a9f3ccd24741b50200c3f33d62534c7271f3dfc"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: task migration\n\nAllow tasks to migrate from one cgroup to the other.  We migrate\nmm_struct\u0027s mem_cgroup only when the thread group id migrates.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a9f3ccd24741b50200c3f33d62534c7271f3dfc",
      "tree": "066aabd8d2952299501f067a91cbfd6f47ee62f6",
      "parents": [
        "78fb74669e80883323391090e4d26d17fe29488f"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:53 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: memory accounting\n\nAdd the accounting hooks.  The accounting is carried out for RSS and Page\nCache (unmapped) pages.  There is now a common limit and accounting for both.\nThe RSS accounting is accounted at page_add_*_rmap() and page_remove_rmap()\ntime.  Page cache is accounted at add_to_page_cache(),\n__delete_from_page_cache().  Swap cache is also accounted for.\n\nEach page\u0027s page_cgroup is protected with the last bit of the\npage_cgroup pointer, this makes handling of race conditions involving\nsimultaneous mappings of a page easier.  A reference count is kept in the\npage_cgroup to deal with cases where a page might be unmapped from the RSS\nof all tasks, but still lives in the page cache.\n\nCredits go to Vaidyanathan Srinivasan for helping with reference counting work\nof the page cgroup.  Almost all of the page cache accounting code has help\nfrom Vaidyanathan Srinivasan.\n\n[hugh@veritas.com: fix swapoff breakage]\n[akpm@linux-foundation.org: fix locking]\nSigned-off-by: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: \u003cValdis.Kletnieks@vt.edu\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78fb74669e80883323391090e4d26d17fe29488f",
      "tree": "9154b703510415ae87bdae8750c1054e79710c61",
      "parents": [
        "8cdea7c05454260c0d4d83503949c358eb131d17"
      ],
      "author": {
        "name": "Pavel Emelianov",
        "email": "xemul@openvz.org",
        "time": "Thu Feb 07 00:13:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: accounting setup\n\nBasic setup routines, the mm_struct has a pointer to the cgroup that\nit belongs to and the the page has a page_cgroup associated with it.\n\nSigned-off-by: Pavel Emelianov \u003cxemul@openvz.org\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8cdea7c05454260c0d4d83503949c358eb131d17",
      "tree": "62f8d7262744dd9ec507252bf3e84a89c088ff9b",
      "parents": [
        "e552b6617067ab785256dcec5ca29eeea981aacb"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Feb 07 00:13:50 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Thu Feb 07 08:42:18 2008 -0800"
      },
      "message": "Memory controller: cgroups setup\n\nSetup the memory cgroup and add basic hooks and controls to integrate\nand work with the cgroup.\n\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Pavel Emelianov \u003cxemul@openvz.org\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Vaidyanathan Srinivasan \u003csvaidy@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ]
}
