)]}'
{
  "log": [
    {
      "commit": "6b0cd00bc396daf5c2dcf17a8d82055335341f46",
      "tree": "a63db9ea2871bcd05f3cb95fc152be33ea929a1a",
      "parents": [
        "c8d86d8ac439ef6c9364bf0ba3a05a3f9a8e0dea",
        "47f43e7efadacc627f325aba64c6a547de0926db"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 07 13:59:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 07 13:59:32 2010 -0700"
      },
      "message": "Merge branch \u0027hwpoison-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6:\n  HWPOISON: Stop shrinking at right page count\n  HWPOISON: Report correct address granuality for AO huge page errors\n  HWPOISON: Copy si_addr_lsb to user\n  page-types.c: fix name of unpoison interface\n"
    },
    {
      "commit": "ad4ca5f4b70236dab5e457ff6567d36f75d2e7c5",
      "tree": "b3c5f477a79516389201d342dda2a3591cfa4332",
      "parents": [
        "f241e6607b5a5aefa23c652dbe947b7465633984"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill@shutemov.name",
        "time": "Thu Oct 07 12:59:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 07 13:31:21 2010 -0700"
      },
      "message": "memcg: fix thresholds with use_hierarchy \u003d\u003d 1\n\nWe need to check parent\u0027s thresholds if parent has use_hierarchy \u003d\u003d 1 to\nbe sure that parent\u0027s threshold events will be triggered even if parent\nitself is not active (no MEM_CGROUP_EVENTS).\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nReviewed-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f241e6607b5a5aefa23c652dbe947b7465633984",
      "tree": "5dbc0aba2d1cdf217176940415dcd17f6d86af8d",
      "parents": [
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Thu Oct 07 12:59:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 07 13:31:21 2010 -0700"
      },
      "message": "mm: alloc_large_system_hash() printk overflow on 16TB boot\n\nDuring boot of a 16TB system, the following is printed:\nDentry cache hash table entries: -2147483648 (order: 22, 17179869184 bytes)\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@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": "47f43e7efadacc627f325aba64c6a547de0926db",
      "tree": "e83afbf6be4f594d6f0cd1bf815e9469d4a14f18",
      "parents": [
        "0d9ee6a2d4a6e92c49e6fa9469e5731d21ee203e"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue Sep 28 07:37:55 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Oct 07 09:47:10 2010 +0200"
      },
      "message": "HWPOISON: Stop shrinking at right page count\n\nWhen we call the slab shrinker to free a page we need to stop at\npage count one because the caller always holds a single reference, not zero.\n\nThis avoids useless looping over slab shrinkers and freeing too much\nmemory.\n\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "0d9ee6a2d4a6e92c49e6fa9469e5731d21ee203e",
      "tree": "563ee93b63198db99f60fff24f98db3d9d12cc08",
      "parents": [
        "a337fdac7a5622d1e6547f4b476c14dfe5a2c892"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Sep 27 22:03:33 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Oct 07 09:45:44 2010 +0200"
      },
      "message": "HWPOISON: Report correct address granuality for AO huge page errors\n\nThe SIGBUS user space signalling is supposed to report the\naddress granuality of a corruption. Pass this information correctly\nfor huge pages by querying the hpage order.\n\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "4e31635c367a9e21a43cfbfae4c9deda2e19d1f4",
      "tree": "67e27c7560fbf222958e5d9206f39c3b400be98e",
      "parents": [
        "4829b906cc063cb7cd1b7f34fa05de6db75ec8bb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Sat Oct 02 17:49:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 04 11:09:53 2010 -0700"
      },
      "message": "ksm: fix bad user data when swapping\n\nBuilding under memory pressure, with KSM on 2.6.36-rc5, collapsed with\nan internal compiler error: typically indicating an error in swapping.\n\nPerhaps there\u0027s a timing issue which makes it now more likely, perhaps\nit\u0027s just a long time since I tried for so long: this bug goes back to\nKSM swapping in 2.6.33.\n\nNotice how reuse_swap_page() allows an exclusive page to be reused, but\nonly does SetPageDirty if it can delete it from swap cache right then -\nif it\u0027s currently under Writeback, it has to be left in cache and we\ndon\u0027t SetPageDirty, but the page can be reused.  Fine, the dirty bit\nwill get set in the pte; but notice how zap_pte_range() does not bother\nto transfer pte_dirty to page_dirty when unmapping a PageAnon.\n\nIf KSM chooses to share such a page, it will look like a clean copy of\nswapcache, and not be written out to swap when its memory is needed;\nthen stale data read back from swap when it\u0027s needed again.\n\nWe could fix this in reuse_swap_page() (or even refuse to reuse a\npage under writeback), but it\u0027s more honest to fix my oversight in\nKSM\u0027s write_protect_page().  Several days of testing on three machines\nconfirms that this fixes the issue they showed.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4829b906cc063cb7cd1b7f34fa05de6db75ec8bb",
      "tree": "6ff55df09bb788ae2c66a5f9570bcacf70d6e3bb",
      "parents": [
        "c6ea21e35bf3691cad59647c771e6606067f627d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Sat Oct 02 17:46:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 04 11:09:53 2010 -0700"
      },
      "message": "ksm: fix page_address_in_vma anon_vma oops\n\n2.6.36-rc1 commit 21d0d443cdc1658a8c1484fdcece4803f0f96d0e \"rmap:\nresurrect page_address_in_vma anon_vma check\" was right to resurrect\nthat check; but now that it\u0027s comparing anon_vma-\u003eroots instead of\njust anon_vmas, there\u0027s a danger of oopsing on a NULL anon_vma.\n\nIn most cases no NULL anon_vma ever gets here; but it turns out that\noccasionally KSM, when enabled on a forked or forking process, will\nitself call page_address_in_vma() on a \"half-KSM\" page left over from\nan earlier failed attempt to merge - whose page_anon_vma() is NULL.\n\nIt\u0027s my bug that those should be getting here at all: I thought they\nwere already dealt with, this oops proves me wrong, I\u0027ll fix it in\nthe next release - such pages are effectively pinned until their\nprocess exits, since rmap cannot find their ptes (though swapoff can).\n\nFor now just work around it by making page_address_in_vma() safe (and\nadd a comment on why that check is wanted anyway).  A similar check\nin __page_check_anon_rmap() is safe because do_page_add_anon_rmap()\nalready excluded KSM pages.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5ec1055aa5632dd7a8283cdb5fa9be3c535eaa06",
      "tree": "231fa9a989433ee7fab796342f7ebc2c3e167342",
      "parents": [
        "8ae09259ffe2402e956efd5a36220b6161e9ecb3"
      ],
      "author": {
        "name": "Larry Woodman",
        "email": "lwoodman@redhat.com",
        "time": "Fri Sep 24 12:04:48 2010 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Sep 25 09:34:58 2010 -0700"
      },
      "message": "Avoid pgoff overflow in remap_file_pages\n\nThomas Pollet noticed that the remap_file_pages() system call in\nfremap.c has a potential overflow in the first part of the if statement\nbelow, which could cause it to process bogus input parameters.\nSpecifically the pgoff + size parameters could be wrap thereby\npreventing the system call from failing when it should.\n\nReported-by: Thomas Pollet \u003cthomas.pollet@gmail.com\u003e\nSigned-off-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e92b05dec8865619ea2608c5c11a54b01467482f",
      "tree": "8de4b388a3d70d068bf6ee0469a56987f68bef5e",
      "parents": [
        "d1f3e68efb4c98fa229b39ff09a8984ef16cafa4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 24 14:13:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 24 14:13:57 2010 -0700"
      },
      "message": "fremap: get rid of broken \u0027end\u0027 variable\n\nThomas Pollet points out that the \u0027end\u0027 variable is broken.  It was\ncomputed based on start/size before they were page-aligned, and as such\ndoesn\u0027t actually match any of the other actions we take.  The overflow\ntest on end was also redundant, since we had already tested it with the\nproperly aligned version.\n\nSo just get rid of it entirely.  The one remaining use for that broken\nvariable can just use \u0027start+size\u0027 like all the other cases already did.\n\nReported-by: Thomas Pollet \u003cthomas.pollet@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a850ea30374ebed32a0724742601861853fde869",
      "tree": "436dda49aae61ac7c228a7fadb53fd0632666827",
      "parents": [
        "56c9cfb13c9b6516017eea4e8cbe22ea02e07ee6"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri Sep 10 13:23:06 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 23 17:29:19 2010 -0700"
      },
      "message": "hugetlb, rmap: add BUG_ON(!PageLocked) in hugetlb_add_anon_rmap()\n\nConfirming page lock is held in hugetlb_add_anon_rmap() may be useful\nto detect possible future problems.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56c9cfb13c9b6516017eea4e8cbe22ea02e07ee6",
      "tree": "1b09c9350d8f48d81514f274a3a1933dc9f1a2ef",
      "parents": [
        "cd67f0d2a9a6b5b9f79f4343dc8805757d9ebae2"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri Sep 10 13:23:04 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 23 17:29:18 2010 -0700"
      },
      "message": "hugetlb, rmap: fix confusing page locking in hugetlb_cow()\n\nThe \"if (!trylock_page)\" block in the avoidcopy path of hugetlb_cow()\nlooks confusing and is buggy.  Originally this trylock_page() was\nintended to make sure that old_page is locked even when old_page !\u003d\npagecache_page, because then only pagecache_page is locked.\n\nThis patch fixes it by moving page locking into hugetlb_fault().\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd67f0d2a9a6b5b9f79f4343dc8805757d9ebae2",
      "tree": "5e97527cfdb295d494e6c97d23b75ce59a25f664",
      "parents": [
        "433abed6c6f76ca079a9564f2a1a51fd28ebe0ca"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri Sep 10 13:23:04 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 23 17:29:18 2010 -0700"
      },
      "message": "hugetlb, rmap: use hugepage_add_new_anon_rmap() in hugetlb_cow()\n\nObviously, setting anon_vma for COWed hugepage should be done\nby hugepage_add_new_anon_rmap() to scan vmas faster.\nThis patch fixes it.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "433abed6c6f76ca079a9564f2a1a51fd28ebe0ca",
      "tree": "d654c3331c1910fdae732c6576d1f023b0cfae7d",
      "parents": [
        "bcf835e52e0974b2e2e056b190dd66372b28cfce"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri Sep 10 13:23:03 2010 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 23 17:29:18 2010 -0700"
      },
      "message": "hugetlb, rmap: always use anon_vma root pointer\n\nThis patch applies Andrea\u0027s fix given by the following patch into hugepage\nrmapping code:\n\n  commit 288468c334e98aacbb7e2fb8bde6bc1adcd55e05\n  Author: Andrea Arcangeli \u003caarcange@redhat.com\u003e\n  Date:   Mon Aug 9 17:19:09 2010 -0700\n\nThis patch uses anon_vma-\u003eroot and avoids unnecessary overwriting when\nanon_vma is already set up.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57aebd7739c8dbbf403876ee1e9673fafc83d856",
      "tree": "3ed14ec9da036a05488fd4c08cc1cd5ca414b6e0",
      "parents": [
        "561f8182dbf24b1be9207038aa5f82e34be4bad1",
        "46b30ea9bc3698bc1d1e6fd726c9601d46fa0a91"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 23 08:06:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 23 08:06:55 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: fix pcpu_last_unit_cpu\n"
    },
    {
      "commit": "2aeadc30de45a72648f271603203ab392b80f607",
      "tree": "f3368916a4b1efdfa205ae0891733995a456957f",
      "parents": [
        "a247c3a97a0216b18a46243eda26081f1928ec37"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Sep 22 13:05:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 22 17:22:40 2010 -0700"
      },
      "message": "mmap: call unlink_anon_vmas() in __split_vma() in case of error\n\nIf __split_vma fails because of an out of memory condition the\nanon_vma_chain isn\u0027t teardown and freed potentially leading to rmap walks\naccessing freed vma information plus there\u0027s a memleak.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003cjweiner@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: \u003cstable@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": "e85bfd3aa7a34fa963bb268a676b41694e6dcf96",
      "tree": "6d92d25d390668879fe952e6b6068d774d0471b4",
      "parents": [
        "fd02db9de73faebc51240619c7c7f99bee9f65c7"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Sep 22 13:05:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 22 17:22:39 2010 -0700"
      },
      "message": "oom: filter unkillable tasks from tasklist dump\n\n/proc/sys/vm/oom_dump_tasks is enabled by default, so it\u0027s necessary to\nlimit as much information as possible that it should emit.\n\nThe tasklist dump should be filtered to only those tasks that are eligible\nfor oom kill.  This is already done for memcg ooms, but this patch extends\nit to both cpuset and mempolicy ooms as well as init.\n\nIn addition to suppressing irrelevant information, this also reduces\nconfusion since users currently don\u0027t know which tasks in the tasklist\naren\u0027t eligible for kill (such as those attached to cpusets or bound to\nmempolicies with a disjoint set of mems or nodes, respectively) since that\ninformation is not shown.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: 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": "d1908362ae0b97374eb8328fbb471576332f9fb1",
      "tree": "db8ba2a4de2e9ac61b8e94fc03a76ddbd24d321f",
      "parents": [
        "eba93fcc34d6c4387ce8fbb53bb7b685f91f3343"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Wed Sep 22 13:05:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 22 17:22:39 2010 -0700"
      },
      "message": "vmscan: check all_unreclaimable in direct reclaim path\n\nM.  Vefa Bicakci reported 2.6.35 kernel hang up when hibernation on his\n32bit 3GB mem machine.\n(https://bugzilla.kernel.org/show_bug.cgi?id\u003d16771). Also he bisected\nthe regression to\n\n  commit bb21c7ce18eff8e6e7877ca1d06c6db719376e3c\n  Author: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n  Date:   Fri Jun 4 14:15:05 2010 -0700\n\n     vmscan: fix do_try_to_free_pages() return value when priority\u003d\u003d0 reclaim failure\n\nAt first impression, this seemed very strange because the above commit\nonly chenged function return value and hibernate_preallocate_memory()\nignore return value of shrink_all_memory().  But it\u0027s related.\n\nNow, page allocation from hibernation code may enter infinite loop if the\nsystem has highmem.  The reasons are that vmscan don\u0027t care enough OOM\ncase when oom_killer_disabled.\n\nThe problem sequence is following as.\n\n1. hibernation\n2. oom_disable\n3. alloc_pages\n4. do_try_to_free_pages\n       if (scanning_global_lru(sc) \u0026\u0026 !all_unreclaimable)\n               return 1;\n\nIf kswapd is not freozen, it would set zone-\u003eall_unreclaimable to 1 and\nthen shrink_zones maybe return true(ie, all_unreclaimable is true).  So at\nlast, alloc_pages could go to _nopage_.  If it is, it should have no\nproblem.\n\nThis patch adds all_unreclaimable check to protect in direct reclaim path,\ntoo.  It can care of hibernation OOM case and help bailout\nall_unreclaimable case slightly.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: M. Vefa Bicakci \u003cbicave@superonline.com\u003e\nReported-by: \u003ccaiqian@redhat.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nTested-by: \u003ccaiqian@redhat.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: \u003cstable@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": "f19e8aa11afa24036c6273428da51949b5acf30c",
      "tree": "e768541c3b83ffe488119f77ef178cdf97f9bece",
      "parents": [
        "767b68e96993e29e3480d7ecdd9c4b84667c5762"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Sep 22 13:04:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 22 17:22:38 2010 -0700"
      },
      "message": "oom: always return a badness score of non-zero for eligible tasks\n\nA task\u0027s badness score is roughly a proportion of its rss and swap\ncompared to the system\u0027s capacity.  The scale ranges from 0 to 1000 with\nthe highest score chosen for kill.  Thus, this scale operates on a\nresolution of 0.1% of RAM + swap.  Admin tasks are also given a 3% bonus,\nso the badness score of an admin task using 3% of memory, for example,\nwould still be 0.\n\nIt\u0027s possible that an exceptionally large number of tasks will combine to\nexhaust all resources but never have a single task that uses more than\n0.1% of RAM and swap (or 3.0% for admin tasks).\n\nThis patch ensures that the badness score of any eligible task is never 0\nso the machine doesn\u0027t unnecessarily panic because it cannot find a task\nto kill.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: 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": "b68e9d4581cbb211be3e174d3445b4917aacbcf6",
      "tree": "c7ea337b623abacdb546d30a39037dd029f20a34",
      "parents": [
        "62f1b494d82272819570d715eb6633887a9fde20",
        "692ebd17c2905313fff3c504c249c6a0faad16ec"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 22 09:12:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 22 09:12:37 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  bdi: Fix warnings in __mark_inode_dirty for /dev/zero and friends\n  char: Mark /dev/zero and /dev/kmem as not capable of writeback\n  bdi: Initialize noop_backing_dev_info properly\n  cfq-iosched: fix a kernel OOPs when usb key is inserted\n  block: fix blk_rq_map_kern bio direction flag\n  cciss: freeing uninitialized data on error path\n"
    },
    {
      "commit": "976e48f8a5b02fc33f3e5cad87fb3fcea041a49c",
      "tree": "a4245a8a37202f1c6847dbfa6931b8287b7d0b0b",
      "parents": [
        "180be2a0420a0d680285e9352c0db85016b9ed2a"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Sep 21 11:48:55 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Wed Sep 22 09:48:47 2010 +0200"
      },
      "message": "bdi: Initialize noop_backing_dev_info properly\n\nProperly initialize this backing dev info so that writeback code does not\nbarf when getting to it e.g. via sb-\u003es_bdi.\n\nCc: stable@kernel.org\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "46b30ea9bc3698bc1d1e6fd726c9601d46fa0a91",
      "tree": "6c023260df9c957d8f452aa0c1ff42473fa1b1b5",
      "parents": [
        "b30a3f6257ed2105259b404d419b4964e363928c"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Sep 21 07:57:19 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Sep 21 08:12:25 2010 +0200"
      },
      "message": "percpu: fix pcpu_last_unit_cpu\n\npcpu_first/last_unit_cpu are used to track which cpu has the first and\nlast units assigned.  This in turn is used to determine the span of a\nchunk for man/unmap cache flushes and whether an address belongs to\nthe first chunk or not in per_cpu_ptr_to_phys().\n\nWhen the number of possible CPUs isn\u0027t power of two, a chunk may\ncontain unassigned units towards the end of a chunk.  The logic to\ndetermine pcpu_last_unit_cpu was incorrect when there was an unused\nunit at the end of a chunk.  It failed to ignore the unused unit and\nassigned the unused marker NR_CPUS to pcpu_last_unit_cpu.\n\nThis was discovered through kdump failure which was caused by\nmalfunctioning per_cpu_ptr_to_phys() on a kvm setup with 50 possible\nCPUs by CAI Qian.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: CAI Qian \u003ccaiqian@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "31c4a3d3a0f84a5847665f8aa0552d188389f791",
      "tree": "6dbc630213c899c82030e38c9fa1125c060ef2fe",
      "parents": [
        "2422084a94fcd5038406261b331672a13c92c050"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Sun Sep 19 19:40:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Sep 20 10:44:37 2010 -0700"
      },
      "message": "mm: further fix swapin race condition\n\nCommit 4969c1192d15 (\"mm: fix swapin race condition\") is now agreed to\nbe incomplete.  There\u0027s a race, not very much less likely than the\noriginal race envisaged, in which it is further necessary to check that\nthe swapcache page\u0027s swap has not changed.\n\nHere\u0027s the reasoning: cast in terms of reuse_swap_page(), but probably\ncould be reformulated to rely on try_to_free_swap() instead, or on\nswapoff+swapon.\n\nA, faults into do_swap_page(): does page1 \u003d lookup_swap_cache(swap1) and\ncomes through the lock_page(page1).\n\nB, a racing thread of the same process, faults on the same address: does\npage1 \u003d lookup_swap_cache(swap1) and now waits in lock_page(page1), but\nfor whatever reason is unlucky not to get the lock any time soon.\n\nA carries on through do_swap_page(), a write fault, but cannot reuse the\nswap page1 (another reference to swap1).  Unlocks the page1 (but B\ndoesn\u0027t get it yet), does COW in do_wp_page(), page2 now in that pte.\n\nC, perhaps the parent of A+B, comes in and write faults the same swap\npage1 into its mm, reuse_swap_page() succeeds this time, swap1 is freed.\n\nkswapd comes in after some time (B still unlucky) and swaps out some\npages from A+B and C: it allocates the original swap1 to page2 in A+B,\nand some other swap2 to the original page1 now in C.  But does not\nimmediately free page1 (actually it couldn\u0027t: B holds a reference),\nleaving it in swap cache for now.\n\nB at last gets the lock on page1, hooray! Is PageSwapCache(page1)? Yes.\nIs pte_same(*page_table, orig_pte)? Yes, because page2 has now been\ngiven the swap1 which page1 used to have.  So B proceeds to insert page1\ninto A+B\u0027s page_table, though its content now belongs to C, quite\ndifferent from what A wrote there.\n\nB ought to have checked that page1\u0027s swap was still swap1.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff3cb3fec3c5bbb5110e652bbdd410bc99a47e9f",
      "tree": "5b6834a3a4ecd479d544f8cc8cd10811c1ae13e1",
      "parents": [
        "6ccaa3172941c0a97c7f1c5155b1d32ecd27ec2f",
        "be14eb619108fa8b7120eb2c42d66d5f623ae10e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:26:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Sep 10 07:26:27 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: Range check cpu in blk_cpu_to_group\n  scatterlist: prevent invalid free when alloc fails\n  writeback: Fix lost wake-up shutting down writeback thread\n  writeback: do not lose wakeup events when forking bdi threads\n  cciss: fix reporting of max queue depth since init\n  block: switch s390 tape_block and mg_disk to elevator_change()\n  block: add function call to switch the IO scheduler from a driver\n  fs/bio-integrity.c: return -ENOMEM on kmalloc failure\n  bio-integrity.c: remove dependency on __GFP_NOFAIL\n  BLOCK: fix bio.bi_rw handling\n  block: put dev-\u003ekobj in blk_register_queue fail path\n  cciss: handle allocation failure\n  cfq-iosched: Documentation help for new tunables\n  cfq-iosched: blktrace print per slice sector stats\n  cfq-iosched: Implement tunable group_idle\n  cfq-iosched: Do group share accounting in IOPS when slice_idle\u003d0\n  cfq-iosched: Do not idle if slice_idle\u003d0\n  cciss: disable doorbell reset on reset_devices\n  blkio: Fix return code for mkdir calls\n"
    },
    {
      "commit": "9ee493ce0a60bf42c0f8fd0b0fe91df5704a1cbf",
      "tree": "8dbdbf3d053281291ddc6ebe50d5d0afb5ce22d7",
      "parents": [
        "aa45484031ddee09b06350ab8528bfe5b2c76d1c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Sep 09 16:38:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "mm: page allocator: drain per-cpu lists after direct reclaim allocation fails\n\nWhen under significant memory pressure, a process enters direct reclaim\nand immediately afterwards tries to allocate a page.  If it fails and no\nfurther progress is made, it\u0027s possible the system will go OOM.  However,\non systems with large amounts of memory, it\u0027s possible that a significant\nnumber of pages are on per-cpu lists and inaccessible to the calling\nprocess.  This leads to a process entering direct reclaim more often than\nit should increasing the pressure on the system and compounding the\nproblem.\n\nThis patch notes that if direct reclaim is making progress but allocations\nare still failing that the system is already under heavy pressure.  In\nthis case, it drains the per-cpu lists and tries the allocation a second\ntime before continuing.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.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": "aa45484031ddee09b06350ab8528bfe5b2c76d1c",
      "tree": "6758072232db9a54453022ec3e6cede35d52001c",
      "parents": [
        "72853e2991a2702ae93aaf889ac7db743a415dd3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Thu Sep 09 16:38:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "mm: page allocator: calculate a better estimate of NR_FREE_PAGES when memory is low and kswapd is awake\n\nOrdinarily watermark checks are based on the vmstat NR_FREE_PAGES as it is\ncheaper than scanning a number of lists.  To avoid synchronization\noverhead, counter deltas are maintained on a per-cpu basis and drained\nboth periodically and when the delta is above a threshold.  On large CPU\nsystems, the difference between the estimated and real value of\nNR_FREE_PAGES can be very high.  If NR_FREE_PAGES is much higher than\nnumber of real free page in buddy, the VM can allocate pages below min\nwatermark, at worst reducing the real number of pages to zero.  Even if\nthe OOM killer kills some victim for freeing memory, it may not free\nmemory if the exit path requires a new page resulting in livelock.\n\nThis patch introduces a zone_page_state_snapshot() function (courtesy of\nChristoph) that takes a slightly more accurate view of an arbitrary vmstat\ncounter.  It is used to read NR_FREE_PAGES while kswapd is awake to avoid\nthe watermark being accidentally broken.  The estimate is not perfect and\nmay result in cache line bounces but is expected to be lighter than the\nIPI calls necessary to continually drain the per-cpu counters while kswapd\nis awake.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72853e2991a2702ae93aaf889ac7db743a415dd3",
      "tree": "814f3cc13f0d1133bcb4fd7ab9f429775774607b",
      "parents": [
        "5ee28a447625b9fe64fbf7cff026561084fc5f16"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Sep 09 16:38:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "mm: page allocator: update free page counters after pages are placed on the free list\n\nWhen allocating a page, the system uses NR_FREE_PAGES counters to\ndetermine if watermarks would remain intact after the allocation was made.\nThis check is made without interrupts disabled or the zone lock held and\nso is race-prone by nature.  Unfortunately, when pages are being freed in\nbatch, the counters are updated before the pages are added on the list.\nDuring this window, the counters are misleading as the pages do not exist\nyet.  When under significant pressure on systems with large numbers of\nCPUs, it\u0027s possible for processes to make progress even though they should\nhave been stalled.  This is particularly problematic if a number of the\nprocesses are using GFP_ATOMIC as the min watermark can be accidentally\nbreached and in extreme cases, the system can livelock.\n\nThis patch updates the counters after the pages have been added to the\nlist.  This makes the allocator more cautious with respect to preserving\nthe watermarks and mitigates livelock possibilities.\n\n[akpm@linux-foundation.org: avoid modifying incoming args]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-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": "5ee28a447625b9fe64fbf7cff026561084fc5f16",
      "tree": "345e3afc3ce70af1892ce1c0ec953b68ef8a1770",
      "parents": [
        "3ab04d5cf9736b7a4e9dfcf28285d8663b01aa0e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Sep 09 16:38:14 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "vmstat: update zone stat threshold when onlining a cpu\n\nrefresh_zone_stat_thresholds() calculates parameter based on the number of\nonline cpus.  It\u0027s called at cpu offlining but needs to be called at\nonlining, too.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3399446632739fcd05fd8b272b476a69c6e6d14a",
      "tree": "986d5b880aa69a16c8f3a6bded68cb50f9418d29",
      "parents": [
        "8f2ae0faa3a119158c4dcfe89926d6fad5f5332c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Sep 09 16:38:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: discard while swapping only if SWAP_FLAG_DISCARD\n\nTests with recent firmware on Intel X25-M 80GB and OCZ Vertex 60GB SSDs\nshow a shift since I last tested in December: in part because of firmware\nupdates, in part because of the necessary move from barriers to awaiting\ncompletion at the block layer.  While discard at swapon still shows as\nslightly beneficial on both, discarding 1MB swap cluster when allocating\nis now disadvanteous: adds 25% overhead on Intel, adds 230% on OCZ (YMMV).\n\nSurrender: discard as presently implemented is more hindrance than help\nfor swap; but might prove useful on other devices, or with improvements.\nSo continue to do the discard at swapon, but make discard while swapping\nconditional on a SWAP_FLAG_DISCARD to sys_swapon() (which has been using\nonly the lower 16 bits of int flags).\n\nWe can add a --discard or -d to swapon(8), and a \"discard\" to swap in\n/etc/fstab: matching the mount option for btrfs, ext4, fat, gfs2, nilfs2.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@hansenpartnership.com\u003e\nCc: \"Martin K. Petersen\" \u003cmartin.petersen@oracle.com\u003e\nCc: \u003cstable@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": "8f2ae0faa3a119158c4dcfe89926d6fad5f5332c",
      "tree": "720272512fd0dfd1d865d2dc64b30fed811f2d13",
      "parents": [
        "b73d7fcecd93dc15eaa3c45c8c587b613f6673c4"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@infradead.org",
        "time": "Thu Sep 09 16:38:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: do not send discards as barriers\n\nThe swap code already uses synchronous discards, no need to add I/O\nbarriers.\n\nThis fixes the worst of the terrible slowdown in swap allocation for\nhibernation, reported on 2.6.35 by Nigel Cunningham; but does not entirely\neliminate that regression.\n\n[tj@kernel.org: superflous newlines removed]\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nTested-by: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jens Axboe \u003cjaxboe@fusionio.com\u003e\nCc: James Bottomley \u003cJames.Bottomley@hansenpartnership.com\u003e\nCc: \"Martin K. Petersen\" \u003cmartin.petersen@oracle.com\u003e\nCc: \u003cstable@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": "b73d7fcecd93dc15eaa3c45c8c587b613f6673c4",
      "tree": "ebf5a5e10fb246237807317a81f6f40c3eebcd9c",
      "parents": [
        "910321ea817a202ff70fac666e37e2c8e2f88823"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Sep 09 16:38:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: prevent reuse during hibernation\n\nMove the hibernation check from scan_swap_map() into try_to_free_swap():\nto catch not only the common case when hibernation\u0027s allocation itself\ntriggers swap reuse, but also the less likely case when concurrent page\nreclaim (shrink_page_list) might happen to try_to_free_swap from a page.\n\nHibernation already clears __GFP_IO from the gfp_allowed_mask, to stop\nreclaim from going to swap: check that to prevent swap reuse too.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nCc: \u003cstable@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": "910321ea817a202ff70fac666e37e2c8e2f88823",
      "tree": "aaead29e7797986e2b804746b565bb5d05117c54",
      "parents": [
        "ac8456d6f9a3011c824176bd6084d39e5f70a382"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Thu Sep 09 16:38:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "swap: revert special hibernation allocation\n\nPlease revert 2.6.36-rc commit d2997b1042ec150616c1963b5e5e919ffd0b0ebf\n\"hibernation: freeze swap at hibernation\".  It complicated matters by\nadding a second swap allocation path, just for hibernation; without in any\nway fixing the issue that it was intended to address - page reclaim after\nfixing the hibernation image might free swap from a page already imaged as\nswapcache, letting its swap be reallocated to store a different page of\nthe image: resulting in data corruption if the imaged page were freed as\nclean then swapped back in.  Pages freed to si-\u003eswap_map were still in\ndanger of being reallocated by the alternative allocation path.\n\nI guess it inadvertently fixed slow SSD swap allocation for hibernation,\nas reported by Nigel Cunningham: by missing out the discards that occur on\nthe usual swap allocation path; but that was unintentional, and needs a\nseparate fix.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Nigel Cunningham \u003cnigel@tuxonice.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ac8456d6f9a3011c824176bd6084d39e5f70a382",
      "tree": "8973f7b5f9993d34d0301380972475dca2410afd",
      "parents": [
        "47016434257b90445113eed1c5b8b57eb2d35330"
      ],
      "author": {
        "name": "Gary King",
        "email": "gking@nvidia.com",
        "time": "Thu Sep 09 16:38:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:25 2010 -0700"
      },
      "message": "bounce: call flush_dcache_page() after bounce_copy_vec()\n\nI have been seeing problems on Tegra 2 (ARMv7 SMP) systems with HIGHMEM\nenabled on 2.6.35 (plus some patches targetted at 2.6.36 to perform cache\nmaintenance lazily), and the root cause appears to be that the mm bouncing\ncode is calling flush_dcache_page before it copies the bounce buffer into\nthe bio.\n\nThe bounced page needs to be flushed after data is copied into it, to\nensure that architecture implementations can synchronize instruction and\ndata caches if necessary.\n\nSigned-off-by: Gary King \u003cgking@nvidia.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nAcked-by: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \u003cstable@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": "0dcc48c15f63ee86c2fcd33968b08d651f0360a5",
      "tree": "d182a43200204be2fea04bcb80b824c6f4941267",
      "parents": [
        "bc6930457460788e14b2c0808ed4632a1592bd61"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Sep 09 16:38:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "memory hotplug: fix next block calculation in is_removable\n\nnext_active_pageblock() is for finding next _used_ freeblock.  It skips\nseveral blocks when it finds there are a chunk of free pages lager than\npageblock.  But it has 2 bugs.\n\n  1. We have no lock. page_order(page) - pageblock_order can be minus.\n  2. pageblocks_stride +\u003d is wrong. it should skip page_order(p) of pages.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \u003cstable@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": "bc6930457460788e14b2c0808ed4632a1592bd61",
      "tree": "78e562bc90b3b99f1ba1dbc32c846127f10a67e3",
      "parents": [
        "1c24de60e50fb19b94d94225458da17c720f0729"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Thu Sep 09 16:38:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "mm: compaction: handle active and inactive fairly in too_many_isolated\n\nIram reported that compaction\u0027s too_many_isolated() loops forever.\n(http://www.spinics.net/lists/linux-mm/msg08123.html)\n\nThe meminfo when the situation happened was inactive anon is zero.  That\u0027s\nbecause the system has no memory pressure until then.  While all anon\npages were in the active lru, compaction could select active lru as well\nas inactive lru.  That\u0027s a different thing from vmscan\u0027s isolated.  So we\nhas been two too_many_isolated.\n\nWhile compaction can isolate pages in both active and inactive, current\nimplementation of too_many_isolated only considers inactive.  It made\nIram\u0027s problem.\n\nThis patch handles active and inactive fairly.  That\u0027s because we can\u0027t\nexpect where from and how many compaction would isolated pages.\n\nThis patch changes (nr_isolated \u003e nr_inactive) with\nnr_isolated \u003e (nr_active + nr_inactive) / 2.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReported-by: Iram Shahzad \u003ciram.shahzad@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: \u003cstable@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": "152e0659fc001029c70fa4373af1792b1ae0d01c",
      "tree": "f9cdfd684fc585f884b5344af2fda3988018be00",
      "parents": [
        "4969c1192d15afa3389e7ae3302096ff684ba655"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Sep 09 16:37:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "mm: avoid warning when COMPACTION is selected\n\nCOMPACTION enables MIGRATION, but MIGRATION spawns a warning if numa or\nmemhotplug aren\u0027t selected.  However MIGRATION doesn\u0027t depend on them.  I\nguess it\u0027s just trying to be strict doing a double check on who\u0027s enabling\nit, but it doesn\u0027t know that compaction also enables MIGRATION.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4969c1192d15afa3389e7ae3302096ff684ba655",
      "tree": "abe560c8f293191be65488c49f4db3f3a626e63c",
      "parents": [
        "7c5367f205f7d53659fb19b9fdf65b7bc1a592c6"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Sep 09 16:37:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 18:57:24 2010 -0700"
      },
      "message": "mm: fix swapin race condition\n\nThe pte_same check is reliable only if the swap entry remains pinned (by\nthe page lock on swapcache).  We\u0027ve also to ensure the swapcache isn\u0027t\nremoved before we take the lock as try_to_free_swap won\u0027t care about the\npage pin.\n\nOne of the possible impacts of this patch is that a KSM-shared page can\npoint to the anon_vma of another process, which could exit before the page\nis freed.\n\nThis can leave a page with a pointer to a recycled anon_vma object, or\nworse, a pointer to something that is no longer an anon_vma.\n\n[riel@redhat.com: changelog help]\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@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": "39aa3cb3e8250db9188a6f1e3fb62ffa1a717678",
      "tree": "266640c10436e9bda9bc283fbe5db22761a7cc7c",
      "parents": [
        "26a94e81ded0fcdc0bf96b5fea7343311f1a220b"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "stefan.bader@canonical.com",
        "time": "Tue Aug 31 15:52:27 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 09:05:06 2010 -0700"
      },
      "message": "mm: Move vma_stack_continue into mm.h\n\nSo it can be used by all that need to check for that.\n\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce7db282a3830f57f5b05ec48288c23a5c4d66d5",
      "tree": "8e191c4b2ffa1658d5c014da5cc6230fc58c1a59",
      "parents": [
        "cd4d4fc4137502f88ee871fc015a934dc28535e3",
        "54157c44471f5e266508ac08d270f2bc5857e8bb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:08:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 07 14:08:37 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: fix a mismatch between code and comment\n  percpu: fix a memory leak in pcpu_extend_area_map()\n  percpu: add __percpu notations to UP allocator\n  percpu: handle __percpu notations in UP accessors\n"
    },
    {
      "commit": "997396a73a94de7d92d82e30d7bb1d931e38cb16",
      "tree": "2190a66e085f16a1985e008be167d6fc4ea6734d",
      "parents": [
        "6f4dbeca1a5bac4552d49d9e7b774da9f6625e74",
        "b545787dbb00a041c541a4759d938ddb0108295a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:07:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:07:20 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: fix get_ticket_handler() error handling\n  ceph: don\u0027t BUG on ENOMEM during mds reconnect\n  ceph: ceph_mdsc_build_path() returns an ERR_PTR\n  ceph: Fix warnings\n  ceph: ceph_get_inode() returns an ERR_PTR\n  ceph: initialize fields on new dentry_infos\n  ceph: maintain i_head_snapc when any caps are dirty, not just for data\n  ceph: fix osd request lru adjustment when sending request\n  ceph: don\u0027t improperly set dir complete when holding EXCL cap\n  mm: exporting account_page_dirty\n  ceph: direct requests in snapped namespace based on nonsnap parent\n  ceph: queue cap snap writeback for realm children on snap update\n  ceph: include dirty xattrs state in snapped caps\n  ceph: fix xattr cap writeback\n  ceph: fix multiple mds session shutdown\n"
    },
    {
      "commit": "f18194275c39835cb84563500995e0d503a32d9a",
      "tree": "ec3221ba856e6580e844c4bff200c48f2618c6ac",
      "parents": [
        "d4348c678977c7093438bbbf2067c49396ae941b"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Aug 25 23:12:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 13:54:12 2010 -0700"
      },
      "message": "mm: fix hang on anon_vma-\u003eroot-\u003elock\n\nAfter several hours, kbuild tests hang with anon_vma_prepare() spinning on\na newly allocated anon_vma\u0027s lock - on a box with CONFIG_TREE_PREEMPT_RCU\u003dy\n(which makes this very much more likely, but it could happen without).\n\nThe ever-subtle page_lock_anon_vma() now needs a further twist: since\nanon_vma_prepare() and anon_vma_fork() are liable to change the -\u003eroot\nof a reused anon_vma structure at any moment, page_lock_anon_vma()\nneeds to check page_mapped() again before succeeding, otherwise\npage_unlock_anon_vma() might address a different root-\u003elock.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54157c44471f5e266508ac08d270f2bc5857e8bb",
      "tree": "ecc31a0fee9ffc75875e51b71ae07010fb4bc07b",
      "parents": [
        "a002d148426f40bc2b7dc066982eb177cdebeaaa"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Wed Aug 11 11:19:19 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 27 11:36:19 2010 +0200"
      },
      "message": "percpu: fix a mismatch between code and comment\n\nWhen pcpu_build_alloc_info() searches best_upa value, it ignores current value\nif the number of waste units exceeds 1/3 of the number of total cpus. But the\ncomment on the code says that it will ignore if wastage is over 25%.\nModify the comment.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "a002d148426f40bc2b7dc066982eb177cdebeaaa",
      "tree": "2b499e19cd7431b077eefe53dbcde8dbe71d3097",
      "parents": [
        "94cb121c9483f1ec9b1ef0c249fbfc49c628fa6b"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Sun Aug 08 14:39:07 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Fri Aug 27 11:36:08 2010 +0200"
      },
      "message": "percpu: fix a memory leak in pcpu_extend_area_map()\n\nThe original code did not free the old map.  This patch fixes it.\n\ntj: use @old as memcpy source instead of @chunk-\u003emap, and indentation\n    and description update\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "6628bc74f1aa9c35dd386320bf7ec04f12edb1b3",
      "tree": "c51e82966384fcdda25594372197d80fcb6a649b",
      "parents": [
        "2a643ec67f9efc4b6921a3dd6e257f3b5360622b"
      ],
      "author": {
        "name": "Artem Bityutskiy",
        "email": "Artem.Bityutskiy@nokia.com",
        "time": "Fri Aug 27 09:15:09 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Fri Aug 27 09:16:18 2010 +0200"
      },
      "message": "writeback: do not lose wakeup events when forking bdi threads\n\nThis patch fixes the following issue:\n\nINFO: task mount.nfs4:1120 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nmount.nfs4    D 00000000fffc6a21     0  1120   1119 0x00000000\n ffff880235643948 0000000000000046 ffffffff00000000 ffffffff00000000\n ffff880235643fd8 ffff880235314760 00000000001d44c0 ffff880235643fd8\n 00000000001d44c0 00000000001d44c0 00000000001d44c0 00000000001d44c0\nCall Trace:\n [\u003cffffffff813bc747\u003e] schedule_timeout+0x34/0xf1\n [\u003cffffffff813bc530\u003e] ? wait_for_common+0x3f/0x130\n [\u003cffffffff8106b50b\u003e] ? trace_hardirqs_on+0xd/0xf\n [\u003cffffffff813bc5c3\u003e] wait_for_common+0xd2/0x130\n [\u003cffffffff8104159c\u003e] ? default_wake_function+0x0/0xf\n [\u003cffffffff813beaa0\u003e] ? _raw_spin_unlock+0x26/0x2a\n [\u003cffffffff813bc6bb\u003e] wait_for_completion+0x18/0x1a\n [\u003cffffffff81101a03\u003e] sync_inodes_sb+0xca/0x1bc\n [\u003cffffffff811056a6\u003e] __sync_filesystem+0x47/0x7e\n [\u003cffffffff81105798\u003e] sync_filesystem+0x47/0x4b\n [\u003cffffffff810e7ffd\u003e] generic_shutdown_super+0x22/0xd2\n [\u003cffffffff810e80f8\u003e] kill_anon_super+0x11/0x4f\n [\u003cffffffffa00d06d7\u003e] nfs4_kill_super+0x3f/0x72 [nfs]\n [\u003cffffffff810e7b68\u003e] deactivate_locked_super+0x21/0x41\n [\u003cffffffff810e7fd6\u003e] deactivate_super+0x40/0x45\n [\u003cffffffff810fc66c\u003e] mntput_no_expire+0xb8/0xed\n [\u003cffffffff810fc73b\u003e] release_mounts+0x9a/0xb0\n [\u003cffffffff810fc7bb\u003e] put_mnt_ns+0x6a/0x7b\n [\u003cffffffffa00d0fb2\u003e] nfs_follow_remote_path+0x19a/0x296 [nfs]\n [\u003cffffffffa00d11ca\u003e] nfs4_try_mount+0x75/0xaf [nfs]\n [\u003cffffffffa00d1790\u003e] nfs4_get_sb+0x276/0x2ff [nfs]\n [\u003cffffffff810e7dba\u003e] vfs_kern_mount+0xb8/0x196\n [\u003cffffffff810e7ef6\u003e] do_kern_mount+0x48/0xe8\n [\u003cffffffff810fdf68\u003e] do_mount+0x771/0x7e8\n [\u003cffffffff810fe062\u003e] sys_mount+0x83/0xbd\n [\u003cffffffff810089c2\u003e] system_call_fastpath+0x16/0x1b\n\nThe reason of this hang was a race condition: when the flusher thread is\nforking a bdi thread, we use \u0027kthread_run()\u0027, so we run it _before_ we make it\nvisible in \u0027bdi-\u003ewb.task\u0027. The bdi thread runs, does all works, and goes sleep.\n\u0027bdi-\u003ewb.task\u0027 is still NULL. And this is a dangerous time window.\n\nIf at this time someone queues a work for this bdi, he does not see the bdi\nthread and wakes up the forker thread instead! But the forker has already\nforked this bdi thread, but just did not make it visible yet!\n\nThe result is that we lose the wake up event for this bdi thread and the NFS4\ncode waits forever.\n\nTo fix the problem, we should use \u0027ktrhead_create()\u0027 for creating bdi threads,\nthen make them visible in \u0027bdi-\u003ewb.task\u0027, and only after this wake them up.\nThis is exactly what this patch does.\n\nSigned-off-by: Artem Bityutskiy \u003cArtem.Bityutskiy@nokia.com\u003e\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "871eae4891a844e1fd065467b940f98dbf7aad1c",
      "tree": "30c0ea313fc55a3091a40893b77600b8f3daf63f",
      "parents": [
        "502adf5778f4151dcba3f64dd6ed322151f3712c",
        "b5420f235953448eeae615b3361584dc5e414f34"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 08:39:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 25 08:39:07 2010 -0700"
      },
      "message": "Merge branch \u00272.6.36-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev\n\n* \u00272.6.36-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/xfsdev:\n  xfs: do not discard page cache data on EAGAIN\n  xfs: don\u0027t do memory allocation under the CIL context lock\n  xfs: Reduce log force overhead for delayed logging\n  xfs: dummy transactions should not dirty VFS state\n  xfs: ensure f_ffree returned by statfs() is non-negative\n  xfs: handle negative wbc-\u003enr_to_write during sync writeback\n  writeback: write_cache_pages doesn\u0027t terminate at nr_to_write \u003c\u003d 0\n  xfs: fix untrusted inode number lookup\n  xfs: ensure we mark all inodes in a freed cluster XFS_ISTALE\n  xfs: unlock items before allowing the CIL to commit\n"
    },
    {
      "commit": "8ca3eb08097f6839b2206e2242db4179aee3cfb3",
      "tree": "32b9f033230d615d248fa0bbfa1a0c644a422ed8",
      "parents": [
        "9559fcdbff4f93d29af04478bbc48294519424f5"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Tue Aug 24 11:44:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 24 12:13:20 2010 -0700"
      },
      "message": "guard page for stacks that grow upwards\n\npa-risc and ia64 have stacks that grow upwards. Check that\nthey do not run into other mappings. By making VM_GROWSUP\n0x0 on architectures that do not ever use it, we can avoid\nsome unpleasant #ifdefs in check_stack_guard_page().\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "546a1924224078c6f582e68f890b05b387b42653",
      "tree": "f863df4fd74f85c8177d9eb1467a351cd6d0acfc",
      "parents": [
        "4536f2ad8b330453d7ebec0746c4374eadd649b1"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Aug 24 11:44:34 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Tue Aug 24 11:44:34 2010 +1000"
      },
      "message": "writeback: write_cache_pages doesn\u0027t terminate at nr_to_write \u003c\u003d 0\n\nI noticed XFS writeback in 2.6.36-rc1 was much slower than it should have\nbeen. Enabling writeback tracing showed:\n\n    flush-253:16-8516  [007] 1342952.351608: wbc_writepage: bdi 253:16: towrt\u003d1024 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n    flush-253:16-8516  [007] 1342952.351654: wbc_writepage: bdi 253:16: towrt\u003d1023 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n    flush-253:16-8516  [000] 1342952.369520: wbc_writepage: bdi 253:16: towrt\u003d0 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n    flush-253:16-8516  [000] 1342952.369542: wbc_writepage: bdi 253:16: towrt\u003d-1 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n    flush-253:16-8516  [000] 1342952.369549: wbc_writepage: bdi 253:16: towrt\u003d-2 skip\u003d0 mode\u003d0 kupd\u003d0 bgrd\u003d1 reclm\u003d0 cyclic\u003d1 more\u003d0 older\u003d0x0 start\u003d0x0 end\u003d0x0\n\nWriteback is not terminating in background writeback if -\u003ewritepage is\nreturning with wbc-\u003enr_to_write \u003d\u003d 0, resulting in sub-optimal single page\nwriteback on XFS.\n\nFix the write_cache_pages loop to terminate correctly when this situation\noccurs and so prevent this sub-optimal background writeback pattern. This\nimproves sustained sequential buffered write performance from around\n250MB/s to 750MB/s for a 100GB file on an XFS filesystem on my 8p test VM.\n\nCc:\u003cstable@kernel.org\u003e\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "679ceace848e9fd570678396ffe1ef034e00e82d",
      "tree": "670768527852f134cfe3e20d425534a16edd968a",
      "parents": [
        "eb6bb1c5bdc6e455a9d16cb845cc65afc9b0a617"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Fri Aug 20 02:31:26 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sun Aug 22 15:16:51 2010 -0700"
      },
      "message": "mm: exporting account_page_dirty\n\nThis allows code outside of the mm core to safely manipulate page state\nand not worry about the other accounting. Not using these routines means\nthat some code will lose track of the accounting and we get bugs. This\nhas happened once already.\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "bc584c5107bfd97e2aa41c798e3b213bcdd4eae7",
      "tree": "13cb518e2f4f2aac46aefbbaacb6e4fa3fbb58a2",
      "parents": [
        "a28e0852d45e65d9edf249c36e432b5e0a80f01d",
        "1ab335d8f85792e3b107ff8237d53cf64db714df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 10:08:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 22 10:08:52 2010 -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  slab: fix object alignment\n  slub: add missing __percpu markup in mm/slub_def.h\n"
    },
    {
      "commit": "0e8e50e20c837eeec8323bba7dcd25fe5479194c",
      "tree": "12c7ec767a4a8508be33442c6fb55c28a26c94cd",
      "parents": [
        "7798330ac8114c731cfab83e634c6ecedaa233d7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:49:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:50:00 2010 -0700"
      },
      "message": "mm: make stack guard page logic use vm_prev pointer\n\nLike the mlock() change previously, this makes the stack guard check\ncode use vma-\u003evm_prev to see what the mapping below the current stack\nis, rather than have to look it up with find_vma().\n\nAlso, accept an abutting stack segment, since that happens naturally if\nyou split the stack with mlock or mprotect.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7798330ac8114c731cfab83e634c6ecedaa233d7",
      "tree": "76c15db91609ad3355add2a6f23823ea27cf920d",
      "parents": [
        "297c5eee372478fc32fec5fe8eed711eedb13f3d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:39:25 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:49:50 2010 -0700"
      },
      "message": "mm: make the mlock() stack guard page checks stricter\n\nIf we\u0027ve split the stack vma, only the lowest one has the guard page.\nNow that we have a doubly linked list of vma\u0027s, checking this is trivial.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "297c5eee372478fc32fec5fe8eed711eedb13f3d",
      "tree": "18415eae0833ff4767943f985900524d6b1d73f1",
      "parents": [
        "36423a5ed5e4ea95ceedb68fad52965033e11639"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 16:24:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 21 08:49:21 2010 -0700"
      },
      "message": "mm: make the vma list be doubly linked\n\nIt\u0027s a really simple list, and several of the users want to go backwards\nin it to find the previous vma.  So rather than have to look up the\nprevious entry with \u0027find_vma_prev()\u0027 or something similar, just make it\ndoubly linked instead.\n\nTested-by: Ian Campbell \u003cijc@hellion.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8d6c83f0ba5e1bd1e8bb2e3c7de4c276dc247f99",
      "tree": "58b777adffdaf754b97e6359a325bccdd8919346",
      "parents": [
        "b52723c5607f7684c2c0c075f86f86da0d7fb6d0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Aug 19 14:13:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "oom: __task_cred() need rcu_read_lock()\n\ndump_tasks() needs to hold the RCU read lock around its access of the\ntarget task\u0027s UID.  To this end it should use task_uid() as it only needs\nthat one thing from the creds.\n\nThe fact that dump_tasks() holds tasklist_lock is insufficient to prevent the\ntarget process replacing its credentials on another CPU.\n\nThen, this patch change to call rcu_read_lock() explicitly.\n\n\t\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\t[ INFO: suspicious rcu_dereference_check() usage. ]\n\t---------------------------------------------------\n\tmm/oom_kill.c:410 invoked rcu_dereference_check() without protection!\n\n\tother info that might help us debug this:\n\n\trcu_scheduler_active \u003d 1, debug_locks \u003d 1\n\t4 locks held by kworker/1:2/651:\n\t #0:  (events){+.+.+.}, at: [\u003cffffffff8106aae7\u003e]\n\tprocess_one_work+0x137/0x4a0\n\t #1:  (moom_work){+.+...}, at: [\u003cffffffff8106aae7\u003e]\n\tprocess_one_work+0x137/0x4a0\n\t #2:  (tasklist_lock){.+.+..}, at: [\u003cffffffff810fafd4\u003e]\n\tout_of_memory+0x164/0x3f0\n\t #3:  (\u0026(\u0026p-\u003ealloc_lock)-\u003erlock){+.+...}, at: [\u003cffffffff810fa48e\u003e]\n\tfind_lock_task_mm+0x2e/0x70\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\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": "b52723c5607f7684c2c0c075f86f86da0d7fb6d0",
      "tree": "97db08ef9d74c8fcacff6a96070854a5bc276419",
      "parents": [
        "be71cf2202971e50ce4953d473649c724799eb8a"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Aug 19 14:13:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "oom: fix tasklist_lock leak\n\nCommit 0aad4b3124 (\"oom: fold __out_of_memory into out_of_memory\")\nintroduced a tasklist_lock leak.  Then it caused following obvious\ndanger warnings and panic.\n\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\u003d\u003d\u003d\u003d\u003d\n    [ BUG: lock held when returning to user space! ]\n    ------------------------------------------------\n    rsyslogd/1422 is leaving the kernel with locks still held!\n    1 lock held by rsyslogd/1422:\n     #0:  (tasklist_lock){.+.+.+}, at: [\u003cffffffff810faf64\u003e] out_of_memory+0x164/0x3f0\n    BUG: scheduling while atomic: rsyslogd/1422/0x00000002\n    INFO: lockdep is turned off.\n\nThis patch fixes it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\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": "be71cf2202971e50ce4953d473649c724799eb8a",
      "tree": "4bc4b927c3f55c12128929ab0d52e061c2a257ec",
      "parents": [
        "f522886e202a34a2191dd5d471b3c4d46410a9a0"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Aug 19 14:13:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "oom: fix NULL pointer dereference\n\nCommit b940fd7035 (\"oom: remove unnecessary code and cleanup\") added an\nunnecessary NULL pointer dereference.  remove it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\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": "d5ed3a4af77b851b6271ad3d9abc4c57fa3ce0f5",
      "tree": "f06894404e4af25051e8918bfd3fdac95974fc97",
      "parents": [
        "f2e41e910320197d55b52e28d99a07130f2ae738"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Thu Aug 19 14:13:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 20 09:34:55 2010 -0700"
      },
      "message": "lib/radix-tree.c: fix overflow in radix_tree_range_tag_if_tagged()\n\nWhen radix_tree_maxindex() is ~0UL, it can happen that scanning overflows\nindex and tree traversal code goes astray reading memory until it hits\nunreadable memory.  Check for overflow and exit in that case.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Christoph Hellwig \u003chch@lst.de\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": "602586a83b719df0fbd94196a1359ed35aeb2df3",
      "tree": "1ff381d77769e352397edd2f6a7aa8ca5ba929f1",
      "parents": [
        "19147d0eb1472eac690a9a708893d4de096bbfcf"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Aug 17 15:23:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 17 18:33:11 2010 -0700"
      },
      "message": "shmem: put_super must percpu_counter_destroy\n\nlist_add() corruption messages reported from shmem_fill_super()\u0027s recently\nintroduced percpu_counter_init(): shmem_put_super() needs to remember to\npercpu_counter_destroy().  And also check error from percpu_counter_init().\n\nReported-bisected-and-tested-by: Tetsuo Handa \u003cpenguin-kernel@i-love.sakura.ne.jp\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d7824370e26325c881b665350ce64fb0a4fde24a",
      "tree": "c3fb9ceb074d52c3edd166a927314c642f2fe631",
      "parents": [
        "1b68c9596ce17a1e06918ed65fc3d19b92b04aab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 15 11:35:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 15 11:35:52 2010 -0700"
      },
      "message": "mm: fix up some user-visible effects of the stack guard page\n\nThis commit makes the stack guard page somewhat less visible to user\nspace. It does this by:\n\n - not showing the guard page in /proc/\u003cpid\u003e/maps\n\n   It looks like lvm-tools will actually read /proc/self/maps to figure\n   out where all its mappings are, and effectively do a specialized\n   \"mlockall()\" in user space.  By not showing the guard page as part of\n   the mapping (by just adding PAGE_SIZE to the start for grows-up\n   pages), lvm-tools ends up not being aware of it.\n\n - by also teaching the _real_ mlock() functionality not to try to lock\n   the guard page.\n\n   That would just expand the mapping down to create a new guard page,\n   so there really is no point in trying to lock it in place.\n\nIt would perhaps be nice to show the guard page specially in\n/proc/\u003cpid\u003e/maps (or at least mark grow-down segments some way), but\nlet\u0027s not open ourselves up to more breakage by user space from programs\nthat depends on the exact deails of the \u0027maps\u0027 file.\n\nSpecial thanks to Henrique de Moraes Holschuh for diving into lvm-tools\nsource code to see what was going on with the whole new warning.\n\nReported-and-tested-by: François Valenduc \u003cfrancois.valenduc@tvcablenet.be\nReported-by: Henrique de Moraes Holschuh \u003chmh@hmh.eng.br\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03ab450f030b08d786c7a262b67816396f09c7ab",
      "tree": "1c6e245f823bd3c2c3f5b584f6f25cf83d1c2447",
      "parents": [
        "163475fb111cb2f85aef2428a6c1f9eefba8be23"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat Aug 14 13:05:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 14 16:20:59 2010 -0700"
      },
      "message": "mm/page-writeback: fix non-kernel-doc function comments\n\nRemove leading /** from non-kernel-doc function comments to prevent\nkernel-doc warnings.\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11ac552477e32835cb6970bf0a70c210807f5673",
      "tree": "959521ee3e217da81b08209df0f0db760e1efdb8",
      "parents": [
        "92fa5bd9a946b6e7aab6764e7312e4e3d9bed295"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 14 11:44:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 14 11:44:56 2010 -0700"
      },
      "message": "mm: fix page table unmap for stack guard page properly\n\nWe do in fact need to unmap the page table _before_ doing the whole\nstack guard page logic, because if it is needed (mainly 32-bit x86 with\nPAE and CONFIG_HIGHPTE, but other architectures may use it too) then it\nwill do a kmap_atomic/kunmap_atomic.\n\nAnd those kmaps will create an atomic region that we cannot do\nallocations in.  However, the whole stack expand code will need to do\nanon_vma_prepare() and vma_lock_anon_vma() and they cannot do that in an\natomic region.\n\nNow, a better model might actually be to do the anon_vma_prepare() when\n_creating_ a VM_GROWSDOWN segment, and not have to worry about any of\nthis at page fault time.  But in the meantime, this is the\nstraightforward fix for the issue.\n\nSee https://bugzilla.kernel.org/show_bug.cgi?id\u003d16588 for details.\n\nReported-by: Wylda \u003cwylda@volny.cz\u003e\nReported-by: Sedat Dilek \u003csedat.dilek@gmail.com\u003e\nReported-by: Mike Pagano \u003cmpagano@gentoo.org\u003e\nReported-by: François Valenduc \u003cfrancois.valenduc@tvcablenet.be\u003e\nTested-by: Ed Tomlinson \u003cedt@aei.ca\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: stable@kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fe622e76fddd986e56f22842a6ce292504727ef1",
      "tree": "7e901e8d5f42a76c0e9e8e33d75b6ff791a7b759",
      "parents": [
        "c7887325230aec47d47a32562a6e26014a0fafca"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Aug 13 11:25:12 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 16:55:25 2010 -0700"
      },
      "message": "NOMMU: Remove an extraneous no_printk()\n\nRemove an extraneous no_printk() in mm/nommu.c that got missed when the\nfunction got generalised from several things that used it in commit\n12fdff3fc248 (\"Add a dummy printk function for the maintenance of unused\nprintks\").\n\nWithout this, the following error is observed:\n\n  mm/nommu.c:41: error: conflicting types for \u0027no_printk\u0027\n  include/linux/kernel.h:314: error: previous definition of \u0027no_printk\u0027 was here\n\nReported-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5528f9132cf65d4d892bcbc5684c61e7822b21e9",
      "tree": "46ad9b7a106a42579b869b42bf237a663370a613",
      "parents": [
        "320b2b8de12698082609ebbc1a17165727f4c893"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 09:24:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 13 09:24:04 2010 -0700"
      },
      "message": "mm: fix missing page table unmap for stack guard page failure case\n\n.. which didn\u0027t show up in my tests because it\u0027s a no-op on x86-64 and\nmost other architectures.  But we enter the function with the last-level\npage table mapped, and should unmap it at exit.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "320b2b8de12698082609ebbc1a17165727f4c893",
      "tree": "bb62fe1ba3bb8bf68ff1fd44e613ece9c9581c36",
      "parents": [
        "2069601b3f0ea38170d4b509b89f3ca0a373bdc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 17:54:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 17:54:33 2010 -0700"
      },
      "message": "mm: keep a guard page below a grow-down stack segment\n\nThis is a rather minimally invasive patch to solve the problem of the\nuser stack growing into a memory mapped area below it.  Whenever we fill\nthe first page of the stack segment, expand the segment down by one\npage.\n\nNow, admittedly some odd application might _want_ the stack to grow down\ninto the preceding memory mapping, and so we may at some point need to\nmake this a process tunable (some people might also want to have more\nthan a single page of guarding), but let\u0027s try the minimal approach\nfirst.\n\nTested with trivial application that maps a single page just below the\nstack, and then starts recursing.  Without this, we will get a SIGSEGV\n_after_ the stack has smashed the mapping.  With this patch, we\u0027ll get a\nnice SIGBUS just as the stack touches the page just above the mapping.\n\nRequested-by: Keith Packard \u003ckeithp@keithp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1021a645344d4a77333e19e60d37b9343be0d7b7",
      "tree": "7a78ab55f27f97209ed1b85ccfd88c6d5b8416d3",
      "parents": [
        "7367f5b013fee33f7d40a5a10a39d5134f529ec8",
        "28957a5467bab9ed51a237d21e31055fad987887"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:15:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:15:10 2010 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6:\n  hugetlb: add missing unlock in avoidcopy path in hugetlb_cow()\n  hwpoison: rename CONFIG\n  HWPOISON, hugetlb: support hwpoison injection for hugepage\n  HWPOISON, hugetlb: detect hwpoison in hugetlb code\n  HWPOISON, hugetlb: isolate corrupted hugepage\n  HWPOISON, hugetlb: maintain mce_bad_pages in handling hugepage error\n  HWPOISON, hugetlb: set/clear PG_hwpoison bits on hugepage\n  HWPOISON, hugetlb: enable error handling path for hugepage\n  hugetlb, rmap: add reverse mapping for hugepage\n  hugetlb: move definition of is_vm_hugetlb_page() to hugepage_inline.h\n\nFix up trivial conflicts in mm/memory-failure.c\n"
    },
    {
      "commit": "26f0cf91813bdc8e61595f8ad6660251e2ee9cf6",
      "tree": "db129d45fba03e3e59392410d0f35ba7d3e438e6",
      "parents": [
        "d862b13bc8cbab9692fbe0ef44c40d0488b81af1",
        "fe96eb404e33b59bb39f7050205f7c56c1c7d686"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:09:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 09:09:41 2010 -0700"
      },
      "message": "Merge branch \u0027stable/xen-swiotlb-0.8.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen\n\n* \u0027stable/xen-swiotlb-0.8.6\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:\n  x86: Detect whether we should use Xen SWIOTLB.\n  pci-swiotlb-xen: Add glue code to setup dma_ops utilizing xen_swiotlb_* functions.\n  swiotlb-xen: SWIOTLB library for Xen PV guest with PCI passthrough.\n  xen/mmu: inhibit vmap aliases rather than trying to clear them out\n  vmap: add flag to allow lazy unmap to be disabled at runtime\n  xen: Add xen_create_contiguous_region\n  xen: Rename the balloon lock\n  xen: Allow unprivileged Xen domains to create iomap pages\n  xen: use _PAGE_IOMAP in ioremap to do machine mappings\n\nFix up trivial conflicts (adding both xen swiotlb and xen pci platform\ndriver setup close to each other) in drivers/xen/{Kconfig,Makefile} and\ninclude/xen/xen-ops.h\n"
    },
    {
      "commit": "1babe18385d3976043c04237ce837f3736197eb4",
      "tree": "c766bb0022ec5188cd7e991fc1f9ad51687e8aca",
      "parents": [
        "16c4042f08919f447d6b2a55679546c9b97c7264"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Aug 11 14:17:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:30 2010 -0700"
      },
      "message": "writeback: add comment to the dirty limit functions\n\nDocument global_dirty_limits() and bdi_dirty_limit().\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "16c4042f08919f447d6b2a55679546c9b97c7264",
      "tree": "0248b64d46237854ebe67efe8c742cb5878d8611",
      "parents": [
        "e50e37201ae2e7d6a52e87815759e6481f0bcfb9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Aug 11 14:17:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:29 2010 -0700"
      },
      "message": "writeback: avoid unnecessary calculation of bdi dirty thresholds\n\nSplit get_dirty_limits() into global_dirty_limits()+bdi_dirty_limit(), so\nthat the latter can be avoided when under global dirty background\nthreshold (which is the normal state for most systems).\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e50e37201ae2e7d6a52e87815759e6481f0bcfb9",
      "tree": "efb500382d5e9628351cb16286f579ad9bd455db",
      "parents": [
        "a292dfa01794477126d3f022559eb235edde00b0"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Aug 11 14:17:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:29 2010 -0700"
      },
      "message": "writeback: balance_dirty_pages(): reduce calls to global_page_state\n\nReducing the number of times balance_dirty_pages calls global_page_state\nreduces the cache references and so improves write performance on a\nvariety of workloads.\n\n\u0027perf stats\u0027 of simple fio write tests shows the reduction in cache\naccess.  Where the test is fio \u0027write,mmap,600Mb,pre_read\u0027 on AMD AthlonX2\nwith 3Gb memory (dirty_threshold approx 600 Mb) running each test 10\ntimes, dropping the fasted \u0026 slowest values then taking the average \u0026\nstandard deviation\n\n\t\taverage (s.d.) in millions (10^6)\n2.6.31-rc8\t648.6 (14.6)\n+patch\t\t620.1 (16.5)\n\nAchieving this reduction is by dropping clip_bdi_dirty_limit as it rereads\nthe counters to apply the dirty_threshold and moving this check up into\nbalance_dirty_pages where it has already read the counters.\n\nAlso by rearrange the for loop to only contain one copy of the limit tests\nallows the pdflush test after the loop to use the local copies of the\ncounters rather than rereading them.\n\nIn the common case with no throttling it now calls global_page_state 5\nfewer times and bdi_stat 2 fewer.\n\nFengguang:\n\nThis patch slightly changes behavior by replacing clip_bdi_dirty_limit()\nwith the explicit check (nr_reclaimable + nr_writeback \u003e\u003d dirty_thresh) to\navoid exceeding the dirty limit.  Since the bdi dirty limit is mostly\naccurate we don\u0027t need to do routinely clip.  A simple dirty limit check\nwould be enough.\n\nThe check is necessary because, in principle we should throttle everything\ncalling balance_dirty_pages() when we\u0027re over the total limit, as said by\nPeter.\n\nWe now set and clear dirty_exceeded not only based on bdi dirty limits,\nbut also on the global dirty limit.  The global limit check is added in\nplace of clip_bdi_dirty_limit() for safety and not intended as a behavior\nchange.  The bdi limits should be tight enough to keep all dirty pages\nunder the global limit at most time; occasional small exceeding should be\nOK though.  The change makes the logic more obvious: the global limit is\nthe ultimate goal and shall be always imposed.\n\nWe may now start background writeback work based on outdated conditions.\nThat\u0027s safe because the bdi flush thread will (and have to) double check\nthe states.  It reduces overall overheads because the test based on old\nstates still have good chance to be right.\n\n[akpm@linux-foundation.org] fix uninitialized dirty_exceeded\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3c111a071da260aa1e9cae3e882e2109c4e9bdfc",
      "tree": "27a830f9981dc1a9734a190d9890d4eddf0e6357",
      "parents": [
        "0a7992c90828a65281c3c9cf180be3b432d277b2"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed Aug 11 14:17:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 08:43:29 2010 -0700"
      },
      "message": "mm: fix fatal kernel-doc error\n\nFix a fatal kernel-doc error due to a #define coming between a function\u0027s\nkernel-doc notation and the function signature.  (kernel-doc cannot handle\nthis)\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "13d7e3a2dba6a79589ed34dc0b9114d7b5ff9eab",
      "tree": "b22db0b9ab3af864c7517ca38887048423194e41",
      "parents": [
        "00918b6ab89df8984ca06397cb77994dabd73f9b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: convert to use zone_to_nid() from bare zone-\u003ezone_pgdat-\u003enode_id\n\nWe have zone_to_nid().  this patch convert all existing users of\nzone-\u003ezone_pgdat-\u003enode_id.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "00918b6ab89df8984ca06397cb77994dabd73f9b",
      "tree": "2ca2f0f0e7f3ca235c254f05759f96f160e3c0ab",
      "parents": [
        "14fec79680f7cc4617d6ba69324e63d4a732986c"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: remove nid and zid argument from mem_cgroup_soft_limit_reclaim()\n\nmem_cgroup_soft_limit_reclaim() has zone, nid and zid argument.  but nid\nand zid can be calculated from zone.  So remove it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14fec79680f7cc4617d6ba69324e63d4a732986c",
      "tree": "f8a9b627a03d04ec7c76fb67f8ea66c81c57a92f",
      "parents": [
        "da280d636b83f0f5d92921c99ef5c7d7c3e751cc"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: mem_cgroup_shrink_node_zone() doesn\u0027t need sc.nodemask\n\nCurrently mem_cgroup_shrink_node_zone() call shrink_zone() directly.  thus\nit doesn\u0027t need to initialize sc.nodemask because shrink_zone() doesn\u0027t\nuse it at all.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da280d636b83f0f5d92921c99ef5c7d7c3e751cc",
      "tree": "8f64c4234031589b7818f3d90a1a9552016161ff",
      "parents": [
        "b8f5c5664d51776d74c84228c4b7165abfa92a18"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: kill unnecessary initialization in mem_cgroup_shrink_node_zone()\n\nsc.nr_reclaimed and sc.nr_scanned have already been initialized few lines\nabove \"struct scan_control sc \u003d {}\" statement.\n\nSo, This patch remove this unnecessary code.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8f5c5664d51776d74c84228c4b7165abfa92a18",
      "tree": "951e09e1810a356d8ecff7a85637e9c2e2f4e49d",
      "parents": [
        "f75ca962037ffd639a44fd88933cd9b84c4c4411"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: sc.nr_to_reclaim should be initialized\n\nCurrently, mem_cgroup_shrink_node_zone() initialize sc.nr_to_reclaim as 0.\n It mean shrink_zone() only scan 32 pages and immediately return even if\nit doesn\u0027t reclaim any pages.\n\nThis patch fixes it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Nishimura Daisuke \u003cd-nishimura@mtf.biglobe.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f75ca962037ffd639a44fd88933cd9b84c4c4411",
      "tree": "4773cd57ae45831c11783cd355f9dcb516eb66f0",
      "parents": [
        "158e0a2d1b3cffed8b46cbc56393a1394672ef79"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: avoid css_get()\n\nNow, memory cgroup increments css(cgroup subsys state)\u0027s reference count\nper a charged page.  And the reference count is kept until the page is\nuncharged.  But this has 2 bad effect.\n\n 1. Because css_get/put calls atomic_inc()/dec, heavy call of them\n    on large smp will not scale well.\n 2. Because css\u0027s refcnt cannot be in a state as \"ready-to-release\",\n    cgroup\u0027s notify_on_release handler can\u0027t work with memcg.\n 3. css\u0027s refcnt is atomic_t, it means smaller than 32bit. Maybe too small.\n\nThis has been a problem since the 1st merge of memcg.\n\nThis is a trial to remove css\u0027s refcnt per a page. Even if we remove\nrefcnt, pre_destroy() does enough synchronization as\n  - check res-\u003eusage \u003d\u003d 0.\n  - check no pages on LRU.\n\nThis patch removes css\u0027s refcnt per page.  Even after this patch, at the\n1st look, it seems css_get() is still called in try_charge().\n\nBut the logic is.\n\n  - If a memcg of mm-\u003eowner is cached one, consume_stock() will work.\n    At success, return immediately.\n  - If consume_stock returns false, css_get() is called and go to\n    slow path which may be blocked. At the end of slow path,\n    css_put() is called and restart from the start if necessary.\n\nSo, in the fast path, we don\u0027t call css_get() and can avoid access to\nshared counter. This patch can make the most possible case fast.\n\nHere is a result of multi-threaded page fault benchmark.\n\n[Before]\n    25.32%  multi-fault-all  [kernel.kallsyms]      [k] clear_page_c\n     9.30%  multi-fault-all  [kernel.kallsyms]      [k] _raw_spin_lock_irqsave\n     8.02%  multi-fault-all  [kernel.kallsyms]      [k] try_get_mem_cgroup_from_mm \u003c\u003d\u003d\u003d\u003d\u003d(*)\n     7.83%  multi-fault-all  [kernel.kallsyms]      [k] down_read_trylock\n     5.38%  multi-fault-all  [kernel.kallsyms]      [k] __css_put\n     5.29%  multi-fault-all  [kernel.kallsyms]      [k] __alloc_pages_nodemask\n     4.92%  multi-fault-all  [kernel.kallsyms]      [k] _raw_spin_lock_irq\n     4.24%  multi-fault-all  [kernel.kallsyms]      [k] up_read\n     3.53%  multi-fault-all  [kernel.kallsyms]      [k] css_put\n     2.11%  multi-fault-all  [kernel.kallsyms]      [k] handle_mm_fault\n     1.76%  multi-fault-all  [kernel.kallsyms]      [k] __rmqueue\n     1.64%  multi-fault-all  [kernel.kallsyms]      [k] __mem_cgroup_commit_charge\n\n[After]\n    28.41%  multi-fault-all  [kernel.kallsyms]      [k] clear_page_c\n    10.08%  multi-fault-all  [kernel.kallsyms]      [k] _raw_spin_lock_irq\n     9.58%  multi-fault-all  [kernel.kallsyms]      [k] down_read_trylock\n     9.38%  multi-fault-all  [kernel.kallsyms]      [k] _raw_spin_lock_irqsave\n     5.86%  multi-fault-all  [kernel.kallsyms]      [k] __alloc_pages_nodemask\n     5.65%  multi-fault-all  [kernel.kallsyms]      [k] up_read\n     2.82%  multi-fault-all  [kernel.kallsyms]      [k] handle_mm_fault\n     2.64%  multi-fault-all  [kernel.kallsyms]      [k] mem_cgroup_add_lru_list\n     2.48%  multi-fault-all  [kernel.kallsyms]      [k] __mem_cgroup_commit_charge\n\nThen, 8.02% of try_get_mem_cgroup_from_mm() disappears because this patch\nremoves css_tryget() in it. (But yes, this is an extreme case.)\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "158e0a2d1b3cffed8b46cbc56393a1394672ef79",
      "tree": "a044d53137609fdfc8c1afdde366b3e205c96eda",
      "parents": [
        "73045c47b6facbdf4656e6763c8cb469de4337e2"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Aug 10 18:03:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: use find_lock_task_mm() in memory cgroups oom\n\nWhen the OOM killer scans task, it check a task is under memcg or\nnot when it\u0027s called via memcg\u0027s context.\n\nBut, as Oleg pointed out, a thread group leader may have NULL -\u003emm\nand task_in_mem_cgroup() may do wrong decision. We have to use\nfind_lock_task_mm() in memcg as generic OOM-Killer does.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\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": "73045c47b6facbdf4656e6763c8cb469de4337e2",
      "tree": "e791667803261eb9ae5325dcd8c70acefeee9196",
      "parents": [
        "bd0d24bfe8a8f8d2400569740874a67d164d40a9"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Tue Aug 10 18:02:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:19 2010 -0700"
      },
      "message": "memcg: remove mem from arg of charge_common\n\nmem_cgroup_charge_common() is always called with @mem \u003d NULL, so it\u0027s\nmeaningless.  This patch removes it.\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd0d24bfe8a8f8d2400569740874a67d164d40a9",
      "tree": "9d592f6566adacc3e8da3d2c06411a16b2d45763",
      "parents": [
        "2bd9bb206b338888b226e70139a25a67d10007f0"
      ],
      "author": {
        "name": "Daisuke Nishimura",
        "email": "nishimura@mxp.nes.nec.co.jp",
        "time": "Tue Aug 10 18:02:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "memcg: remove redundant code\n\n- try_get_mem_cgroup_from_mm() calls rcu_read_lock/unlock by itself, so we\n  don\u0027t have to call them in task_in_mem_cgroup().\n- *mz is not used in __mem_cgroup_uncharge_common().\n- we don\u0027t have to call lookup_page_cgroup() in mem_cgroup_end_migration()\n  after we\u0027ve cleared PCG_MIGRATION of @oldpage.\n- remove empty comment.\n- remove redundant empty line in mem_cgroup_cache_charge().\n\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2bd9bb206b338888b226e70139a25a67d10007f0",
      "tree": "ac556b1bfa52f06fe2998371d10edec38d5cf2a9",
      "parents": [
        "4b53433468c87794b523e4683fbd4e8e8aca1f63"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Aug 10 18:02:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "memcg: clean up waiting move acct\n\nNow, for checking a memcg is under task-account-moving, we do css_tryget()\nagainst mc.to and mc.from.  But this is just complicating things.  This\npatch makes the check easier.\n\nThis patch adds a spinlock to move_charge_struct and guard modification of\nmc.to and mc.from.  By this, we don\u0027t have to think about complicated\nraces arount this not-critical path.\n\n[balbir@linux.vnet.ibm.com: don\u0027t crash on a null memcg being passed]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.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": "4b53433468c87794b523e4683fbd4e8e8aca1f63",
      "tree": "08f80fd5ec5d824a28aa4e0b15c7e2e83eed9fec",
      "parents": [
        "65e0e811667dedd4f19b268df9d856ecacb629de"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Aug 10 18:02:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 11 08:59:18 2010 -0700"
      },
      "message": "memcg: clean up try_charge main loop\n\nmem_cgroup_try_charge() has a big loop in it and seems to be hard to read.\n Most of routines are for slow path.  This patch moves codes out from the\nloop and make it clear what\u0027s done.\n\nSummary:\n - refactoring a function to detect a memcg is under acccount move or not.\n - refactoring a function to wait for the end of moving task acct.\n - refactoring a main loop(\u0027s slow path) as a function and make it clear\n   why we retry or quit by return code.\n - add fatal_signal_pending() check for bypassing charge loops.\n\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": "28957a5467bab9ed51a237d21e31055fad987887",
      "tree": "1bc0a2bee4744516fb9874e36bbd7eb6cd9020b3",
      "parents": [
        "e3390f67a7267daa227380b6f1bbf13c7ddd4aff"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri Jul 02 14:47:20 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:23:48 2010 +0200"
      },
      "message": "hugetlb: add missing unlock in avoidcopy path in hugetlb_cow()\n\nThis patch fixes possible deadlock in hugepage lock_page()\nby adding missing unlock_page().\n\nlibhugetlbfs test will hit this bug when the next patch in this\npatchset (\"hugetlb, HWPOISON: move PG_HWPoison bit check\") is applied.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "e3390f67a7267daa227380b6f1bbf13c7ddd4aff",
      "tree": "7f0285b20cc844b9ea403d5d1278a9643a1baec5",
      "parents": [
        "43131e141abdb44c487cf79af3ef1fe5164dcef9"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Tue Jun 15 13:18:13 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:23:22 2010 +0200"
      },
      "message": "hwpoison: rename CONFIG\n\nCONFIG_HUGETLBFS controls hugetlbfs interface code.\nOTOH, CONFIG_HUGETLB_PAGE controls hugepage management code.\nSo we should use CONFIG_HUGETLB_PAGE here.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "43131e141abdb44c487cf79af3ef1fe5164dcef9",
      "tree": "374312457143abd52f1c4b0dbada363f5a69ba55",
      "parents": [
        "fd6a03edd271cf2d69a61aa8df98dd05fa6b9afd"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:22 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:23:11 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: support hwpoison injection for hugepage\n\nThis patch enables hwpoison injection through debug/hwpoison interfaces,\nwith which we can test memory error handling for free or reserved\nhugepages (which cannot be tested by madvise() injector).\n\n[AK: Export PageHuge too for the injection module]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "fd6a03edd271cf2d69a61aa8df98dd05fa6b9afd",
      "tree": "32d3e89f1f66a3d9b68bccc88fec548acc361bf5",
      "parents": [
        "93f70f900da36fbc19c13c2aa04b2e468c8d00fb"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:21 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:23:01 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: detect hwpoison in hugetlb code\n\nThis patch enables to block access to hwpoisoned hugepage and\nalso enables to block unmapping for it.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "93f70f900da36fbc19c13c2aa04b2e468c8d00fb",
      "tree": "7868f891bca0ed18c9806771a68feac0b4010517",
      "parents": [
        "c9fbdd5f131440981b124883656ea21fb12cde4a"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:20 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:46 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: isolate corrupted hugepage\n\nIf error hugepage is not in-use, we can fully recovery from error\nby dequeuing it from freelist, so return RECOVERY.\nOtherwise whether or not we can recovery depends on user processes,\nso return DELAYED.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "c9fbdd5f131440981b124883656ea21fb12cde4a",
      "tree": "72de1cb1bb49525fca9e3f77678db9c77b94d912",
      "parents": [
        "7013febc8940960eaaba039bac0f80910f679ce1"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:19 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:32 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: maintain mce_bad_pages in handling hugepage error\n\nFor now all pages in the error hugepage are considered as hwpoisoned,\nso count all of them in mce_bad_pages.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "7013febc8940960eaaba039bac0f80910f679ce1",
      "tree": "27a61a69ae8c1df5149ba9ac98cc573e8bf19b95",
      "parents": [
        "7af446a841a264a1a9675001005b29ce01d1fc57"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:18 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:12 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: set/clear PG_hwpoison bits on hugepage\n\nTo avoid race condition between concurrent memory errors on identified\nhugepage, we atomically test and set PG_hwpoison bit on the head page.\nAll pages in the error hugepage are considered as hwpoisoned\nfor now, so set and clear all PG_hwpoison bits in the hugepage\nwith page lock of the head page held.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "7af446a841a264a1a9675001005b29ce01d1fc57",
      "tree": "902fec55a889d33771f267fc6242b1de43d9d0c6",
      "parents": [
        "0fe6e20b9c4c53b3e97096ee73a0857f60aad43f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:17 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:21:36 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: enable error handling path for hugepage\n\nThis patch just enables handling path. Real containing and\nrecovering operation will be implemented in following patches.\n\nDependency:\n  \"hugetlb, rmap: add reverse mapping for hugepage.\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "0fe6e20b9c4c53b3e97096ee73a0857f60aad43f",
      "tree": "3014636f2ed66fdebecb6f6bab338b39c3543a07",
      "parents": [
        "8edf344c66a3f214d709dad1421c29d678915b3f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:16 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:21:15 2010 +0200"
      },
      "message": "hugetlb, rmap: add reverse mapping for hugepage\n\nThis patch adds reverse mapping feature for hugepage by introducing\nmapcount for shared/private-mapped hugepage and anon_vma for\nprivate-mapped hugepage.\n\nWhile hugepage is not currently swappable, reverse mapping can be useful\nfor memory error handler.\n\nWithout this patch, memory error handler cannot identify processes\nusing the bad hugepage nor unmap it from them. That is:\n- for shared hugepage:\n  we can collect processes using a hugepage through pagecache,\n  but can not unmap the hugepage because of the lack of mapcount.\n- for privately mapped hugepage:\n  we can neither collect processes nor unmap the hugepage.\nThis patch solves these problems.\n\nThis patch include the bug fix given by commit 23be7468e8, so reverts it.\n\nDependency:\n  \"hugetlb: move definition of is_vm_hugetlb_page() to hugepage_inline.h\"\n\nChangeLog since May 24.\n- create hugetlb_inline.h and move is_vm_hugetlb_index() in it.\n- move functions setting up anon_vma for hugepage into mm/rmap.c.\n\nChangeLog since May 13.\n- rebased to 2.6.34\n- fix logic error (in case that private mapping and shared mapping coexist)\n- move is_vm_hugetlb_page() into include/linux/mm.h to use this function\n  from linear_page_index()\n- define and use linear_hugepage_index() instead of compound_order()\n- use page_move_anon_rmap() in hugetlb_cow()\n- copy exclusive switch of __set_page_anon_rmap() into hugepage counterpart.\n- revert commit 24be7468 completely\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "2f9e825d3e0e2b407ae8f082de5c00afcf7378fb",
      "tree": "f8b3ee40674ce4acd5508a0a0bf52a30904caf6c",
      "parents": [
        "7ae0dea900b027cd90e8a3e14deca9a19e17638b",
        "de75d60d5ea235e6e09f4962ab22541ce0fe176a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 15:22:42 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.36\u0027 of git://git.kernel.dk/linux-2.6-block: (149 commits)\n  block: make sure that REQ_* types are seen even with CONFIG_BLOCK\u003dn\n  xen-blkfront: fix missing out label\n  blkdev: fix blkdev_issue_zeroout return value\n  block: update request stacking methods to support discards\n  block: fix missing export of blk_types.h\n  writeback: fix bad _bh spinlock nesting\n  drbd: revert \"delay probes\", feature is being re-implemented differently\n  drbd: Initialize all members of sync_conf to their defaults [Bugz 315]\n  drbd: Disable delay probes for the upcomming release\n  writeback: cleanup bdi_register\n  writeback: add new tracepoints\n  writeback: remove unnecessary init_timer call\n  writeback: optimize periodic bdi thread wakeups\n  writeback: prevent unnecessary bdi threads wakeups\n  writeback: move bdi threads exiting logic to the forker thread\n  writeback: restructure bdi forker loop a little\n  writeback: move last_active to bdi\n  writeback: do not remove bdi from bdi_list\n  writeback: simplify bdi code a little\n  writeback: do not lose wake-ups in bdi threads\n  ...\n\nFixed up pretty trivial conflicts in drivers/block/virtio_blk.c and\ndrivers/scsi/scsi_error.c as per Jens.\n"
    },
    {
      "commit": "4c619407b0439c59c20398b9459020c0d297f424",
      "tree": "17d5401aebd5fe00a4878353353e29fc8c569b89",
      "parents": [
        "26b55633a891a28bf04f42882de145eb8e9cb9ad",
        "145b64b9588c123d2bd00981c5ce8e03215ed2ee"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 13:58:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 13:58:11 2010 -0700"
      },
      "message": "Merge branch \u0027kmemleak\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm\n\n* \u0027kmemleak\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-2.6-cm:\n  kmemleak: Fix typo in the comment\n  lib/scatterlist: Hook sg_kmalloc into kmemleak (v2)\n  kmemleak: Add DocBook style comments to kmemleak.c\n  kmemleak: Introduce a default off mode for kmemleak\n  kmemleak: Show more information for objects found by alias\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "1989425a3aed215f1accd5d8019b18b345166a63",
      "tree": "edf01f8cddce137588a501d74eedb43e98911c62",
      "parents": [
        "0fc2f137226eff4c9dd90864dda5c237474c3ec5",
        "e32e78c5ee8aadef020fbaecbe6fb741ed9029fd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 21:02:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 21:02:42 2010 -0700"
      },
      "message": "Merge branch \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc\n\n* \u0027merge\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:\n  powerpc: fix build with make 3.82\n  Revert \"Input: appletouch - fix integer overflow issue\"\n  memblock: Fix memblock_is_region_reserved() to return a boolean\n  powerpc: Trim defconfigs\n  powerpc: fix i8042 module build error\n  sound/soc: mpc5200_psc_ac97: Use gpio pins for cold reset\n  powerpc/5200: add mpc5200_psc_ac97_gpio_reset\n"
    },
    {
      "commit": "d2997b1042ec150616c1963b5e5e919ffd0b0ebf",
      "tree": "c970746ad3d5c3e0ccbd1695d07144dbe4534ec4",
      "parents": [
        "966cca029f739716fbcc8068b8c6dfe381f86fc3"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Aug 09 17:20:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "hibernation: freeze swap at hibernation\n\nWhen taking a memory snapshot in hibernate_snapshot(), all (directly\ncalled) memory allocations use GFP_ATOMIC.  Hence swap misusage during\nhibernation never occurs.\n\nBut from a pessimistic point of view, there is no guarantee that no page\nallcation has __GFP_WAIT.  It is better to have a global indication \"we\nenter hibernation, don\u0027t use swap!\".\n\nThis patch tries to freeze new-swap-allocation during hibernation.  (All\nuser processes are frozenm so swapin is not a concern).\n\nThis way, no updates will happen to swap_map[] between\nhibernate_snapshot() and save_image().  Swap is thawed when swsusp_free()\nis called.  We can be assured that swap corruption will not occur.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "966cca029f739716fbcc8068b8c6dfe381f86fc3",
      "tree": "838686762076c262c425e3dc09d0cda4e9e5e83d",
      "parents": [
        "979f867191f80e74713394cf8c0a3c1b3662b648"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Mon Aug 09 17:20:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:04 2010 -0700"
      },
      "message": "mm: fix corruption of hibernation caused by reusing swap during image saving\n\nSince 2.6.31, swap_map[]\u0027s refcounting was changed to show that a used\nswap entry is just for swap-cache, can be reused.  Then, while scanning\nfree entry in swap_map[], a swap entry may be able to be reclaimed and\nreused.  It was caused by commit c9e444103b5e7a5 (\"mm: reuse unused swap\nentry if necessary\").\n\nBut this caused deta corruption at resume. The scenario is\n\n- Assume a clean-swap cache, but mapped.\n\n- at hibernation_snapshot[], clean-swap-cache is saved as\n  clean-swap-cache and swap_map[] is marked as SWAP_HAS_CACHE.\n\n- then, save_image() is called.  And reuse SWAP_HAS_CACHE entry to save\n  image, and break the contents.\n\nAfter resume:\n\n- the memory reclaim runs and finds clean-not-referenced-swap-cache and\n  discards it because it\u0027s marked as clean.  But here, the contents on\n  disk and swap-cache is inconsistent.\n\nHance memory is corrupted.\n\nThis patch avoids the bug by not reclaiming swap-entry during hibernation.\nThis is a quick fix for backporting.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nReported-by: Ondreg Zary \u003clinux@rainbow-software.org\u003e\nTested-by: Ondreg Zary \u003clinux@rainbow-software.org\u003e\nTested-by: Andrea Gelmini \u003candrea.gelmini@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@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": "d9f8984c2c23b91e202a764fe4b15041a29a201a",
      "tree": "d211f4ee42c5c0859f30d26296d053aac8df3657",
      "parents": [
        "e31f3698cd3499e676f6b0ea12e3528f569c4fa3"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Aug 09 17:20:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "ksm: cleanup for mm_slots_hash\n\nUse compile-allocated memory instead of dynamic allocated memory for\nmm_slots_hash.\n\nUse hash_ptr() instead divisions for bucket calculation.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "e31f3698cd3499e676f6b0ea12e3528f569c4fa3",
      "tree": "0133cc0e11384c7293bdf0812ee04996a02c8826",
      "parents": [
        "51980ac9e72fb5f22c81b7798d65b691125d70ee"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Aug 09 17:20:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "vmscan: raise the bar to PAGEOUT_IO_SYNC stalls\n\nFix \"system goes unresponsive under memory pressure and lots of\ndirty/writeback pages\" bug.\n\n\thttp://lkml.org/lkml/2010/4/4/86\n\nIn the above thread, Andreas Mohr described that\n\n\tInvoking any command locked up for minutes (note that I\u0027m\n\ttalking about attempted additional I/O to the _other_,\n\t_unaffected_ main system HDD - such as loading some shell\n\tbinaries -, NOT the external SSD18M!!).\n\nThis happens when the two conditions are both meet:\n- under memory pressure\n- writing heavily to a slow device\n\nOOM also happens in Andreas\u0027 system.  The OOM trace shows that 3 processes\nare stuck in wait_on_page_writeback() in the direct reclaim path.  One in\ndo_fork() and the other two in unix_stream_sendmsg().  They are blocked on\nthis condition:\n\n\t(sc-\u003eorder \u0026\u0026 priority \u003c DEF_PRIORITY - 2)\n\nwhich was introduced in commit 78dc583d (vmscan: low order lumpy reclaim\nalso should use PAGEOUT_IO_SYNC) one year ago.  That condition may be too\npermissive.  In Andreas\u0027 case, 512MB/1024 \u003d 512KB.  If the direct reclaim\nfor the order-1 fork() allocation runs into a range of 512KB\nhard-to-reclaim LRU pages, it will be stalled.\n\nIt\u0027s a severe problem in three ways.\n\nFirstly, it can easily happen in daily desktop usage.  vmscan priority can\neasily go below (DEF_PRIORITY - 2) on _local_ memory pressure.  Even if\nthe system has 50% globally reclaimable pages, it still has good\nopportunity to have 0.1% sized hard-to-reclaim ranges.  For example, a\nsimple dd can easily create a big range (up to 20%) of dirty pages in the\nLRU lists.  And order-1 to order-3 allocations are more than common with\nSLUB.  Try \"grep -v \u00271 :\u0027 /proc/slabinfo\" to get the list of high order\nslab caches.  For example, the order-1 radix_tree_node slab cache may\nstall applications at swap-in time; the order-3 inode cache on most\nfilesystems may stall applications when trying to read some file; the\norder-2 proc_inode_cache may stall applications when trying to open a\n/proc file.\n\nSecondly, once triggered, it will stall unrelated processes (not doing IO\nat all) in the system.  This \"one slow USB device stalls the whole system\"\navalanching effect is very bad.\n\nThirdly, once stalled, the stall time could be intolerable long for the\nusers.  When there are 20MB queued writeback pages and USB 1.1 is writing\nthem in 1MB/s, wait_on_page_writeback() will stuck for up to 20 seconds.\nNot to mention it may be called multiple times.\n\nSo raise the bar to only enable PAGEOUT_IO_SYNC when priority goes below\nDEF_PRIORITY/3, or 6.25% LRU size.  As the default dirty throttle ratio is\n20%, it will hardly be triggered by pure dirty pages.  We\u0027d better treat\nPAGEOUT_IO_SYNC as some last resort workaround -- its stall time is so\nuncomfortably long (easily goes beyond 1s).\n\nThe bar is only raised for (order \u003c PAGE_ALLOC_COSTLY_ORDER) allocations,\nwhich are easy to satisfy in 1TB memory boxes.  So, although 6.25% of\nmemory could be an awful lot of pages to scan on a system with 1TB of\nmemory, it won\u0027t really have to busy scan that much.\n\nAndreas tested an older version of this patch and reported that it mostly\nfixed his problem.  Mel Gorman helped improve it and KOSAKI Motohiro will\nfix it further in the next patch.\n\nReported-by: Andreas Mohr \u003candi@lisas.de\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.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": "51980ac9e72fb5f22c81b7798d65b691125d70ee",
      "tree": "fc12938848882bd76f7420f28d723056d9e5518e",
      "parents": [
        "cc8e970c3ce4d98afa8eb02dbd2526ce57f7611a"
      ],
      "author": {
        "name": "Kulikov Vasiliy",
        "email": "segooon@gmail.com",
        "time": "Mon Aug 09 17:19:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "mm/vmalloc.c: check kmalloc() return value\n\nkmalloc() may fail, if so return -ENOMEM.\n\nSigned-off-by: Kulikov Vasiliy \u003csegooon@gmail.com\u003e\nAcked-by: 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": "cc8e970c3ce4d98afa8eb02dbd2526ce57f7611a",
      "tree": "621ce988444b6df6eb67058b05ca5ddef23f6103",
      "parents": [
        "e17613c39b8894c164df782d0508c27ca559c24b"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "memcg: add mm_vmscan_memcg_isolate tracepoint\n\nMemcg also need to trace page isolation information as global reclaim.\nThis patch does it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bdce6d9ebf52c1f6c23163d1a33320ce7c007f73",
      "tree": "6070de94cdece474e277d8878721421671e212eb",
      "parents": [
        "cf4dcc3e9b374e1b61a7c22faf868707ce78d6a9"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "memcg, vmscan: add memcg reclaim tracepoint\n\nMemcg also need to trace reclaim progress as direct reclaim.  This patch\nadd it.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4dc4b3d971b23e12d483ba9f3b93b648c54b298a",
      "tree": "845cc8debe146f683510841982323c338eb10000",
      "parents": [
        "57250a5bf0f6ff68dc339572adbd881a11f366fa"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:45:03 2010 -0700"
      },
      "message": "vmscan: shrink_slab() requires the number of lru_pages, not the page order\n\nPresently shrink_slab() has the following scanning equation.\n\n                            lru_scanned        max_pass\n  basic_scan_objects \u003d 4 x -------------  x -----------------------------\n                            lru_pages        shrinker-\u003eseeks (default:2)\n\n  scan_objects \u003d min(basic_scan_objects, max_pass * 2)\n\nIf we pass very small value as lru_pages instead real number of lru pages,\nshrink_slab() drop much objects rather than necessary.  And now,\n__zone_reclaim() pass \u0027order\u0027 as lru_pages by mistake.  That produces a\nbad result.\n\nFor example, if we receive very low memory pressure (scan \u003d 32, order \u003d\n0), shrink_slab() via zone_reclaim() always drop _all_ icache/dcache\nobjects.  (see above equation, very small lru_pages make very big\nscan_objects result).\n\nThis patch fixes it.\n\n[akpm@linux-foundation.org: fix layout, typos]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Rik van Riel \u003criel@redhat.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"
    }
  ],
  "next": "57250a5bf0f6ff68dc339572adbd881a11f366fa"
}
