)]}'
{
  "log": [
    {
      "commit": "18bc0bbd162e3eb3e7ea2953c315ad4113a57164",
      "tree": "6c46e99774772b8ac0ef92633377f4328bd87dbf",
      "parents": [
        "c09ee9d206994655d55de60222a3024702ad2055"
      ],
      "author": {
        "name": "Evgeniy Polyakov",
        "email": "zbr@ioremap.net",
        "time": "Mon Feb 09 17:02:42 2009 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 03 14:53:36 2009 -0700"
      },
      "message": "Staging: pohmelfs: kconfig/makefile and vfs changes.\n\nThis patch adds Kconfig and Makefile entries and exports to\nVFS functions to be used by POHMELFS.\n\nSigned-off-by: Evgeniy Polyakov \u003czbr@ioremap.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "385e1ca5f21c4680ad6a46a3aa2ea8af99e99c92",
      "tree": "7d887b59d943c5dd62c9604b7ea37fd2d650df71",
      "parents": [
        "b510882281d56873e1194021643b7c325336f84f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:39 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:39 2009 +0100"
      },
      "message": "CacheFiles: Permit the page lock state to be monitored\n\nAdd a function to install a monitor on the page lock waitqueue for a particular\npage, thus allowing the page being unlocked to be detected.\n\nThis is used by CacheFiles to detect read completion on a page in the backing\nfilesystem so that it can then copy the data to the waiting netfs page.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "266cf658efcf6ac33541a46740f74f50c79d2b6b",
      "tree": "5c83b0879892d509e598dfd54be3ba3679ecd348",
      "parents": [
        "03fb3d2af96c2783c3a5bc03f3d984cf422f0e69"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:36 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:36 2009 +0100"
      },
      "message": "FS-Cache: Recruit a page flags for cache management\n\nRecruit a page flag to aid in cache management.  The following extra flag is\ndefined:\n\n (1) PG_fscache (PG_private_2)\n\n     The marked page is backed by a local cache and is pinning resources in the\n     cache driver.\n\nIf PG_fscache is set, then things that checked for PG_private will now also\ncheck for that.  This includes things like truncation and page invalidation.\nThe function page_has_private() had been added to make the checks for both\nPG_private and PG_private_2 at the same time.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "03fb3d2af96c2783c3a5bc03f3d984cf422f0e69",
      "tree": "6618f82f8be26ba2c7ac38d6e6e16befc8e1140f",
      "parents": [
        "8f0aa2f25b31ba27db84259141e52ee6ec0d2820"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "message": "FS-Cache: Release page-\u003eprivate after failed readahead\n\nThe attached patch causes read_cache_pages() to release page-private data on a\npage for which add_to_page_cache() fails.  If the filler function fails, then\nthe problematic page is left attached to the pagecache (with appropriate flags\nset, one presumes) and the remaining to-be-attached pages are invalidated and\ndiscarded.  This permits pages with caching references associated with them to\nbe cleaned up.\n\nThe invalidatepage() address space op is called (indirectly) to do the honours.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "83aae4c737866da3280f51fd15da58eddd788397",
      "tree": "a4fdabfb02949e0d44743850b7f37ae52eaed757",
      "parents": [
        "627991a20b3f4d504d20466ab405fe035cb1a20a"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Apr 02 16:57:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: cleanup cache_charge\n\nCurrent mem_cgroup_cache_charge is a bit complicated especially\nin the case of shmem\u0027s swap-in.\n\nThis patch cleans it up by using try_charge_swapin and commit_charge_swapin.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "627991a20b3f4d504d20466ab405fe035cb1a20a",
      "tree": "ac1d7e0bc0881cf31c72ab1f830de904d52ef13e",
      "parents": [
        "a3b2d692690aef228e493b1beaafe5364cab3237"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:47 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: remove redundant message at swapon\n\nIt\u0027s pointed out that swap_cgroup\u0027s message at swapon() is nonsense.\nBecause\n\n  * It can be calculated very easily if all necessary information is\n    written in Kconfig.\n\n  * It\u0027s not necessary to annoying people at every swapon().\n\nIn other view, now, memory usage per swp_entry is reduced to 2bytes from\n8bytes(64bit) and I think it\u0027s reasonably small.\n\nReported-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": "a3b2d692690aef228e493b1beaafe5364cab3237",
      "tree": "d3ad99c5370462861a1b918b4136e7bd7ad78e52",
      "parents": [
        "3c776e64660028236313f0e54f3a9945764422df"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cgroups: use css id in swap cgroup for saving memory v5\n\nTry to use CSS ID for records in swap_cgroup.  By this, on 64bit machine,\nsize of swap_cgroup goes down to 2 bytes from 8bytes.\n\nThis means, when 2GB of swap is equipped, (assume the page size is 4096bytes)\n\n\tFrom size of swap_cgroup \u003d 2G/4k * 8 \u003d 4Mbytes.\n\tTo   size of swap_cgroup \u003d 2G/4k * 2 \u003d 1Mbytes.\n\nReduction is large.  Of course, there are trade-offs.  This CSS ID will\nadd overhead to swap-in/swap-out/swap-free.\n\nBut in general,\n  - swap is a resource which the user tend to avoid use.\n  - If swap is never used, swap_cgroup area is not used.\n  - Reading traditional manuals, size of swap should be proportional to\n    size of memory. Memory size of machine is increasing now.\n\nI think reducing size of swap_cgroup makes sense.\n\nNote:\n  - ID-\u003eCSS lookup routine has no locks, it\u0027s under RCU-Read-Side.\n  - memcg can be obsolete at rmdir() but not freed while refcnt from\n    swap_cgroup is available.\n\nChangelog v4-\u003ev5:\n - reworked on to memcg-charge-swapcache-to-proper-memcg.patch\nChanglog -\u003ev4:\n - fixed not configured case.\n - deleted unnecessary comments.\n - fixed NULL pointer bug.\n - fixed message in dmesg.\n\n[nishimura@mxp.nes.nec.co.jp: css_tryget can be called twice in !PageCgroupUsed case]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "3c776e64660028236313f0e54f3a9945764422df",
      "tree": "4268ca55283e572ab0e6570cd05030d64048af34",
      "parents": [
        "3918b96e03b2b8dd05889320623f6870e81d35ec"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Thu Apr 02 16:57:43 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "memcg: charge swapcache to proper memcg\n\nmemcg_test.txt says at 4.1:\n\n\tThis swap-in is one of the most complicated work. In do_swap_page(),\n\tfollowing events occur when pte is unchanged.\n\n\t(1) the page (SwapCache) is looked up.\n\t(2) lock_page()\n\t(3) try_charge_swapin()\n\t(4) reuse_swap_page() (may call delete_swap_cache())\n\t(5) commit_charge_swapin()\n\t(6) swap_free().\n\n\tConsidering following situation for example.\n\n\t(A) The page has not been charged before (2) and reuse_swap_page()\n\t    doesn\u0027t call delete_from_swap_cache().\n\t(B) The page has not been charged before (2) and reuse_swap_page()\n\t    calls delete_from_swap_cache().\n\t(C) The page has been charged before (2) and reuse_swap_page() doesn\u0027t\n\t    call delete_from_swap_cache().\n\t(D) The page has been charged before (2) and reuse_swap_page() calls\n\t    delete_from_swap_cache().\n\n\t    memory.usage/memsw.usage changes to this page/swp_entry will be\n\t Case          (A)      (B)       (C)     (D)\n         Event\n       Before (2)     0/ 1     0/ 1      1/ 1    1/ 1\n          \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n          (3)        +1/+1    +1/+1     +1/+1   +1/+1\n          (4)          -       0/ 0       -     -1/ 0\n          (5)         0/-1     0/ 0     -1/-1    0/ 0\n          (6)          -       0/-1       -      0/-1\n          \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n       Result         1/ 1     1/ 1      1/ 1    1/ 1\n\n       In any cases, charges to this page should be 1/ 1.\n\nIn case of (D), mem_cgroup_try_get_from_swapcache() returns NULL\n(because lookup_swap_cgroup() returns NULL), so \"+1/+1\" at (3) means\ncharges to the memcg(\"foo\") to which the \"current\" belongs.\nOTOH, \"-1/0\" at (4) and \"0/-1\" at (6) means uncharges from the memcg(\"baa\")\nto which the page has been charged.\n\nSo, if the \"foo\" and \"baa\" is different(for example because of task move),\nthis charge will be moved from \"baa\" to \"foo\".\n\nI think this is an unexpected behavior.\n\nThis patch fixes this by modifying mem_cgroup_try_get_from_swapcache()\nto return the memcg to which the swapcache has been charged if PCG_USED bit\nis set.\nIIUC, checking PCG_USED bit of swapcache is safe under page lock.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Li Zefan \u003clizf@cn.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": "c137b5ece4b111e46981aae7da77315b9909809f",
      "tree": "99677d3ae0f9016e83f257743ff04d5886a6e998",
      "parents": [
        "e222432bfa7dcf6ec008622a978c9f284ed5e3a9"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: remove mem_cgroup_calc_mapped_ratio()\n\nCurrently, mem_cgroup_calc_mapped_ratio() is unused at all.  it can be\nremoved and KAMEZAWA-san suggested it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e222432bfa7dcf6ec008622a978c9f284ed5e3a9",
      "tree": "b006f569cb66523a5644ad0ef1669b051ccda907",
      "parents": [
        "0b7f569e45bb6be142d87017030669a6a7d327a1"
      ],
      "author": {
        "name": "Balbir Singh",
        "email": "balbir@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:57:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: show memcg information during OOM\n\nAdd RSS and swap to OOM output from memcg\n\nDisplay memcg values like failcnt, usage and limit when an OOM occurs due\nto memcg.\n\nThanks to Johannes Weiner, Li Zefan, David Rientjes, Kamezawa Hiroyuki,\nDaisuke Nishimura and KOSAKI Motohiro for review.\n\nSample output\n-------------\n\nTask in /a/x killed as a result of limit of /a\nmemory: usage 1048576kB, limit 1048576kB, failcnt 4183\nmemory+swap: usage 1400964kB, limit 9007199254740991kB, failcnt 0\n\n[akpm@linux-foundation.org: compilation fix]\n[akpm@linux-foundation.org: fix kerneldoc and whitespace]\n[akpm@linux-foundation.org: add printk facility level]\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\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": "0b7f569e45bb6be142d87017030669a6a7d327a1",
      "tree": "8df7877b95c093ebf4cb4e1006cea16f75fc79b7",
      "parents": [
        "81d39c20f5ee2437d71709beb82597e2a38efbbc"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix OOM killer under memcg\n\nThis patch tries to fix OOM Killer problems caused by hierarchy.\nNow, memcg itself has OOM KILL function (in oom_kill.c) and tries to\nkill a task in memcg.\n\nBut, when hierarchy is used, it\u0027s broken and correct task cannot\nbe killed. For example, in following cgroup\n\n\t/groupA/\thierarchy\u003d1, limit\u003d1G,\n\t\t01\tnolimit\n\t\t02\tnolimit\nAll tasks\u0027 memory usage under /groupA, /groupA/01, groupA/02 is limited to\ngroupA\u0027s 1Gbytes but OOM Killer just kills tasks in groupA.\n\nThis patch provides makes the bad process be selected from all tasks\nunder hierarchy. BTW, currently, oom_jiffies is updated against groupA\nin above case. oom_jiffies of tree should be updated.\n\nTo see how oom_jiffies is used, please check mem_cgroup_oom_called()\ncallers.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: const fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "81d39c20f5ee2437d71709beb82597e2a38efbbc",
      "tree": "56297eb00cfa2bc251b2c5e0e0330becafd39e33",
      "parents": [
        "14067bb3e24b96d92e22d19c18c0119edf5575e5"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix shrinking memory to return -EBUSY by fixing retry algorithm\n\nAs pointed out, shrinking memcg\u0027s limit should return -EBUSY after\nreasonable retries.  This patch tries to fix the current behavior of\nshrink_usage.\n\nBefore looking into \"shrink should return -EBUSY\" problem, we should fix\nhierarchical reclaim code.  It compares current usage and current limit,\nbut it only makes sense when the kernel reclaims memory because hit\nlimits.  This is also a problem.\n\nWhat this patch does are.\n\n  1. add new argument \"shrink\" to hierarchical reclaim. If \"shrink\u003d\u003dtrue\",\n     hierarchical reclaim returns immediately and the caller checks the kernel\n     should shrink more or not.\n     (At shrinking memory, usage is always smaller than limit. So check for\n      usage \u003c limit is useless.)\n\n  2. For adjusting to above change, 2 changes in \"shrink\"\u0027s retry path.\n     2-a. retry_count depends on # of children because the kernel visits\n\t  the children under hierarchy one by one.\n     2-b. rather than checking return value of hierarchical_reclaim\u0027s progress,\n\t  compares usage-before-shrink and usage-after-shrink.\n\t  If usage-before-shrink \u003c\u003d usage-after-shrink, retry_count is\n\t  decremented.\n\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "14067bb3e24b96d92e22d19c18c0119edf5575e5",
      "tree": "54af97e899bf4253b170938f6711097824b7364f",
      "parents": [
        "04046e1a0a34286382e913f8fc461440c21d88e8"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamzawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: hierarchical stat\n\nClean up memory.stat file routine and show \"total\" hierarchical stat.\n\nThis patch does\n  - renamed get_all_zonestat to be get_local_zonestat.\n  - remove old mem_cgroup_stat_desc, which is only for per-cpu stat.\n  - add mcs_stat to cover both of per-cpu/per-lru stat.\n  - add \"total\" stat of hierarchy (*)\n  - add a callback system to scan all memcg under a root.\n\u003d\u003d \"total\" is added.\n[kamezawa@localhost ~]$ cat /opt/cgroup/xxx/memory.stat\ncache 0\nrss 0\npgpgin 0\npgpgout 0\ninactive_anon 0\nactive_anon 0\ninactive_file 0\nactive_file 0\nunevictable 0\nhierarchical_memory_limit 50331648\nhierarchical_memsw_limit 9223372036854775807\ntotal_cache 65536\ntotal_rss 192512\ntotal_pgpgin 218\ntotal_pgpgout 155\ntotal_inactive_anon 0\ntotal_active_anon 135168\ntotal_inactive_file 61440\ntotal_active_file 4096\ntotal_unevictable 0\n\u003d\u003d\n(*) maybe the user can do calc hierarchical stat by his own program\n   in userland but if it can be written in clean way, it\u0027s worth to be\n   shown, I think.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "04046e1a0a34286382e913f8fc461440c21d88e8",
      "tree": "cab2b8a61e7474d509fbd3ea02e38b7c4137ce4b",
      "parents": [
        "b4046f00ee7c1e5615261b496cf7309683275b29"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: use CSS ID\n\nAssigning CSS ID for each memcg and use css_get_next() for scanning hierarchy.\n\n\tAssume folloing tree.\n\n\tgroup_A (ID\u003d3)\n\t\t/01 (ID\u003d4)\n\t\t   /0A (ID\u003d7)\n\t\t/02 (ID\u003d10)\n\tgroup_B (ID\u003d5)\n\tand task in group_A/01/0A hits limit at group_A.\n\n\treclaim will be done in following order (round-robin).\n\tgroup_A(3) -\u003e group_A/01 (4) -\u003e group_A/01/0A (7) -\u003e group_A/02(10)\n\t-\u003e group_A -\u003e .....\n\n\tRound robin by ID. The last visited cgroup is recorded and restart\n\tfrom it when it start reclaim again.\n\t(More smart algorithm can be implemented..)\n\n\tNo cgroup_mutex or hierarchy_mutex is required.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "ec64f51545fffbc4cb968f0cea56341a4b07e85a",
      "tree": "575d890a6759d81f3324fa2a22ca6ab14a41eefc",
      "parents": [
        "38460b48d06440de46b34cb778bd6c4855030754"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroup: fix frequent -EBUSY at rmdir\n\nIn following situation, with memory subsystem,\n\n\t/groupA use_hierarchy\u003d\u003d1\n\t\t/01 some tasks\n\t\t/02 some tasks\n\t\t/03 some tasks\n\t\t/04 empty\n\nWhen tasks under 01/02/03 hit limit on /groupA, hierarchical reclaim\nis triggered and the kernel walks tree under groupA. In this case,\nrmdir /groupA/04 fails with -EBUSY frequently because of temporal\nrefcnt from the kernel.\n\nIn general. cgroup can be rmdir\u0027d if there are no children groups and\nno tasks. Frequent fails of rmdir() is not useful to users.\n(And the reason for -EBUSY is unknown to users.....in most cases)\n\nThis patch tries to modify above behavior, by\n\t- retries if css_refcnt is got by someone.\n\t- add \"return value\" to pre_destroy() and allows subsystem to\n\t  say \"we\u0027re really busy!\"\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.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": "bf6aede712334d7338d5c47a5ee5ba3883c82a61",
      "tree": "153483c5ef1de41f8dd3d233ba46117d0676c303",
      "parents": [
        "e4c2ff1cf2d7fc65d0fc6f88bc98338e0212ad52"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Apr 02 16:56:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:50 2009 -0700"
      },
      "message": "workqueue: add to_delayed_work() helper function\n\nIt is a fairly common operation to have a pointer to a work and to need a\npointer to the delayed work it is contained in.  In particular, all\ndelayed works which want to rearm themselves will have to do that.  So it\nwould seem fair to offer a helper function for this operation.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "58984ce21d315b70df1a43644df7416ea7c9bfd8",
      "tree": "7a434bbd8866ba762e143582020e8537f27cdce0",
      "parents": [
        "417b43d4b728619e9bcc2da4fa246a6350d46667"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Thu Apr 02 16:56:42 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:49 2009 -0700"
      },
      "message": "mm: do_xip_mapping_read: fix length calculation\n\nThe calculation of the value nr in do_xip_mapping_read is incorrect.  If\nthe copy required more than one iteration in the do while loop the copies\nvariable will be non-zero.  The maximum length that may be passed to the\ncall to copy_to_user(buf+copied, xip_mem+offset, nr) is len-copied but the\ncheck only compares against (nr \u003e len).\n\nThis bug is the cause for the heap corruption Carsten has been chasing\nfor so long:\n\n*** glibc detected *** /bin/bash: free(): invalid next size (normal): 0x00000000800e39f0 ***\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d Backtrace: \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n/lib64/libc.so.6[0x200000b9b44]\n/lib64/libc.so.6(cfree+0x8e)[0x200000bdade]\n/bin/bash(free_buffered_stream+0x32)[0x80050e4e]\n/bin/bash(close_buffered_stream+0x1c)[0x80050ea4]\n/bin/bash(unset_bash_input+0x2a)[0x8001c366]\n/bin/bash(make_child+0x1d4)[0x8004115c]\n/bin/bash[0x8002fc3c]\n/bin/bash(execute_command_internal+0x656)[0x8003048e]\n/bin/bash(execute_command+0x5e)[0x80031e1e]\n/bin/bash(execute_command_internal+0x79a)[0x800305d2]\n/bin/bash(execute_command+0x5e)[0x80031e1e]\n/bin/bash(reader_loop+0x270)[0x8001efe0]\n/bin/bash(main+0x1328)[0x8001e960]\n/lib64/libc.so.6(__libc_start_main+0x100)[0x200000592a8]\n/bin/bash(clearerr+0x5e)[0x8001c092]\n\nWith this bug fix the commit 0e4a9b59282914fe057ab17027f55123964bc2e2\n\"ext2/xip: refuse to change xip flag during remount with busy inodes\" can\nbe removed again.\n\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jared Hulbert \u003cjaredeh@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.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": "98f4ebb290a7dca8c48f27ec1d2cab8fa7982dad",
      "tree": "4bad1464ee372de6789e95cb18b56ce54dd3ef27",
      "parents": [
        "d2caa3c549c74d6476e2c29e13bd4d0e7d21c7fe"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Thu Apr 02 16:56:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "mm: align vmstat_work\u0027s timer\n\nEven though vmstat_work is marked deferrable, there are still benefits to\naligning it.  For certain applications we want to keep OS jitter as low as\npossible and aligning timers and work so they occur together can reduce\ntheir overall impact.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33e5d76979cf01e3834814fe0aea569d1d602c1a",
      "tree": "58a03e5da59db203245da10db144a4f6f61a83ba",
      "parents": [
        "5482415a5ecc0cd791a5d885cc3db8281401078f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 02 16:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "nommu: fix a number of issues with the per-MM VMA patch\n\nFix a number of issues with the per-MM VMA patch:\n\n (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on\n     a NOMMU system with more than 2G pages.  Makes no difference on a 32-bit\n     system.\n\n (2) Report vma-\u003evm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,\n     lest it overflow.\n\n (3) Move the allocation of the vm_area_struct slab back for fork.c.\n\n (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.\n\n (5) Use BUG_ON() rather than if () BUG().\n\n (6) Make the default validate_nommu_regions() a static inline rather than a\n     #define.\n\n (7) Make free_page_series()\u0027s objection to pages with a refcount !\u003d 1 more\n     informative.\n\n (8) Adjust the __put_nommu_region() banner comment to indicate that the\n     semaphore must be held for writing.\n\n (9) Limit the number of warnings about munmaps of non-mmapped regions.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee3b4290aec03022cfb67c9adba9f1b3215245f0",
      "tree": "37130f5de4d5ccd2be4902dc3dec9ec6a371c2ed",
      "parents": [
        "833bb3046b6cb320e775ea2160ddca87d53260d5"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Thu Apr 02 16:56:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "generic debug pagealloc: build fix\n\nThis fixes a build failure with generic debug pagealloc:\n\n  mm/debug-pagealloc.c: In function \u0027set_page_poison\u0027:\n  mm/debug-pagealloc.c:8: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: In function \u0027clear_page_poison\u0027:\n  mm/debug-pagealloc.c:13: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: In function \u0027page_poison\u0027:\n  mm/debug-pagealloc.c:18: error: \u0027struct page\u0027 has no member named \u0027debug_flags\u0027\n  mm/debug-pagealloc.c: At top level:\n  mm/debug-pagealloc.c:120: error: redefinition of \u0027kernel_map_pages\u0027\n  include/linux/mm.h:1278: error: previous definition of \u0027kernel_map_pages\u0027 was here\n  mm/debug-pagealloc.c: In function \u0027kernel_map_pages\u0027:\n  mm/debug-pagealloc.c:122: error: \u0027debug_pagealloc_enabled\u0027 undeclared (first use in this function)\n\nby fixing\n\n - debug_flags should be in struct page\n - define DEBUG_PAGEALLOC config option for all architectures\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nReported-by: Alexander Beregalov \u003ca.beregalov@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9fab5619bdd7f84cdd22cc760778f759f9819a33",
      "tree": "4a7010f3ba43896c266032f8b287d6bd55b72c85",
      "parents": [
        "327c0e968645f2601a43f5ea7c19c7b3a5fa0a34"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Mar 31 15:23:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "shmem: writepage directly to swap\n\nSynopsis: if shmem_writepage calls swap_writepage directly, most shmem\nswap loads benefit, and a catastrophic interaction between SLUB and some\nflash storage is avoided.\n\nshmem_writepage() has always been peculiar in making no attempt to write:\nit has just transferred a shmem page from file cache to swap cache, then\nlet that page make its way around the LRU again before being written and\nfreed.\n\nThe idea was that people use tmpfs because they want those pages to stay\nin RAM; so although we give it an overflow to swap, we should resist\nwriting too soon, giving those pages a second chance before they can be\nreclaimed.\n\nThat was always questionable, and I\u0027ve toyed with this patch for years;\nbut never had a clear justification to depart from the original design.\n\nIt became more questionable in 2.6.28, when the split LRU patches classed\nshmem and tmpfs pages as SwapBacked rather than as file_cache: that in\nitself gives them more resistance to reclaim than normal file pages.  I\nprepared this patch for 2.6.29, but the merge window arrived before I\u0027d\ncompleted gathering statistics to justify sending it in.\n\nThen while comparing SLQB against SLUB, running SLUB on a laptop I\u0027d\nhabitually used with SLAB, I found SLUB to run my tmpfs kbuild swapping\ntests five times slower than SLAB or SLQB - other machines slower too, but\nnowhere near so bad.  Simpler \"cp -a\" swapping tests showed the same.\n\nslub_max_order\u003d0 brings sanity to all, but heavy swapping is too far from\nnormal to justify such a tuning.  The crucial factor on that laptop turns\nout to be that I\u0027m using an SD card for swap.  What happens is this:\n\nBy default, SLUB uses order-2 pages for shmem_inode_cache (and many other\nfs inodes), so creating tmpfs files under memory pressure brings lumpy\nreclaim into play.  One subpage of the order is chosen from the bottom of\nthe LRU as usual, then the other three picked out from their random\npositions on the LRUs.\n\nIn a tmpfs load, many of these pages will be ones which already passed\nthrough shmem_writepage, so already have swap allocated.  And though their\noffsets on swap were probably allocated sequentially, now that the pages\nare picked off at random, their swap offsets are scattered.\n\nBut the flash storage on the SD card is very sensitive to having its\nwrites merged: once swap is written at scattered offsets, performance\nfalls apart.  Rotating disk seeks increase too, but less disastrously.\n\nSo: stop giving shmem/tmpfs pages a second pass around the LRU, write them\nout to swap as soon as their swap has been allocated.\n\nIt\u0027s surely possible to devise an artificial load which runs faster the\nold way, one whose sizing is such that the tmpfs pages on their second\npass are the ones that are wanted again, and other pages not.\n\nBut I\u0027ve not yet found such a load: on all machines, under the loads I\u0027ve\ntried, immediate swap_writepage speeds up shmem swapping: especially when\nusing the SLUB allocator (and more effectively than slub_max_order\u003d0), but\nalso with the others; and it also reduces the variance between runs.  How\nmuch faster varies widely: a factor of five is rare, 5% is common.\n\nOne load which might have suffered: imagine a swapping shmem load in a\nlimited mem_cgroup on a machine with plenty of memory.  Before 2.6.29 the\nswapcache was not charged, and such a load would have run quickest with\nthe shmem swapcache never written to swap.  But now swapcache is charged,\nso even this load benefits from shmem_writepage directly to swap.\n\nApologies for the #ifndef CONFIG_SWAP swap_writepage() stub in swap.h:\nit\u0027s silly because that will never get called; but refactoring shmem.c\nsensibly according to CONFIG_SWAP will be a separate task.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: 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": "327c0e968645f2601a43f5ea7c19c7b3a5fa0a34",
      "tree": "acc6789c120a6d5000ceebf51e690d14c6cfcacb",
      "parents": [
        "2678958e1225f350806d90f211a3b475f64aee80"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 31 15:23:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "vmscan: fix it to take care of nodemask\n\ntry_to_free_pages() is used for the direct reclaim of up to\nSWAP_CLUSTER_MAX pages when watermarks are low.  The caller to\nalloc_pages_nodemask() can specify a nodemask of nodes that are allowed to\nbe used but this is not passed to try_to_free_pages().  This can lead to\nunnecessary reclaim of pages that are unusable by the caller and int the\nworst case lead to allocation failure as progress was not been make where\nit is needed.\n\nThis patch passes the nodemask used for alloc_pages_nodemask() to\ntry_to_free_pages().\n\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "88c3bd707c2552bcef93cc3724647903aece159d",
      "tree": "68c104f559854b1f5fea01ed8568584e535ac597",
      "parents": [
        "71aa653c6bfa6743d838342105ebc067145394e4"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Tue Mar 31 15:23:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "vmscan: print shrink_slab symbol name on negative shrinker objects\n\nWhen a shrinker has a negative number of objects to delete, the symbol\nname of the shrinker should be printed, not shrink_slab.  This also makes\nthe error message slightly more informative.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "71aa653c6bfa6743d838342105ebc067145394e4",
      "tree": "9e5cadbcc897301cf3af2ebe45d44d574274a054",
      "parents": [
        "33925b25d2c00a29664f1994ab350a9bff70f7a2"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Mar 31 15:23:28 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:15 2009 -0700"
      },
      "message": "nommu: make CONFIG_UNEVICTABLE_LRU available when CONFIG_MMU\u003dn\n\nMake CONFIG_UNEVICTABLE_LRU available when CONFIG_MMU\u003dn.  There\u0027s no logical\nreason it shouldn\u0027t be available, and it can be used for ramfs.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Enrik Berkhan \u003cEnrik.Berkhan@ge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33925b25d2c00a29664f1994ab350a9bff70f7a2",
      "tree": "fe1a0ef5cceba27664eae8f38f9e4e2a27bf1b36",
      "parents": [
        "7ca43e7564679604d86e9ed834e7bbcffd8a4a3f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Mar 31 15:23:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "nommu: there is no mlock() for NOMMU, so don\u0027t provide the bits\n\nThe mlock() facility does not exist for NOMMU since all mappings are\neffectively locked anyway, so we don\u0027t make the bits available when\nthey\u0027re not useful.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Enrik Berkhan \u003cEnrik.Berkhan@ge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f4112de6b679d84bd9b9681c7504be7bdfb7c7d5",
      "tree": "c9a5665b31e751e1d4255b8c35a6245d5abfa3eb",
      "parents": [
        "851a039cc547b33b8139fe6d7c2bbfb158e2724e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 31 15:23:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: introduce debug_kmap_atomic\n\nx86 has debug_kmap_atomic_prot() which is error checking function for\nkmap_atomic.  It is usefull for the other architectures, although it needs\nCONFIG_TRACE_IRQFLAGS_SUPPORT.\n\nThis patch exposes it to the other architectures.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@vger.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": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "704503d836042d4a4c7685b7036e7de0418fbc0f",
      "tree": "218bea088f0b286981221e44d5247dab98020d30",
      "parents": [
        "6a11f75b6a17b5d9ac5025f8d048382fd1f47377"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Tue Mar 31 15:23:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: fix proc_dointvec_userhz_jiffies \"breakage\"\n\nAddresses http://bugzilla.kernel.org/show_bug.cgi?id\u003d9838\n\nOn i386, HZ\u003d1000, jiffies_to_clock_t() converts time in a somewhat strange\nway from the user\u0027s point of view:\n\n\t# echo 500 \u003e/proc/sys/vm/dirty_writeback_centisecs\n\t# cat /proc/sys/vm/dirty_writeback_centisecs\n\t499\n\nSo, we have 5000 jiffies converted to only 499 clock ticks and reported\nback.\n\nTICK_NSEC \u003d 999848\nACTHZ \u003d 256039\n\nKeeping in-kernel variable in units passed from userspace will fix issue\nof course, but this probably won\u0027t be right for every sysctl.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6a11f75b6a17b5d9ac5025f8d048382fd1f47377",
      "tree": "a3415cd897823975b927f89a233d2703bf97ba2b",
      "parents": [
        "610a77e04a8d9fe8764dc484e2182fa251ce1cc2"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Tue Mar 31 15:23:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "generic debug pagealloc\n\nCONFIG_DEBUG_PAGEALLOC is now supported by x86, powerpc, sparc64, and\ns390.  This patch implements it for the rest of the architectures by\nfilling the pages with poison byte patterns after free_pages() and\nverifying the poison patterns before alloc_pages().\n\nThis generic one cannot detect invalid page accesses immediately but\ninvalid read access may cause invalid dereference by poisoned memory and\ninvalid write access can be detected after a long delay.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: \u003clinux-arch@vger.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": "610a77e04a8d9fe8764dc484e2182fa251ce1cc2",
      "tree": "ec55b9b3698321c3e85cd649fa927554027c75d0",
      "parents": [
        "e2f17d9459aeccf4e013e31cbd741d6b1858eec4"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Tue Mar 31 15:23:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "memdup_user(): introduce\n\nI notice there are many places doing copy_from_user() which follows\nkmalloc():\n\n        dst \u003d kmalloc(len, GFP_KERNEL);\n        if (!dst)\n                return -ENOMEM;\n        if (copy_from_user(dst, src, len)) {\n\t\tkfree(dst);\n\t\treturn -EFAULT\n\t}\n\nmemdup_user() is a wrapper of the above code.  With this new function, we\ndon\u0027t have to write \u0027len\u0027 twice, which can lead to typos/mistakes.  It\nalso produces smaller code and kernel text.\n\nA quick grep shows 250+ places where memdup_user() *may* be used.  I\u0027ll\nprepare a patchset to do this conversion.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Americo Wang \u003cxiyou.wangcong@gmail.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e2f17d9459aeccf4e013e31cbd741d6b1858eec4",
      "tree": "919fb245d700a04d253247e19db0b084454b20cc",
      "parents": [
        "d1d7487173eab8352125cf6cc271940f24254bd4"
      ],
      "author": {
        "name": "Roel Kluin",
        "email": "roel.kluin@gmail.com",
        "time": "Tue Mar 31 15:23:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "hugetlb: chg cannot become less than 0\n\nchg is unsigned, so it cannot be less than 0.\n\nAlso, since region_chg returns long, let vma_needs_reservation() forward\nthis to alloc_huge_page().  Store it as long as well.  all callers cast it\nto long anyway.\n\nSigned-off-by: Roel Kluin \u003croel.kluin@gmail.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Johannes Weiner \u003channes@saeurebad.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d1d7487173eab8352125cf6cc271940f24254bd4",
      "tree": "07de142c03385f05beac342ee1c4b93b236445c5",
      "parents": [
        "ad1c3544d0a85da7738ce8cff6f8a148da57935c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:23:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: remove pagevec_swap_free()\n\npagevec_swap_free() is now unused.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-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": "ad1c3544d0a85da7738ce8cff6f8a148da57935c",
      "tree": "f1ac66e22e172945f200f1b2fd9a2ece23a0880b",
      "parents": [
        "2443462b0a04ef0f82ad48f4fd0ef4ac5b24c4b7"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:23:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: don\u0027t free swap slots on page deactivation\n\nThe pagevec_swap_free() at the end of shrink_active_list() was introduced\nin 68a22394 \"vmscan: free swap space on swap-in/activation\" when\nshrink_active_list() was still rotating referenced active pages.\n\nIn 7e9cd48 \"vmscan: fix pagecache reclaim referenced bit check\" this was\nchanged, the rotating removed but the pagevec_swap_free() after the\nrotation loop was forgotten, applying now to the pagevec of the\ndeactivation loop instead.\n\nNow swap space is freed for deactivated pages.  And only for those that\nhappen to be on the pagevec after the deactivation loop.\n\nComplete 7e9cd48 and remove the rest of the swap freeing.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.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": "2443462b0a04ef0f82ad48f4fd0ef4ac5b24c4b7",
      "tree": "3be4cdc338bf004f7b8c6c70baf7fb78ad252844",
      "parents": [
        "2584e517320bd48dc8d20e38a2621a2dbe58fade"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:23:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:13 2009 -0700"
      },
      "message": "mm: move pagevec stripping to save unlock-relock\n\nIn shrink_active_list() after the deactivation loop, we strip buffer heads\nfrom the potentially remaining pages in the pagevec.\n\nCurrently, this drops the zone\u0027s lru lock for stripping, only to reacquire\nit again afterwards to update statistics.\n\nIt is not necessary to strip the pages before updating the stats, so move\nthe whole thing out of the protected region and save the extra locking.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3a7cca1ef4c1af9b0acef9bd66eff6582a737b5",
      "tree": "717097ec82ce0de55e44b2fe3e35fa041e5169b2",
      "parents": [
        "bd2f6199cf9af472aeefa1b642c9f504f19e6008"
      ],
      "author": {
        "name": "Edward Shishkin",
        "email": "edward.shishkin@gmail.com",
        "time": "Tue Mar 31 15:19:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "vfs: add/use account_page_dirtied()\n\nAdd a helper function account_page_dirtied().  Use that from two\ncallsites.  reiser4 adds a function which adds a third callsite.\n\nSigned-off-by: Edward Shishkin\u003cedward.shishkin@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd2f6199cf9af472aeefa1b642c9f504f19e6008",
      "tree": "ba8cd5e7d940bcac161e28872998f86a2910362b",
      "parents": [
        "bd775c42ea5f7c766d03a287083837cf05e7e738"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:19:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "vmscan: respect higher order in zone_reclaim()\n\nDuring page allocation, there are two stages of direct reclaim that are\napplied to each zone in the preferred list.  The first stage using\nzone_reclaim() reclaims unmapped file backed pages and slab pages if over\ndefined limits as these are cheaper to reclaim.  The caller specifies the\norder of the target allocation but the scan control is not being correctly\ninitialised.\n\nThe impact is that the correct number of pages are being reclaimed but\nthat lumpy reclaim is not being applied.  This increases the chances of a\nfull direct reclaim via try_to_free_pages() is required.\n\nThis patch initialises the order field of the scan control as requested by\nthe caller.\n\n[mel@csn.ul.ie: rewrote changelog]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.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": "bd775c42ea5f7c766d03a287083837cf05e7e738",
      "tree": "40084f399068bed56c3061afd5e1175c679160df",
      "parents": [
        "9786bf841da57fac3457a1dac41acb4c1f2eced6"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:19:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "mm: add comment why mark_page_accessed() would be better than pte_mkyoung() in follow_page()\n\nAt first look, mark_page_accessed() in follow_page() seems a bit strange.\nIt seems pte_mkyoung() would be better consistent with other kernel code.\n\nHowever, it is intentional. The commit log said:\n\n    ------------------------------------------------\n    commit 9e45f61d69be9024a2e6bef3831fb04d90fac7a8\n    Author: akpm \u003cakpm\u003e\n    Date:   Fri Aug 15 07:24:59 2003 +0000\n\n    [PATCH] Use mark_page_accessed() in follow_page()\n\n    Touching a page via follow_page() counts as a reference so we should be\n    either setting the referenced bit in the pte or running mark_page_accessed().\n\n    Altering the pte is tricky because we haven\u0027t implemented an atomic\n    pte_mkyoung().  And mark_page_accessed() is better anyway because it has more\n    aging state: it can move the page onto the active list.\n\n    BKrev: 3f3c8acbplT8FbwBVGtth7QmnqWkIw\n    ------------------------------------------------\n\nThe atomic issue is still true nowadays. adding comment help to understand\ncode intention and it would be better.\n\n[akpm@linux-foundation.org: clarify text]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9786bf841da57fac3457a1dac41acb4c1f2eced6",
      "tree": "763cb1dd3f6a3c4faf1c31b44ad2e7bef0d206d2",
      "parents": [
        "d979677c4c02f0a72db5a03ecd8184bd9d6695c8"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:19:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "vmscan: clip swap_cluster_max in shrink_all_memory()\n\nshrink_inactive_list() scans in sc-\u003eswap_cluster_max chunks until it hits\nthe scan limit it was passed.\n\nshrink_inactive_list()\n{\n\tdo {\n\t\tisolate_pages(swap_cluster_max)\n\t\tshrink_page_list()\n\t} while (nr_scanned \u003c max_scan);\n}\n\nThis assumes that swap_cluster_max is not bigger than the scan limit\nbecause the latter is checked only after at least one iteration.\n\nIn shrink_all_memory() sc-\u003eswap_cluster_max is initialized to the overall\nreclaim goal in the beginning but not decreased while reclaim is making\nprogress which leads to subsequent calls to shrink_inactive_list()\nreclaiming way too much in the one iteration that is done unconditionally.\n\nSet sc-\u003eswap_cluster_max always to the proper goal before doing\n  shrink_all_zones()\n    shrink_list()\n      shrink_inactive_list().\n\nWhile the current shrink_all_memory() happily reclaims more than actually\nrequested, this patch fixes it to never exceed the goal:\n\nunpatched\n   wanted\u003d10000 reclaimed\u003d13356\n   wanted\u003d10000 reclaimed\u003d19711\n   wanted\u003d10000 reclaimed\u003d10289\n   wanted\u003d10000 reclaimed\u003d17306\n   wanted\u003d10000 reclaimed\u003d10700\n   wanted\u003d10000 reclaimed\u003d10004\n   wanted\u003d10000 reclaimed\u003d13301\n   wanted\u003d10000 reclaimed\u003d10976\n   wanted\u003d10000 reclaimed\u003d10605\n   wanted\u003d10000 reclaimed\u003d10088\n   wanted\u003d10000 reclaimed\u003d15000\n\npatched\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d9599\n   wanted\u003d10000 reclaimed\u003d8476\n   wanted\u003d10000 reclaimed\u003d8326\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d9919\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d9624\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d10000 reclaimed\u003d10000\n   wanted\u003d8500 reclaimed\u003d8092\n   wanted\u003d316 reclaimed\u003d316\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Nigel Cunningham \u003cncunningham@crca.org.au\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.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": "d979677c4c02f0a72db5a03ecd8184bd9d6695c8",
      "tree": "370c936bb17210db0db80df0e9b488c6ee5c11a1",
      "parents": [
        "0a0dd05dd7e1a800241888cbf515bf8d3dc2e59c"
      ],
      "author": {
        "name": "MinChan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 31 15:19:34 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "mm: shrink_all_memory(): use sc.nr_reclaimed\n\nCommit a79311c14eae4bb946a97af25f3e1b17d625985d \"vmscan: bail out of\ndirect reclaim after swap_cluster_max pages\" moved the nr_reclaimed\ncounter into the scan control to accumulate the number of all reclaimed\npages in a reclaim invocation.\n\nshrink_all_memory() can use the same mechanism. it increase code\nconsistency and redability.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\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": "0a0dd05dd7e1a800241888cbf515bf8d3dc2e59c",
      "tree": "1b6a4bb52465330fd106eb810f25bb631deed6c6",
      "parents": [
        "ee99c71c59f897436ec65debb99372b3146f9985"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:19:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "mm: don\u0027t call mark_page_accessed() in do_swap_page()\n\ncommit bf3f3bc5e734706730c12a323f9b2068052aa1f0 (mm: don\u0027t\nmark_page_accessed in fault path) only remove the mark_page_accessed() in\nfilemap_fault().\n\nTherefore, swap-backed pages and file-backed pages have inconsistent\nbehavior.  mark_page_accessed() should be removed from do_swap_page().\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.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": "ee99c71c59f897436ec65debb99372b3146f9985",
      "tree": "051f1c43b7c7658689d4b2c23b3d8585d6464a89",
      "parents": [
        "a6dc60f8975ad96d162915e07703a4439c80dcf0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Mar 31 15:19:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "mm: introduce for_each_populated_zone() macro\n\nImpact: cleanup\n\nIn almost cases, for_each_zone() is used with populated_zone().  It\u0027s\nbecause almost function doesn\u0027t need memoryless node information.\nTherefore, for_each_populated_zone() can help to make code simplify.\n\nThis patch has no functional change.\n\n[akpm@linux-foundation.org: small cleanup]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6dc60f8975ad96d162915e07703a4439c80dcf0",
      "tree": "b28cae1e69e85e87d6991dbbb199bfe73fb433af",
      "parents": [
        "9de1581e75ba9d7979766d4ab6d56f0f2d87f7c6"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Mar 31 15:19:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "vmscan: rename sc.may_swap to may_unmap\n\nsc.may_swap does not only influence reclaiming of anon pages but pages\nmapped into pagetables in general, which also includes mapped file pages.\n\nIn shrink_page_list():\n\n\t\tif (!sc-\u003emay_swap \u0026\u0026 page_mapped(page))\n\t\t\tgoto keep_locked;\n\nFor anon pages, this makes sense as they are always mapped and reclaiming\nthem always requires swapping.\n\nBut mapped file pages are skipped here as well and it has nothing to do\nwith swapping.\n\nThe real effect of the knob is whether mapped pages are unmapped and\nreclaimed or not.  Rename it to `may_unmap\u0027 to have its name match its\nactual meaning more precisely.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.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": "a12888f772dab4bf5e6f73668dc4f5f6026a7014",
      "tree": "6a6113899ff39e58993280bb831a813a43a8e1e1",
      "parents": [
        "d086817dc0d42f1be8db4138233d33e1dd16a956"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Mar 31 15:19:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "oom_kill: don\u0027t call for int_sqrt(0)\n\nThere is no need to call for int_sqrt if argument is 0.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-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": "d086817dc0d42f1be8db4138233d33e1dd16a956",
      "tree": "de5dfc0e262b78e625d88309b0ab5c8f94ed8320",
      "parents": [
        "ef161a9863b045909142daea9490b067997f3dc5"
      ],
      "author": {
        "name": "MinChan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 31 15:19:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "vmap: remove needless lock and list in vmap\n\nvmap\u0027s dirty_list is unused.  It\u0027s for optimizing flushing.  but Nick\ndidn\u0027t write the code yet.  so, we don\u0027t need it until time as it is\nneeded.\n\nThis patch removes vmap_block\u0027s dirty_list and codes related to it.\n\nSigned-off-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef161a9863b045909142daea9490b067997f3dc5",
      "tree": "2cf6aa8a617110c7680978b8aaceea87ec6d2a3d",
      "parents": [
        "0f043a81ebe84be3576667f04fdda481609e3816"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Tue Mar 31 15:19:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:11 2009 -0700"
      },
      "message": "mm: mminit_validate_memmodel_limits(): remove redundant test\n\nIn case if start_pfn overlap the upper bound no need to test end_pfn again\nsince we have it already trimmed.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: 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": "d17abcd5417d84cfa8a225160481203a37dc81d4",
      "tree": "74ce2c425c5c6550acec90bc92c8a3f735f0d257",
      "parents": [
        "db6f204019380c788f1de06ee937bdbccd60e5c0",
        "bb75efddeaca89f8a67fd82cdcbaaf436cf17ca9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 18:00:26 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask:\n  oprofile: Thou shalt not call __exit functions from __init functions\n  cpumask: remove the now-obsoleted pcibus_to_cpumask(): generic\n  cpumask: remove cpumask_t from core\n  cpumask: convert rcutorture.c\n  cpumask: use new cpumask_ functions in core code.\n  cpumask: remove references to struct irqaction\u0027s mask field.\n  cpumask: use mm_cpumask() wrapper: kernel/fork.c\n  cpumask: use set_cpu_active in init/main.c\n  cpumask: remove node_to_first_cpu\n  cpumask: fix seq_bitmap_*() functions.\n  cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n"
    },
    {
      "commit": "c4e1aa67ed9e4e542a064bc271ddbf152b677e91",
      "tree": "2a2ca00bed0fc22b4eb83db092c9178868d8f76b",
      "parents": [
        "cf2f7d7c90279cdbc12429de278f3d27ac2050ae",
        "2f8501815256af8498904e68bd0984b1afffd6f8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 17:17:35 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (33 commits)\n  lockdep: fix deadlock in lockdep_trace_alloc\n  lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n  lockdep: annotate reclaim context (__GFP_NOFS), fix\n  lockdep: build fix for !PROVE_LOCKING\n  lockstat: warn about disabled lock debugging\n  lockdep: use stringify.h\n  lockdep: simplify check_prev_add_irq()\n  lockdep: get_user_chars() redo\n  lockdep: simplify get_user_chars()\n  lockdep: add comments to mark_lock_irq()\n  lockdep: remove macro usage from mark_held_locks()\n  lockdep: fully reduce mark_lock_irq()\n  lockdep: merge the !_READ mark_lock_irq() helpers\n  lockdep: merge the _READ mark_lock_irq() helpers\n  lockdep: simplify mark_lock_irq() helpers #3\n  lockdep: further simplify mark_lock_irq() helpers\n  lockdep: simplify the mark_lock_irq() helpers\n  lockdep: split up mark_lock_irq()\n  lockdep: generate usage strings\n  lockdep: generate the state bit definitions\n  ...\n"
    },
    {
      "commit": "19cefdffbfe0f7e280f21e80875937e8700e99e2",
      "tree": "7a82d84609af22469d3f96d371d14b7dcf65d1f2",
      "parents": [
        "6700ec65c207068a81a535e9dca616fefac21671"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 15 06:03:11 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 30 22:59:44 2009 +0200"
      },
      "message": "lockdep: annotate reclaim context (__GFP_NOFS), fix SLOB\n\nImpact: build fix\n\nfix typo in mm/slob.c:\n\n mm/slob.c:469: error: ‘flags’ undeclared (first use in this function)\n mm/slob.c:469: error: (Each undeclared identifier is reported only once\n mm/slob.c:469: error: for each function it appears in.)\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090128135457.350751756@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "019abbc87025a030fd25008612afd4eff8a375f7",
      "tree": "6d745dedcf90ceff8f5b7b996a17f666b7c574e3",
      "parents": [
        "2d25ee36c84d5b2d6be8bfaf80256ecad69a06ca",
        "5a3c8fe7353f78b73b9636353c6f7b881f19ebea"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 11:38:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 30 11:38:31 2009 -0700"
      },
      "message": "Merge branch \u0027x86-stage-3-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-stage-3-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (190 commits)\n  Revert \"cpuacct: reduce one NULL check in fast-path\"\n  Revert \"x86: don\u0027t compile vsmp_64 for 32bit\"\n  x86: Correct behaviour of irq affinity\n  x86: early_ioremap_init(), use __fix_to_virt(), because we are sure it\u0027s safe\n  x86: use default_cpu_mask_to_apicid for 64bit\n  x86: fix set_extra_move_desc calling\n  x86, PAT, PCI: Change vma prot in pci_mmap to reflect inherited prot\n  x86/dmi: fix dmi_alloc() section mismatches\n  x86: e820 fix various signedness issues in setup.c and e820.c\n  x86: apic/io_apic.c define msi_ir_chip and ir_ioapic_chip all the time\n  x86: irq.c keep CONFIG_X86_LOCAL_APIC interrupts together\n  x86: irq.c use same path for show_interrupts\n  x86: cpu/cpu.h cleanup\n  x86: Fix a couple of sparse warnings in arch/x86/kernel/apic/io_apic.c\n  Revert \"x86: create a non-zero sized bm_pte only when needed\"\n  x86: pci-nommu.c cleanup\n  x86: io_delay.c cleanup\n  x86: rtc.c cleanup\n  x86: i8253 cleanup\n  x86: kdebugfs.c cleanup\n  ...\n"
    },
    {
      "commit": "aa85ea5b89c36c51200d795dd788139bd9b8cf50",
      "tree": "0b68a35b691417d927127376beb0541d96c9cc64",
      "parents": [
        "1a8a51004a18b627ea81444201f7867875212f46"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:15 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:16 2009 +1030"
      },
      "message": "cpumask: use new cpumask_ functions in core code.\n\nImpact: cleanup\n\nTime to clean up remaining laggards using the old cpu_ functions.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Trond.Myklebust@netapp.com\n"
    },
    {
      "commit": "1a2142afa5646ad5af44bbe1febaa5e0b7e71156",
      "tree": "1c76670c82adb46a7726421ad0fcba2994758964",
      "parents": [
        "0d34fb8e93ceba7b6dad0062dbb4a0813bacd75b"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:10 2009 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Mar 30 22:05:11 2009 +1030"
      },
      "message": "cpumask: remove dangerous CPU_MASK_ALL_PTR, \u0026CPU_MASK_ALL\n\nImpact: cleanup\n\n(Thanks to Al Viro for reminding me of this, via Ingo)\n\nCPU_MASK_ALL is the (deprecated) \"all bits set\" cpumask, defined as so:\n\n\t#define CPU_MASK_ALL (cpumask_t) { { ... } }\n\nTaking the address of such a temporary is questionable at best,\nunfortunately 321a8e9d (cpumask: add CPU_MASK_ALL_PTR macro) added\nCPU_MASK_ALL_PTR:\n\n\t#define CPU_MASK_ALL_PTR (\u0026CPU_MASK_ALL)\n\nWhich formalizes this practice.  One day gcc could bite us over this\nusage (though we seem to have gotten away with it so far).\n\nSo replace everywhere which used \u0026CPU_MASK_ALL or CPU_MASK_ALL_PTR\nwith the modern \"cpu_all_mask\" (a real const struct cpumask *).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nReported-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Mike Travis \u003ctravis@sgi.com\u003e\n"
    },
    {
      "commit": "3fab191002b184e4390aa07c7149c6cc7b638ec7",
      "tree": "821382d49e47c19531bfc3bb9e1f8922486374d4",
      "parents": [
        "93394a761d78503f11d05b1a7b23d5a9ccc8dad2",
        "7c730ccdc1188b97f5c8cb690906242c7ed75c22"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 28 22:27:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 28 22:27:45 2009 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/core\n"
    },
    {
      "commit": "0fe41b8982001cd14ee2c77cd776735a5024e98b",
      "tree": "83e65d595c413d55259ea14fb97748ce5efe5707",
      "parents": [
        "eedf2c5296a8dfaaf9aec1a938c1d3bd73159a30",
        "9759d22c8348343b0da4e25d6150c41712686c14"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 14:03:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 28 14:03:14 2009 -0700"
      },
      "message": "Merge branch \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm\n\n* \u0027devel\u0027 of master.kernel.org:/home/rmk/linux-2.6-arm: (422 commits)\n  [ARM] 5435/1: fix compile warning in sanity_check_meminfo()\n  [ARM] 5434/1: ARM: OMAP: Fix mailbox compile for 24xx\n  [ARM] pxa: fix the bad assumption that PCMCIA sockets always start with 0\n  [ARM] pxa: fix Colibri PXA300 and PXA320 LCD backlight pins\n  imxfb: Fix TFT mode\n  i.MX21/27: remove ifdef CONFIG_FB_IMX\n  imxfb: add clock support\n  mxc: add arch_reset() function\n  clkdev: add possibility to get a clock based on the device name\n  i.MX1: remove fb support from mach-imx\n  [ARM] pxa: build arch/arm/plat-pxa/mfp.c only when PXA3xx or ARCH_MMP defined\n  Gemini: Add support for Teltonika RUT100\n  Gemini: gpiolib based GPIO support v2\n  MAINTAINERS: add myself as Gemini architecture maintainer\n  ARM: Add Gemini architecture v3\n  [ARM] OMAP: Fix compile for omap2_init_common_hw()\n  MAINTAINERS: Add myself as Faraday ARM core variant maintainer\n  ARM: Add support for FA526 v2\n  [ARM] acorn,ebsa110,footbridge,integrator,sa1100: Convert asm/io.h to linux/io.h\n  [ARM] collie: fix two minor formatting nits\n  ...\n"
    },
    {
      "commit": "ed40d0c472b136682b2fcba05f89762859c7374f",
      "tree": "076b83a26bcd63d6158463735dd34c10bbc591dc",
      "parents": [
        "9e495834e59ca9b29f1a1f63b9f5533bb022ac49",
        "5d80f8e5a9dc9c9a94d4aeaa567e219a808b8a4a"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Sat Mar 28 20:29:51 2009 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Sat Mar 28 20:29:51 2009 +0000"
      },
      "message": "Merge branch \u0027origin\u0027 into devel\n\nConflicts:\n\tsound/soc/pxa/pxa2xx-i2s.c\n"
    },
    {
      "commit": "6e15cf04860074ad032e88c306bea656bbdd0f22",
      "tree": "c346383bb7563e8d66b2f4a502f875b259c34870",
      "parents": [
        "be0ea69674ed95e1e98cb3687a241badc756d228",
        "60db56422043aaa455ac7f858ce23c273220f9d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Mar 26 21:39:17 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 27 17:28:43 2009 +0100"
      },
      "message": "Merge branch \u0027core/percpu\u0027 into percpu-cpumask-x86-for-linus-2\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n\tarch/x86/include/asm/fixmap_64.h\n\tarch/x86/include/asm/setup.h\n\tkernel/irq/handle.c\n\nSemantic merge:\n        arch/x86/include/asm/fixmap.h\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "be0ea69674ed95e1e98cb3687a241badc756d228",
      "tree": "36d0db8fe389d65bbc8c7aa5be0e61b066f9536a",
      "parents": [
        "4496d937a518fde0d0e1980e4ab470cedb4b50cd",
        "15a5b0a4912d98a9615ef457c7bde8d08195a771"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:18:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:18:17 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  slob: fix lockup in slob_free()\n  slub: use get_track()\n  slub: rename calculate_min_partial() to set_min_partial()\n  slub: add min_partial sysfs tunable\n  slub: move min_partial to struct kmem_cache\n  SLUB: Fix default slab order for big object sizes\n  SLUB: Do not pass 8k objects through to the page allocator\n  SLUB: Introduce and use SLUB_MAX_SIZE and SLUB_PAGE_SHIFT constants\n  slob: clean up the code\n  SLUB: Use -\u003eobjsize from struct kmem_cache_cpu in slab_free()\n"
    },
    {
      "commit": "86d9c070175de65890794fa227b68297da6206d8",
      "tree": "1aa4f1d1ecf397bd0d745a67b9d828420a99a8b4",
      "parents": [
        "413e3376485e6cf81f4cf6a4dbc0de0326535093",
        "a2a9537ac0b37a5da6fbe7e1e9cb06c524d2a9c4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:03:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 16:03:04 2009 -0700"
      },
      "message": "Merge branch \u0027for-2.6.30\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.30\u0027 of git://git.kernel.dk/linux-2.6-block:\n  Get rid of pdflush_operation() in emergency sync and remount\n  btrfs: get rid of current_is_pdflush() in btrfs_btree_balance_dirty\n  Move the default_backing_dev_info out of readahead.c and into backing-dev.c\n  block: Repeated lines in switching-sched.txt\n  bsg: Remove bogus check against request_queue-\u003emax_sectors\n  block: WARN in __blk_put_request() for potential bio leak\n  loop: fix circular locking in loop_clr_fd()\n  loop: support barrier writes\n  bsg: add support for tail queuing\n  cpqarray: enable bus mastering\n  block: genhd.h cleanup patch\n  block: add private bio_set for bio integrity allocations\n  block: genhd.h comment needs updating\n  block: get rid of unused blkdev_free_rq() define\n  block: remove various blk_queue_*() setting functions in blk_init_queue_node()\n  cciss: add BUILD_BUG_ON() for catching bad CommandList_struct alignment\n  block: don\u0027t create bio_vec slabs of less than the inline number\n  block: cleanup bio_alloc_bioset()\n"
    },
    {
      "commit": "8d80ce80e1d58ba9cd3e3972b112cccd6b4008f4",
      "tree": "16d3cca8d260c731d02a4e5e1ea5b9817c9c3626",
      "parents": [
        "1646df40bb111715a90ce0b86448dabbcc5b3f3d",
        "703a3cd72817e99201cef84a8a7aecc60b2b3581"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:03:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:03:39 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (71 commits)\n  SELinux: inode_doinit_with_dentry drop no dentry printk\n  SELinux: new permission between tty audit and audit socket\n  SELinux: open perm for sock files\n  smack: fixes for unlabeled host support\n  keys: make procfiles per-user-namespace\n  keys: skip keys from another user namespace\n  keys: consider user namespace in key_permission\n  keys: distinguish per-uid keys in different namespaces\n  integrity: ima iint radix_tree_lookup locking fix\n  TOMOYO: Do not call tomoyo_realpath_init unless registered.\n  integrity: ima scatterlist bug fix\n  smack: fix lots of kernel-doc notation\n  TOMOYO: Don\u0027t create securityfs entries unless registered.\n  TOMOYO: Fix exception policy read failure.\n  SELinux: convert the avc cache hash list to an hlist\n  SELinux: code readability with avc_cache\n  SELinux: remove unused av.decided field\n  SELinux: more careful use of avd in avc_has_perm_noaudit\n  SELinux: remove the unused ae.used\n  SELinux: check seqno when updating an avc_node\n  ...\n"
    },
    {
      "commit": "1b5e62b42b55c509eea04c3c0f25e42c8b35b564",
      "tree": "be5d783ec67610445828e496706f1e02c74671c1",
      "parents": [
        "0a1c01c9477602ee8b44548a9405b2c1d587b5a2"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Mar 23 08:57:38 2009 +0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 26 11:01:11 2009 -0700"
      },
      "message": "writeback: double the dirty thresholds\n\nEnlarge default dirty ratios from 5/10 to 10/20.  This fixes [Bug\n#12809] iozone regression with 2.6.29-rc6.\n\nThe iozone benchmarks are performed on a 1200M file, with 8GB ram.\n\n  iozone -i 0 -i 1 -i 2 -i 3 -i 4 -r 4k -s 64k -s 512m -s 1200m -b tmp.xls\n  iozone -B -r 4k -s 64k -s 512m -s 1200m -b tmp.xls\n\nThe performance regression is triggered by commit 1cf6e7d83bf3(mm: task\ndirty accounting fix), which makes more correct/thorough dirty\naccounting.\n\nThe default 5/10 dirty ratios were picked (a) with the old dirty logic\nand (b) largely at random and (c) designed to be aggressive.  In\nparticular, that (a) means that having fixed some of the dirty\naccounting, maybe the real bug is now that it was always too aggressive,\njust hidden by an accounting issue.\n\nThe enlarged 10/20 dirty ratios are just about enough to fix the regression.\n\n[ We will have to look at how this affects the old fsync() latency issue,\n  but that probably will need independent work.  - Linus ]\n\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReported-by: \"Lin, Ming M\" \u003cming.m.lin@intel.com\u003e\nTested-by: \"Lin, Ming M\" \u003cming.m.lin@intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26160158d3d3df548f4ee046cc6147fe048cfa9c",
      "tree": "19affc0b08f00ac22e8881d6ec73061a8764cc5d",
      "parents": [
        "07e86f405addc6436eb969b8279bb14a6dcacce4"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Mar 17 09:35:06 2009 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Thu Mar 26 11:01:33 2009 +0100"
      },
      "message": "Move the default_backing_dev_info out of readahead.c and into backing-dev.c\n\nIt really makes no sense to have it in readahead.c, so move it where\nit belongs.\n\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "8937b7349ca9e25a02b2a72ccb7fba404ddedc5b",
      "tree": "434ffe23d318f8af55850a26c3431ce8b82ab6f4",
      "parents": [
        "997302259f386bca8fe1db67c50296ca426c438f",
        "ffe7f95bb1a4d1e9ca5d252445dc38476e1a208e"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Wed Mar 25 18:31:35 2009 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Wed Mar 25 18:31:35 2009 +0000"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6 into devel\n"
    },
    {
      "commit": "15a5b0a4912d98a9615ef457c7bde8d08195a771",
      "tree": "8a1b974d95acdc5a5c9cc96b9a5772f6b20bafda",
      "parents": [
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84",
        "6e9ed0cc4b963fde66ab47d9fb19147631e44555",
        "6fb8f424393025674fde7869b59f485d1e352182",
        "c0bdb232b23b51c23e551041510ad6bea5ce5a92",
        "1a00df4a2cc001dd9f45890e690548c24b2fa2d9",
        "e8120ff1ffc51102ead1f4c98a3fd5d26fefc722"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Mar 24 10:25:21 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Tue Mar 24 10:25:21 2009 +0200"
      },
      "message": "Merge branches \u0027topic/slob/cleanups\u0027, \u0027topic/slob/fixes\u0027, \u0027topic/slub/core\u0027, \u0027topic/slub/cleanups\u0027 and \u0027topic/slub/perf\u0027 into for-linus\n"
    },
    {
      "commit": "703a3cd72817e99201cef84a8a7aecc60b2b3581",
      "tree": "3e943755178ff410694722bb031f523136fbc432",
      "parents": [
        "df7f54c012b92ec93d56b68547351dcdf8a163d3",
        "8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Tue Mar 24 10:52:46 2009 +1100"
      },
      "message": "Merge branch \u0027master\u0027 into next\n"
    },
    {
      "commit": "6fb8f424393025674fde7869b59f485d1e352182",
      "tree": "1ba7de5a6c9cba9cf3c3e57b2355b56cb5eb670f",
      "parents": [
        "b578f3fcca1e78624dfb5f358776e63711d7fda2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Mon Mar 16 21:00:28 2009 +1100"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Mar 23 10:40:45 2009 +0200"
      },
      "message": "slob: fix lockup in slob_free()\n\nDon\u0027t hold SLOB lock when freeing the page. Reduces lock hold width. See\nthe following thread for discussion of the bug:\n\n  http://marc.info/?l\u003dlinux-kernel\u0026m\u003d123709983214143\u0026w\u003d2\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "1a00df4a2cc001dd9f45890e690548c24b2fa2d9",
      "tree": "40137bca1657f6a9e9e10ff004d8ec6b3d6b39f2",
      "parents": [
        "6047a007d0f6b7395cd158f3bdda34ab39a48821"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Sat Mar 07 00:36:21 2009 +0900"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Mon Mar 23 09:43:52 2009 +0200"
      },
      "message": "slub: use get_track()\n\nUse get_track() in set_track()\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "705bb9dc72b2464a7e421ee45d5e4a3f206d5c75",
      "tree": "4ca54c86d3661b3a4ae2b63aa9ead20835a422d1",
      "parents": [
        "250981e6e1ef04947eccaa55e8c25ddcaa47a02e",
        "48f4c485c275e9550fa1a1191768689cc3ae0037",
        "f4c3c4cdb1de232ff37cf4339eb2f36c84e20da6",
        "a6b6a14e0c60561f2902b078bd28d0e61defad70",
        "0920dce7d5889634faa336f65833ee44f3b7651e",
        "4e16c888754468a58d4829c2eba2c6aa3a065e2b",
        "be721696cac9d66566d59b205ee573ecb2f7c35b",
        "0a699af8e613a670be50245366fa18cb19ac5172",
        "42854dc0a6320ff36722749acafa0697522d9556",
        "2c74d66624ddbda8101d54d1e184cf9229b378bc",
        "ce4e240c279a31096f74afa6584a62d64a1ba8c8",
        "ee568b25ee9e160b32d1aef73d8b2ee9c05d34db"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 18 13:19:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 18 13:19:49 2009 +0100"
      },
      "message": "Merge branches \u0027x86/cleanups\u0027, \u0027x86/cpu\u0027, \u0027x86/debug\u0027, \u0027x86/mce2\u0027, \u0027x86/mm\u0027, \u0027x86/mtrr\u0027, \u0027x86/setup\u0027, \u0027x86/setup-memory\u0027, \u0027x86/urgent\u0027, \u0027x86/uv\u0027, \u0027x86/x2apic\u0027 and \u0027linus\u0027 into x86/core\n\nConflicts:\n\tarch/parisc/kernel/irq.c\n"
    },
    {
      "commit": "3297e760776af18a26bf30046cbaaae2e730c5c2",
      "tree": "2ccbafb9aade478d6ad351cd6ecb80298f5a7e8a",
      "parents": [
        "3835f6cb645bdb9a58aa6e062fe1d5777f1a9748"
      ],
      "author": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Wed Mar 04 22:49:41 2009 -0500"
      },
      "committer": {
        "name": "Nicolas Pitre",
        "email": "nico@cam.org",
        "time": "Sun Mar 15 21:01:21 2009 -0400"
      },
      "message": "highmem: atomic highmem kmap page pinning\n\nMost ARM machines have a non IO coherent cache, meaning that the\ndma_map_*() set of functions must clean and/or invalidate the affected\nmemory manually before DMA occurs.  And because the majority of those\nmachines have a VIVT cache, the cache maintenance operations must be\nperformed using virtual\naddresses.\n\nWhen a highmem page is kunmap\u0027d, its mapping (and cache) remains in place\nin case it is kmap\u0027d again. However if dma_map_page() is then called with\nsuch a page, some cache maintenance on the remaining mapping must be\nperformed. In that case, page_address(page) is non null and we can use\nthat to synchronize the cache.\n\nIt is unlikely but still possible for kmap() to race and recycle the\nvirtual address obtained above, and use it for another page before some\non-going cache invalidation loop in dma_map_page() is done. In that case,\nthe new mapping could end up with dirty cache lines for another page,\nand the unsuspecting cache invalidation loop in dma_map_page() might\nsimply discard those dirty cache lines resulting in data loss.\n\nFor example, let\u0027s consider this sequence of events:\n\n\t- dma_map_page(..., DMA_FROM_DEVICE) is called on a highmem page.\n\n\t--\u003e\t- vaddr \u003d page_address(page) is non null. In this case\n\t\tit is likely that the page has valid cache lines\n\t\tassociated with vaddr. Remember that the cache is VIVT.\n\n\t\t--\u003e\tfor (i \u003d vaddr; i \u003c vaddr + PAGE_SIZE; i +\u003d 32)\n\t\t\t\tinvalidate_cache_line(i);\n\n\t*** preemption occurs in the middle of the loop above ***\n\n\t- kmap_high() is called for a different page.\n\n\t--\u003e\t- last_pkmap_nr wraps to zero and flush_all_zero_pkmaps()\n\t\t  is called.  The pkmap_count value for the page passed\n\t\t  to dma_map_page() above happens to be 1, so the page\n\t\t  is unmapped.  But prior to that, flush_cache_kmaps()\n\t\t  cleared the cache for it.  So far so good.\n\n\t\t- A fresh pkmap entry is assigned for this kmap request.\n\t\t  The Murphy law says this pkmap entry will eventually\n\t\t  happen to use the same vaddr as the one which used to\n\t\t  belong to the other page being processed by\n\t\t  dma_map_page() in the preempted thread above.\n\n\t- The kmap_high() caller start dirtying the cache using the\n\t  just assigned virtual mapping for its page.\n\n\t*** the first thread is rescheduled ***\n\n\t\t\t- The for(...) loop is resumed, but now cached\n\t\t\t  data belonging to a different physical page is\n\t\t\t  being discarded !\n\nAnd this is not only a preemption issue as ARM can be SMP as well,\nmaking the above scenario just as likely. Hence the need for some kind\nof pkmap page pinning which can be used in any context, primarily for\nthe benefit of dma_map_page() on ARM.\n\nThis provides the necessary interface to cope with the above issue if\nARCH_NEEDS_KMAP_HIGH_GET is defined, otherwise the resulting code is\nunchanged.\n\nSigned-off-by: Nicolas Pitre \u003cnico@marvell.com\u003e\nReviewed-by: MinChan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1d885526f2f3fffacee2ecb541270bd00168adff",
      "tree": "0f87c5d264361fd75c628b4485ef5bf91eb0c95d",
      "parents": [
        "84814d642a4f1f294bd675ab11aae1ca54c6cedb"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Fri Mar 13 13:52:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 14 11:57:22 2009 -0700"
      },
      "message": "vmscan: pgmoved should be cleared after updating recent_rotated\n\npgmoved should be cleared after updating recent_rotated.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@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": "0ca0f16fd17c5d880dd0abbe03595b0c7c5b3c95",
      "tree": "c626c4777255f06f3035719946a3460a9bf6cb3a",
      "parents": [
        "c550033ced484d8d333bc1edc0a482728680e689",
        "7a81d9a7da03d2f27840d659f97ef140d032f609",
        "88200bc28da38bcda1cb1bd218216e83b426d8a8",
        "0f3fa48a7eaf5d1118cfda1650e8c759b2a116e4",
        "91219bcbdcccc1686b0ecce09e28825c93619c07",
        "063402356280a7b262952d6351d21315336f657b",
        "773e673de27297d07d852e7e9bfd1a695cae1da2",
        "5a8ac9d28dae5330c70562c7d7785f5104059c17",
        "16a6791934a1077609482dd6c091aa8b4c39a834",
        "895791dac6946d535991edd11341046f8e85ea77"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 14 16:25:40 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 14 16:25:40 2009 +0100"
      },
      "message": "Merge branches \u0027x86/apic\u0027, \u0027x86/asm\u0027, \u0027x86/cleanups\u0027, \u0027x86/debug\u0027, \u0027x86/kconfig\u0027, \u0027x86/mm\u0027, \u0027x86/ptrace\u0027, \u0027x86/setup\u0027 and \u0027x86/urgent\u0027; commit \u0027v2.6.29-rc8\u0027 into x86/core\n"
    },
    {
      "commit": "895791dac6946d535991edd11341046f8e85ea77",
      "tree": "4ad589460b0d7c039f5d5a42666c6bd572255049",
      "parents": [
        "4bb9c5c02153dfc89a6c73a6f32091413805ad7d"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Mar 13 16:35:44 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 14 09:47:44 2009 +0100"
      },
      "message": "VM, x86, PAT: add a new vm flag to track full pfnmap at mmap\n\nImpact: cleanup\n\nAdd a new vm flag VM_PFN_AT_MMAP to identify a PFNMAP that is\nfully mapped with remap_pfn_range. Patch removes the overloading\nof VM_INSERTPAGE from the earlier patch.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nLKML-Reference: \u003c20090313233543.GA19909@linux-os.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "063402356280a7b262952d6351d21315336f657b",
      "tree": "e6fae7db15d0f4cbb9b9b7aa2b5bc176b4bf60f5",
      "parents": [
        "f9a36fa5413f1b2694841c410a6fdb4666e78f16",
        "a98fe7f3425c6b4e90de16f8da63b0429a8fed08"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 17:08:30 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 17:08:30 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into x86/kconfig\n"
    },
    {
      "commit": "4bb9c5c02153dfc89a6c73a6f32091413805ad7d",
      "tree": "408dee350cab80fbe7884b6640d651ef8ec44601",
      "parents": [
        "6a5c05f002c3e4f24887a5fe8e7df757d339d368"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Mar 12 17:45:27 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 04:28:50 2009 +0100"
      },
      "message": "VM, x86, PAT: Change is_linear_pfn_mapping to not use vm_pgoff\n\nImpact: fix false positive PAT warnings - also fix VirtalBox hang\n\nUse of vma-\u003evm_pgoff to identify the pfnmaps that are fully\nmapped at mmap time is broken. vm_pgoff is set by generic mmap\ncode even for cases where drivers are setting up the mappings\nat the fault time.\n\nThe problem was originally reported here:\n\n http://marc.info/?l\u003dlinux-kernel\u0026m\u003d123383810628583\u0026w\u003d2\n\nChange is_linear_pfn_mapping logic to overload VM_INSERTPAGE\nflag along with VM_PFNMAP to mean full PFNMAP setup at mmap\ntime.\n\nProblem also tracked at:\n\n http://bugzilla.kernel.org/show_bug.cgi?id\u003d12800\n\nReported-by: Thomas Hellstrom \u003cthellstrom@vmware.com\u003e\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha\u003e@intel.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"ebiederm@xmission.com\" \u003cebiederm@xmission.com\u003e\nCc: \u003cstable@kernel.org\u003e # only for 2.6.29.1, not .28\nLKML-Reference: \u003c20090313004527.GA7176@linux-os.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f272b7bc447553410dde691aa31fc531adf9c175",
      "tree": "95bd28ba8cea8471c0f461cfe6a9f2f0c2f00dff",
      "parents": [
        "02d46e07e538c285accb5c000a7db3a97eff1fbf"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Mar 12 14:31:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 12 16:20:24 2009 -0700"
      },
      "message": "memcg: use correct scan number at reclaim\n\nEven when page reclaim is under mem_cgroup, # of scan page is determined by\nstatus of global LRU. Fix that.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "60db56422043aaa455ac7f858ce23c273220f9d9",
      "tree": "1c1184c02cdcaa2264fbb142c532261cef8ff9c8",
      "parents": [
        "66c3a75772247c31feabefb724e082220a1ab060"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 11 14:36:54 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 11 14:36:54 2009 +0900"
      },
      "message": "percpu: fix spurious alignment WARN in legacy SMP percpu allocator\n\nImpact: remove spurious WARN on legacy SMP percpu allocator\n\nCommit f2a8205c4ef1af917d175c36a4097ae5587791c8 incorrectly added too\ntight WARN_ON_ONCE() on alignments for UP and legacy SMP percpu\nallocator.  Commit e317603694bfd17b28a40de9d65e1a4ec12f816e fixed it\nfor UP but legacy SMP allocator was forgotten.  Fix it.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Sachin P. Sant \u003csachinp@in.ibm.com\u003e\n"
    },
    {
      "commit": "66c3a75772247c31feabefb724e082220a1ab060",
      "tree": "5e61a0e44c82474729e81007edc2093d37fffe95",
      "parents": [
        "6074d5b0a319fe8400ff079a3c289406ca024321"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "message": "percpu: generalize embedding first chunk setup helper\n\nImpact: code reorganization\n\nSeparate out embedding first chunk setup helper from x86 embedding\nfirst chunk allocator and put it in mm/percpu.c.  This will be used by\nthe default percpu first chunk allocator and possibly by other archs.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "6074d5b0a319fe8400ff079a3c289406ca024321",
      "tree": "465ad1ae2ba2a35ee2b67772e188f6a1f5ac189d",
      "parents": [
        "e01009833e22dc87075d770554b34d797843ed23"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "message": "percpu: more flexibility for @dyn_size of pcpu_setup_first_chunk()\n\nImpact: cleanup, more flexibility for first chunk init\n\nNon-negative @dyn_size used to be allowed iff @unit_size wasn\u0027t auto.\nThis restriction stemmed from implementation detail and made things a\nbit less intuitive.  This patch allows @dyn_size to be specified\nregardless of @unit_size and swaps the positions of @dyn_size and\n@unit_size so that the parameter order makes more sense (static,\nreserved and dyn sizes followed by enclosing unit_size).\n\nWhile at it, add @unit_size \u003e\u003d PCPU_MIN_UNIT_SIZE sanity check.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "e01009833e22dc87075d770554b34d797843ed23",
      "tree": "63462a60b24fd018c94c51ee882aa8848a7accdf",
      "parents": [
        "19390c4d03688b9940a1836f06b76ec622b9cd6f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 10 16:27:48 2009 +0900"
      },
      "message": "percpu: make x86 addr \u003c-\u003e pcpu ptr conversion macros generic\n\nImpact: generic addr \u003c-\u003e pcpu ptr conversion macros\n\nThere\u0027s nothing arch specific about x86 __addr_to_pcpu_ptr() and\n__pcpu_ptr_to_addr().  With proper __per_cpu_load and __per_cpu_start\ndefined, they\u0027ll do the right thing regardless of actual layout.\n\nMove these macros from arch/x86/include/asm/percpu.h to mm/percpu.c\nand allow archs to override it as necessary.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "ccea34b5d0fbab081496d1860f31acee99fa8a6d",
      "tree": "e7066b5dde0e83a216768569e57cd71cc83fe912",
      "parents": [
        "a56dbddf06b653ef9c04ca3767f260fd31ccebab"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Mar 07 00:44:13 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Mar 07 14:46:35 2009 +0900"
      },
      "message": "percpu: finer grained locking to break deadlock and allow atomic free\n\nImpact: fix deadlock and allow atomic free\n\nPercpu allocation always uses GFP_KERNEL and whole alloc/free paths\nwere protected by single mutex.  All percpu allocations have been from\nGFP_KERNEL-safe context and the original allocator had this assumption\ntoo.  However, by protecting both alloc and free paths with the same\nmutex, the new allocator creates free -\u003e alloc -\u003e GFP_KERNEL\ndependency which the original allocator didn\u0027t have.  This can lead to\ndeadlock if free is called from FS or IO paths.  Also, in general,\nallocators are expected to allow free to be called from atomic\ncontext.\n\nThis patch implements finer grained locking to break the deadlock and\nallow atomic free.  For details, please read the \"Synchronization\nrules\" comment.\n\nWhile at it, also add CONTEXT: to function comments to describe which\ncontext they expect to be called from and what they do to it.\n\nThis problem was reported by Thomas Gleixner and Peter Zijlstra.\n\n  http://thread.gmane.org/gmane.linux.kernel/802384\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\n"
    },
    {
      "commit": "a56dbddf06b653ef9c04ca3767f260fd31ccebab",
      "tree": "803293315a281a88f807fa3506ac5bef0a910ba4",
      "parents": [
        "9f7dcf224bd09ec9ebcbfb383bf2c465e0e0b03d"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Mar 07 00:44:11 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Mar 07 00:44:11 2009 +0900"
      },
      "message": "percpu: move fully free chunk reclamation into a work\n\nImpact: code reorganization for later changes\n\nDo fully free chunk reclamation using a work.  This change is to\nprepare for locking changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "9f7dcf224bd09ec9ebcbfb383bf2c465e0e0b03d",
      "tree": "9e8b07047080fbdb4f4c8f1554d5208570e64fe2",
      "parents": [
        "1880d93b80acc3171850e9df5048bcb26b75c2f5"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Mar 07 00:44:09 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Mar 07 00:44:09 2009 +0900"
      },
      "message": "percpu: move chunk area map extension out of area allocation\n\nImpact: code reorganization for later changes\n\nSeparate out chunk area map extension into a separate function -\npcpu_extend_area_map() - and call it directly from pcpu_alloc() such\nthat pcpu_alloc_area() is guaranteed to have enough area map slots on\ninvocation.\n\nWith this change, pcpu_alloc_area() does only area allocation and the\nonly failure mode is when the chunk doens\u0027t have enough room, so\nthere\u0027s no need to distinguish it from memory allocation failures.\nMake it return -1 on such cases instead of hacky -ENOSPC.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "1880d93b80acc3171850e9df5048bcb26b75c2f5",
      "tree": "e7b564cabf70ef4d711b71ebf0634536ca5a9e15",
      "parents": [
        "6b19b0c2400437a3c10059ede0e59b517092e1bd"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Mar 07 00:44:09 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sat Mar 07 00:44:09 2009 +0900"
      },
      "message": "percpu: replace pcpu_realloc() with pcpu_mem_alloc() and pcpu_mem_free()\n\nImpact: code reorganization for later changes\n\nWith static map handling moved to pcpu_split_block(), pcpu_realloc()\nonly clutters the code and it\u0027s also unsuitable for scheduled locking\nchanges.  Implement and use pcpu_mem_alloc/free() instead.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "edcb463997ed7b2ffa3bac76e3e75957318f2e01",
      "tree": "d1eefb78736404993b0de4a049392f9af578e29e",
      "parents": [
        "3e24aa58907c62bc79d1094e941a374568f62522"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "percpu, module: implement reserved allocation and use it for module percpu variables\n\nImpact: add reserved allocation functionality and use it for module\n\tpercpu variables\n\nThis patch implements reserved allocation from the first chunk.  When\nsetting up the first chunk, arch can ask to set aside certain number\nof bytes right after the core static area which is available only\nthrough a separate reserved allocator.  This will be used primarily\nfor module static percpu variables on architectures with limited\nrelocation range to ensure that the module perpcu symbols are inside\nthe relocatable range.\n\nIf reserved area is requested, the first chunk becomes reserved and\nisn\u0027t available for regular allocation.  If the first chunk also\nincludes piggy-back dynamic allocation area, a separate chunk mapping\nthe same region is created to serve dynamic allocation.  The first one\nis called static first chunk and the second dynamic first chunk.\nAlthough they share the page map, their different area map\ninitializations guarantee they serve disjoint areas according to their\npurposes.\n\nIf arch doesn\u0027t setup reserved area, reserved allocation is handled\nlike any other allocation.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "3e24aa58907c62bc79d1094e941a374568f62522",
      "tree": "1398a21daab0d20a32d7dd04bb8ecadae2e0df82",
      "parents": [
        "9a4f8a878b68d5a5d9ee60908a52cf6a55e1b823"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "percpu: add an indirection ptr for chunk page map access\n\nImpact: allow sharing page map, no functional difference yet\n\nMake chunk-\u003epage access indirect by adding a pointer and renaming the\nactual array to page_ar.  This will be used by future changes.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "cafe8816b217b98dc3f268d3b77445da498beb4f",
      "tree": "7ebbb4e9fc2c4f6ec0035170d4736aecc00d2501",
      "parents": [
        "61ace7fa2fff9c4b6641c506b6b3f1a9394a1b11"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "percpu: use negative for auto for pcpu_setup_first_chunk() arguments\n\nImpact: argument semantic cleanup\n\nIn pcpu_setup_first_chunk(), zero @unit_size and @dyn_size meant\nauto-sizing.  It\u0027s okay for @unit_size as 0 doesn\u0027t make sense but 0\ndynamic reserve size is valid.  Alos, if arch @dyn_size is calculated\nfrom other parameters, it might end up passing in 0 @dyn_size and\nmalfunction when the size is automatically adjusted.\n\nThis patch makes both @unit_size and @dyn_size ssize_t and use -1 for\nauto sizing.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "61ace7fa2fff9c4b6641c506b6b3f1a9394a1b11",
      "tree": "214d0e04227239c31f93ba6948cf58d67cfedcee",
      "parents": [
        "2441d15c97d498b18f03ae9fba262ffeae42a08b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "percpu: improve first chunk initial area map handling\n\nImpact: no functional change\n\nWhen the first chunk is created, its initial area map is not allocated\nbecause kmalloc isn\u0027t online yet.  The map is allocated and\ninitialized on the first allocation request on the chunk.  This works\nfine but the scattering of initialization logic between the init\nfunction and allocation path is a bit confusing.\n\nThis patch makes the first chunk initialize and use minimal statically\nallocated map from pcpu_setpu_first_chunk().  The map resizing path\nstill needs to handle this specially but it\u0027s more straight-forward\nand gives more latitude to the init path.  This will ease future\nchanges.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2441d15c97d498b18f03ae9fba262ffeae42a08b",
      "tree": "b1ffae67036b6b1eef544342490d330a9ba183d4",
      "parents": [
        "6a242909b01120f6f3d571c0b75e20ec61f0d8d3"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Mar 06 14:33:59 2009 +0900"
      },
      "message": "percpu: cosmetic renames in pcpu_setup_first_chunk()\n\nImpact: cosmetic, preparation for future changes\n\nMake the following renames in pcpur_setup_first_chunk() in preparation\nfor future changes.\n\n* s/free_size/dyn_size/\n* s/static_vm/first_vm/\n* s/static_chunk/schunk/\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "91d75e209bd59695f0708d66964d928d45b3b2f3",
      "tree": "32cab1359d951e4193bebb181a0f0319824a2b95",
      "parents": [
        "9976b39b5031bbf76f715893cf080b6a17683881",
        "8b0e5860cb099d7958d13b00ffbc35ad02735700"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 02:29:19 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 02:29:19 2009 +0100"
      },
      "message": "Merge branch \u0027x86/core\u0027 into core/percpu\n"
    },
    {
      "commit": "8b0e5860cb099d7958d13b00ffbc35ad02735700",
      "tree": "fa95e40d50a891c9a671873c7effbc8a66c6b47d",
      "parents": [
        "b6122b3843216f3f8e9624f9e876f4f0514f9205",
        "327f4387e39cf7bfe79a673e56dbf5479db3fec9",
        "c577b098f9bf467fb05dc279ba83604cb3f7cea0",
        "03787ceed8f7bf06af29f3b213017d89f8e9423d",
        "2fb6b2a048ed8fa3f049c7d42f7a2dd3f0c8d7a6",
        "ab76f3d771590d5c89faa3219559c5d3fc0ce0c2",
        "2505170211f7630361a852e25b60f4df4c878daa",
        "780eef9492b16a1543a3b2ae9f9526a735fc9856"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 02:22:31 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 04 02:22:31 2009 +0100"
      },
      "message": "Merge branches \u0027x86/apic\u0027, \u0027x86/cpu\u0027, \u0027x86/fixmap\u0027, \u0027x86/mm\u0027, \u0027x86/sched\u0027, \u0027x86/setup-lzma\u0027, \u0027x86/signal\u0027 and \u0027x86/urgent\u0027 into x86/core\n"
    },
    {
      "commit": "f180053694b43d5714bf56cb95499a3c32ff155c",
      "tree": "00286fcc88d2842629b039da4009a1332b3a1719",
      "parents": [
        "34754b69a6f87aa6aa2860525a82f12532f83afd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 02 11:00:57 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 02 11:06:49 2009 +0100"
      },
      "message": "x86, mm: dont use non-temporal stores in pagecache accesses\n\nImpact: standardize IO on cached ops\n\nOn modern CPUs it is almost always a bad idea to use non-temporal stores,\nas the regression in this commit has shown it:\n\n  30d697f: x86: fix performance regression in write() syscall\n\nThe kernel simply has no good information about whether using non-temporal\nstores is a good idea or not - and trying to add heuristics only increases\ncomplexity and inserts fragility.\n\nThe regression on cached write()s took very long to be found - over two\nyears. So dont take any chances and let the hardware decide how it makes\nuse of its caches.\n\nThe only exception is drivers/gpu/drm/i915/i915_gem.c: there were we are\nabsolutely sure that another entity (the GPU) will pick up the dirty\ndata immediately and that the CPU will not touch that data before the\nGPU will.\n\nAlso, keep the _nocache() primitives to make it easier for people to\nexperiment with these details. There may be more clear-cut cases where\nnon-cached copies can be used, outside of filemap.c.\n\nCc: Salman Qazi \u003csqazi@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "55f2b78995826d549401bdf20abeac1832636bb6",
      "tree": "931b31f3b6e0879df0f9a1d58ffd040d9a652f2e",
      "parents": [
        "f5c1aa1537be39d8b9bb5279b5881d81898fd3cd",
        "92b9af9e4f144535c65aee673cfad309f25fa465"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 01 12:47:58 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 01 12:47:58 2009 +0100"
      },
      "message": "Merge branch \u0027x86/urgent\u0027 into x86/pat\n"
    },
    {
      "commit": "d0c4f570276cb4d2dc4215b90eb7cb6e2bdd4a15",
      "tree": "5cf4f85082ed720df7d815299782e25e44d75c9d",
      "parents": [
        "af6326d72c95d6e0bbc88c92185c654f57acef3b"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Mar 01 16:06:56 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Mar 01 16:06:56 2009 +0900"
      },
      "message": "bootmem, x86: further fixes for arch-specific bootmem wrapping\n\nImpact: fix new breakages introduced by previous fix\n\nCommit c132937556f56ee4b831ef4b23f1846e05fde102 tried to clean up\nbootmem arch wrapper but it wasn\u0027t quite correct.  Before the commit,\nthe followings were broken.\n\n* Low level interface functions prefixed with __ ignored arch\n  preference.\n\n* reserve_bootmem(...) can\u0027t be mapped into\n  reserve_bootmem_node(NODE_DATA(0)-\u003ebdata, ...) because the node is\n  not preference here.  The region specified MUST fall into the\n  specified region; otherwise, it will panic.\n\nAfter the commit,\n\n* If allocation fails for the arch preferred node, it should fallback\n  to whatever is available.  Instead, it simply failed allocation.\n\nThere are too many internal details to allow generic wrapping and\nstill keep things simple for archs.  Plus, all that arch wants is a\nway to prefer certain node over another.\n\nThis patch drops the generic wrapping around alloc_bootmem_core() and\nadd alloc_bootmem_core() instead.  If necessary, arch can define\nbootmem_arch_referred_node() macro or function which takes all\nallocation information and returns the preferred node.  bootmem\ngeneric code will always try the preferred node first and then\nfallback to other nodes as usual.\n\nBreakages noted and changes reviewed by Johannes Weiner.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\n"
    },
    {
      "commit": "02d51fdfb2bfcf6bbd776f983177f55868aa0a79",
      "tree": "0237b1e965f91198955aa637025263ca66c2ce5c",
      "parents": [
        "0093b108a6853d8398e1acf9021bcbd4666f4594"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Mar 01 15:42:36 2009 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Mar 01 15:42:36 2009 +0900"
      },
      "message": "percpu: kill compile warning in pcpu_populate_chunk()\n\nImpact: remove compile warning\n\nMark local variable map_end in pcpu_populate_chunk() with\nuninitialized_var().  The variable is always used in tandem with\nmap_start and guaranteed to be initialized before use but gcc doesn\u0027t\nunderstand that.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cbb766766f3f2f6d9326c561b1020590642c6e39",
      "tree": "0caaf23286211653ac03b04570914d19521e0e5d",
      "parents": [
        "7766970cc13e9071b356b1f2a48a9eb8675bfcce"
      ],
      "author": {
        "name": "Vegard Nossum",
        "email": "vegard.nossum@gmail.com",
        "time": "Fri Feb 27 14:03:04 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:21 2009 -0800"
      },
      "message": "mm: fix lazy vmap purging (use-after-free error)\n\nI just got this new warning from kmemcheck:\n\n    WARNING: kmemcheck: Caught 32-bit read from freed memory (c7806a60)\n    a06a80c7ecde70c1a04080c700000000a06709c1000000000000000000000000\n     f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f\n     ^\n\n    Pid: 0, comm: swapper Not tainted (2.6.29-rc4 #230)\n    EIP: 0060:[\u003cc1096df7\u003e] EFLAGS: 00000286 CPU: 0\n    EIP is at __purge_vmap_area_lazy+0x117/0x140\n    EAX: 00070f43 EBX: c7806a40 ECX: c1677080 EDX: 00027b66\n    ESI: 00002001 EDI: c170df0c EBP: c170df00 ESP: c178830c\n     DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068\n    CR0: 80050033 CR2: c7806b14 CR3: 01775000 CR4: 00000690\n    DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000\n    DR6: 00004000 DR7: 00000000\n     [\u003cc1096f3e\u003e] free_unmap_vmap_area_noflush+0x6e/0x70\n     [\u003cc1096f6a\u003e] remove_vm_area+0x2a/0x70\n     [\u003cc1097025\u003e] __vunmap+0x45/0xe0\n     [\u003cc10970de\u003e] vunmap+0x1e/0x30\n     [\u003cc1008ba5\u003e] text_poke+0x95/0x150\n     [\u003cc1008ca9\u003e] alternatives_smp_unlock+0x49/0x60\n     [\u003cc171ef47\u003e] alternative_instructions+0x11b/0x124\n     [\u003cc171f991\u003e] check_bugs+0xbd/0xdc\n     [\u003cc17148c5\u003e] start_kernel+0x2ed/0x360\n     [\u003cc171409e\u003e] __init_begin+0x9e/0xa9\n     [\u003cffffffff\u003e] 0xffffffff\n\nIt happened here:\n\n    $ addr2line -e vmlinux -i c1096df7\n    mm/vmalloc.c:540\n\nCode:\n\n\tlist_for_each_entry(va, \u0026valist, purge_list)\n\t\t__free_vmap_area(va);\n\nIt\u0027s this instruction:\n\n    mov    0x20(%ebx),%edx\n\nWhich corresponds to a dereference of va-\u003epurge_list.next:\n\n    (gdb) p ((struct vmap_area *) 0)-\u003epurge_list.next\n    Cannot access memory at address 0x20\n\nIt seems that we should use \"safe\" list traversal here, as the element\nis freed inside the loop. Please verify that this is the right fix.\n\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Vegard Nossum \u003cvegard.nossum@gmail.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7766970cc13e9071b356b1f2a48a9eb8675bfcce",
      "tree": "615ebb34f392c882cc0b72e2958249a2f9f0ee19",
      "parents": [
        "5170836679185357dc1b7660bad13287b39e1e33"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Fri Feb 27 14:03:03 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Feb 27 16:26:21 2009 -0800"
      },
      "message": "mm: vmap fix overflow\n\nThe new vmap allocator can wrap the address and get confused in the case\nof large allocations or VMALLOC_END near the end of address space.\n\nProblem reported by Christoph Hellwig on a 32-bit XFS workload.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nReported-by: Christoph Hellwig \u003chch@lst.de\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ecc25fbd6b9e07b33895c61ddf84006b00f55d99",
      "tree": "50cb6411d6aa6559b5e04a088afb73aaa1d4e5be",
      "parents": [
        "801c0be81454901e02c49abe12929c67e7d1cb55",
        "b5f26d05565d070b7b352dba56b1f96e10021980",
        "15d4fcd615989ed83fe848e6a3c7e9f0361cf0d0",
        "63823126c221dd721ce7351b596b3b73aa943613",
        "34754b69a6f87aa6aa2860525a82f12532f83afd",
        "694593e3374a67d95ece6a275a1f181644c2c4d8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 06:31:32 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Feb 26 06:31:32 2009 +0100"
      },
      "message": "Merge branches \u0027x86/apic\u0027, \u0027x86/defconfig\u0027, \u0027x86/memtest\u0027, \u0027x86/mm\u0027 and \u0027linus\u0027 into x86/core\n"
    },
    {
      "commit": "0b0a0806b0d8635e046bf533225a25903b1cddce",
      "tree": "245ac39eb1b7c6008a669ab2d68ed174d66bd7bc",
      "parents": [
        "c15d8a6499d04e5d2cac07f8120f207bb275f60f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Feb 24 20:51:52 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 25 12:21:42 2009 -0800"
      },
      "message": "shmem: fix shared anonymous accounting\n\nEach time I exit Firefox, /proc/meminfo\u0027s Committed_AS goes down almost\n400 kB: OVERCOMMIT_NEVER would be allowing overcommits it should\nprohibit.\n\nCommit fc8744adc870a8d4366908221508bb113d8b72ee \"Stop playing silly\ngames with the VM_ACCOUNT flag\" changed shmem_file_setup() to set the\nshmem file\u0027s VM_ACCOUNT flag according to VM_NORESERVE not being set in\nthe vma flags; but did so only _after_ the shmem_acct_size(flags, size)\ncall which is expected to pre-account a shared anonymous object.\n\nIt\u0027s all clearer if we switch shmem.c over to use VM_NORESERVE\nthroughout in place of !VM_ACCOUNT.\n\nBut I very nearly sent in a patch which mistakenly removed the\naccounting from tmpfs files: shmem_get_inode()\u0027s memset was good for not\nsetting VM_ACCOUNT, but now it needs to set VM_NORESERVE.\n\nRather than setting that by default, then perhaps clearing it again in\nshmem_file_setup(), let\u0027s pass it as a flag to shmem_get_inode(): that\nallows us to remove the #ifdef CONFIG_SHMEM from shmem_file_setup().\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34754b69a6f87aa6aa2860525a82f12532f83afd",
      "tree": "2f5234670238c3cf1139d09545fd25140f49c003",
      "parents": [
        "95108fa34a83ffd97e0af959e4b28d7c62008781"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed Feb 25 16:04:03 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 16:38:34 2009 +0100"
      },
      "message": "x86: make vmap yell louder when it is used under irqs_disabled()\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3255aa2eb636a508fc82a73fabbb8aaf2ff23c0f",
      "tree": "2a602fb8f4fefe666e8daedf1e1f755800bd700a",
      "parents": [
        "95f66b3770d6d0755b4a2d818c237574ffd74e4c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 08:21:52 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 25 10:20:03 2009 +0100"
      },
      "message": "x86, mm: pass in \u0027total\u0027 to __copy_from_user_*nocache()\n\nImpact: cleanup, enable future change\n\nAdd a \u0027total bytes copied\u0027 parameter to __copy_from_user_*nocache(),\nand update all the callsites.\n\nThe parameter is not used yet - architecture code can use it to\nmore intelligently decide whether the copy should be cached or\nnon-temporal.\n\nCc: Salman Qazi \u003csqazi@google.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c0bdb232b23b51c23e551041510ad6bea5ce5a92",
      "tree": "c904332ff38d1dac3450734a47997b6d0eca07fc",
      "parents": [
        "73d342b169db700b5a6ad626fe4b86911efec8db"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Feb 25 09:16:35 2009 +0200"
      },
      "committer": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed Feb 25 09:16:35 2009 +0200"
      },
      "message": "slub: rename calculate_min_partial() to set_min_partial()\n\nAs suggested by Christoph Lameter, rename calculate_min_partial() to\nset_min_partial() as the function doesn\u0027t really do any calculations.\n\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\n"
    },
    {
      "commit": "0edcf8d6926f4038443dbc24e319530177ca0353",
      "tree": "6010af62f73d01ab673d5106f310eaf4f4228e32",
      "parents": [
        "87b203079ed949de52f0d92aeae20e5e0116c12f",
        "40150d37be7f7949b2ec07d511244da856647d84"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 24 21:52:45 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Feb 24 21:52:45 2009 +0100"
      },
      "message": "Merge branch \u0027tj-percpu\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into core/percpu\n\nConflicts:\n\tarch/x86/include/asm/pgtable.h\n"
    }
  ],
  "next": "40150d37be7f7949b2ec07d511244da856647d84"
}
