)]}'
{
  "log": [
    {
      "commit": "1bfe5febe34d2be2120803c10720e179186357c9",
      "tree": "d4d8b1dacc375a1004ab1ed508333bc33e46d9a9",
      "parents": [
        "4fd466eb46a6a917c317a87fb94bfc7252a0f7ed"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: add an interface to switch off/on all the page filters\n\nIn some use cases, user doesn\u0027t need extra filtering. E.g. user program\ncan inject errors through madvise syscall to its own pages, however it\nmight not know what the page state exactly is or which inode the page\nbelongs to.\n\nSo introduce an one-off interface \"corrupt-filter-enable\".\n\nEcho 0 to switch off page filters, and echo 1 to switch on the filters.\n[AK: changed default to 0]\n\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "4fd466eb46a6a917c317a87fb94bfc7252a0f7ed",
      "tree": "003b28724241a22a41dc9ae067f30beadbf76e6a",
      "parents": [
        "d324236b3333e87c8825b35f2104184734020d35"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: add memory cgroup filter\n\nThe hwpoison test suite need to inject hwpoison to a collection of\nselected task pages, and must not touch pages not owned by them and\nthus kill important system processes such as init. (But it\u0027s OK to\nmis-hwpoison free/unowned pages as well as shared clean pages.\nMis-hwpoison of shared dirty pages will kill all tasks, so the test\nsuite will target all or non of such tasks in the first place.)\n\nThe memory cgroup serves this purpose well. We can put the target\nprocesses under the control of a memory cgroup, and tell the hwpoison\ninjection code to only kill pages associated with some active memory\ncgroup.\n\nThe prerequisite for doing hwpoison stress tests with mem_cgroup is,\nthe mem_cgroup code tracks task pages _accurately_ (unless page is\nlocked).  Which we believe is/should be true.\n\nThe benefits are simplification of hwpoison injector code. Also the\nmem_cgroup code will automatically be tested by hwpoison test cases.\n\nThe alternative interfaces pin-pfn/unpin-pfn can also delegate the\n(process and page flags) filtering functions reliably to user space.\nHowever prototype implementation shows that this scheme adds more\ncomplexity than we wanted.\n\nExample test case:\n\n\tmkdir /cgroup/hwpoison\n\n\tusemem -m 100 -s 1000 \u0026\n\techo `jobs -p` \u003e /cgroup/hwpoison/tasks\n\n\tmemcg_ino\u003d$(ls -id /cgroup/hwpoison | cut -f1 -d\u0027 \u0027)\n\techo $memcg_ino \u003e /debug/hwpoison/corrupt-filter-memcg\n\n\tpage-types -p `pidof init`   --hwpoison  # shall do nothing\n\tpage-types -p `pidof usemem` --hwpoison  # poison its pages\n\n[AK: Fix documentation]\n[Add fix for problem noticed by Li Zefan \u003clizf@cn.fujitsu.com\u003e;\ndentry in the css could be NULL]\n\nCC: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCC: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCC: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCC: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCC: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCC: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCC: Paul Menage \u003cmenage@google.com\u003e\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nCC: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "478c5ffc0b50527bd2390f2daa46cc16276b8413",
      "tree": "f58f5be9760fd0e81567611cf6e9f9bc77d1d3cd",
      "parents": [
        "1a9b5b7fe0c5dad8a635288882d36785dea742f9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: add page flags filter\n\nWhen specified, only poison pages if ((page_flags \u0026 mask) \u003d\u003d value).\n\n-       corrupt-filter-flags-mask\n-       corrupt-filter-flags-value\n\nThis allows stress testing of many kinds of pages.\n\nStrictly speaking, the buddy pages requires taking zone lock, to avoid\nsetting PG_hwpoison on a \"was buddy but now allocated to someone\" page.\nHowever we can just do nothing because we set PG_locked in the beginning,\nthis prevents the page allocator from allocating it to someone. (It will\nBUG() on the unexpected PG_locked, which is fine for hwpoison testing.)\n\n[AK: Add select PROC_PAGE_MONITOR to satisfy dependency]\n\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "31d3d3484f9bd263925ecaa341500ac2df3a5d9b",
      "tree": "38f331f27f3b4bc537303fc90490b88d53e43710",
      "parents": [
        "7c116f2b0dbac4a1dd051c7a5e8cef37701cafd4"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: limit hwpoison injector to known page types\n\n__memory_failure()\u0027s workflow is\n\n\tset PG_hwpoison\n\t//...\n\tunset PG_hwpoison if didn\u0027t pass hwpoison filter\n\nThat could kill unrelated process if it happens to page fault on the\npage with the (temporary) PG_hwpoison. The race should be big enough to\nappear in stress tests.\n\nFix it by grabbing the page and checking filter at inject time.  This\nalso avoids the very noisy \"Injecting memory failure...\" messages.\n\n- we don\u0027t touch madvise() based injection, because the filters are\n  generally not necessary for it.\n- if we want to apply the filters to h/w aided injection, we\u0027d better to\n  rearrange the logic in __memory_failure() instead of this patch.\n\nAK: fix documentation, use drain all, cleanups\n\nCC: Haicheng Li \u003chaicheng.li@intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "7c116f2b0dbac4a1dd051c7a5e8cef37701cafd4",
      "tree": "ac7f1e56551df46bc79e400a182a57f4eae5ddaf",
      "parents": [
        "138ce286eb6ee6d39ca4fb50516e93adaf6b605f"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: add fs/device filters\n\nFilesystem data/metadata present the most tricky-to-isolate pages.\nIt requires careful code review and stress testing to get them right.\n\nThe fs/device filter helps to target the stress tests to some specific\nfilesystem pages. The filter condition is block device\u0027s major/minor\nnumbers:\n        - corrupt-filter-dev-major\n        - corrupt-filter-dev-minor\nWhen specified (non -1), only page cache pages that belong to that\ndevice will be poisoned.\n\nThe filters are checked reliably on the locked and refcounted page.\n\nHaicheng: clear PG_hwpoison and drop bad page count if filter not OK\nAK: Add documentation\n\nCC: Haicheng Li \u003chaicheng.li@intel.com\u003e\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "8d22ba1b74aa9420b6032d856446564fb21f8090",
      "tree": "6c2e2d27e81d784faa0481500f1cecc613ff1167",
      "parents": [
        "95d01fc664b9476e0d18e3d745bb209a42a33588"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Dec 16 12:19:58 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:58 2009 +0100"
      },
      "message": "HWPOISON: detect free buddy pages explicitly\n\nMost free pages in the buddy system have no PG_buddy set.\nIntroduce is_free_buddy_page() for detecting them reliably.\n\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nCC: Mel Gorman \u003cmel@linux.vnet.ibm.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "418b27ef50e7e9b0c2fbd88db804bf065e5eb1a6",
      "tree": "24a4354bfa3bda6c763b859c235669c939c97ce4",
      "parents": [
        "4eb2b1dcd598f8489130405c81c60c289896d92a"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Mon Dec 14 17:59:54 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:23 2009 -0800"
      },
      "message": "mm: remove unevictable_migrate_page function\n\nunevictable_migrate_page() in mm/internal.h is a relic of the since\nremoved UNEVICTABLE_LRU Kconfig option.  This patch removes the function\nand open codes the test in migrate_page_copy().\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "73848b4684e84a84cfd1555af78d41158f31e16b",
      "tree": "b71ba30e2b20cbc45740a38e9b5aa51b8c2ea60e",
      "parents": [
        "08beca44dfb0ab008e365163df70dbd302ae1508"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Dec 14 17:59:22 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:19 2009 -0800"
      },
      "message": "ksm: fix mlockfreed to munlocked\n\nWhen KSM merges an mlocked page, it has been forgetting to munlock it:\nthat\u0027s been left to free_page_mlock(), which reports it in /proc/vmstat as\nunevictable_pgs_mlockfreed instead of unevictable_pgs_munlocked (and\nwhinges \"Page flag mlocked set for process\" in mmotm, whereas mainline is\nsilently forgiving).  Call munlock_vma_page() to fix that.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Chris Wright \u003cchrisw@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@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": "af8e3354b4bbd1ee5a3a55d11a5e1fe37e77f0ba",
      "tree": "8dc0ece80878d00409d4662c5fd1e28cd7fbbdd8",
      "parents": [
        "53f79acb6ecb648afd63e0f13deba167f1a934df"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Dec 14 17:58:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:17 2009 -0800"
      },
      "message": "mm: CONFIG_MMU for PG_mlocked\n\nRemove three degrees of obfuscation, left over from when we had\nCONFIG_UNEVICTABLE_LRU.  MLOCK_PAGES is CONFIG_HAVE_MLOCKED_PAGE_BIT is\nCONFIG_HAVE_MLOCK is CONFIG_MMU.  rmap.o (and memory-failure.o) are only\nbuilt when CONFIG_MMU, so don\u0027t need such conditions at all.\n\nSomehow, I feel no compulsion to remove the CONFIG_HAVE_MLOCK* lines from\n169 defconfigs: leave those to evolve in due course.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: 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": "03f6462a3ae78f36eb1f0ee8b4d5ae2f7859c1d5",
      "tree": "bf19c5019705796e90ef592233aca5f09025a92f",
      "parents": [
        "62eede62dafb4a6633eae7ffbeb34c60dba5e7b1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:41 2009 -0700"
      },
      "message": "mm: move highest_memmap_pfn\n\nMove highest_memmap_pfn __read_mostly from page_alloc.c next to zero_pfn\n__read_mostly in memory.c: to help them share a cacheline, since they\u0027re\nvery often tested together in vm_normal_page().\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: 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": "58fa879e1e640a1856f736b418984ebeccee1c95",
      "tree": "dc37bce8379e29c46e79f105cc71d137b14965cf",
      "parents": [
        "a13ea5b759645a0779edc6dbfec9abfd83220844"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: FOLL flags for GUP flags\n\n__get_user_pages() has been taking its own GUP flags, then processing\nthem into FOLL flags for follow_page().  Though oddly named, the FOLL\nflags are more widely used, so pass them to __get_user_pages() now.\nSorry, VM flags, VM_FAULT flags and FAULT_FLAGs are still distinct.\n\n(The patch to __get_user_pages() looks peculiar, with both gup_flags\nand foll_flags: the gup_flags remain constant; but as before there\u0027s\nan exceptional case, out of scope of the patch, in which foll_flags\nper page have FOLL_WRITE masked off.)\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: 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": "8e4b9a60718970bbc02dfd3abd0b956ab65af231",
      "tree": "4c19152cea19882071a74f92c0cf6a16d5711f41",
      "parents": [
        "f3e8fccd06d27773186a0094371daf2d84c79469"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: FOLL_DUMP replace FOLL_ANON\n\nThe \"FOLL_ANON optimization\" and its use_zero_page() test have caused\nconfusion and bugs: why does it test VM_SHARED? for the very good but\nunsatisfying reason that VMware crashed without.  As we look to maybe\nreinstating anonymous use of the ZERO_PAGE, we need to sort this out.\n\nEasily done: it\u0027s silly for __get_user_pages() and follow_page() to\nbe guessing whether it\u0027s safe to assume that they\u0027re being used for\na coredump (which can take a shortcut snapshot where other uses must\nhandle a fault) - just tell them with GUP_FLAGS_DUMP and FOLL_DUMP.\n\nget_dump_page() doesn\u0027t even want a ZERO_PAGE: an error suits fine.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: 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\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1c3aff1ceec2cc86810e2690e67873ff0c505862",
      "tree": "bf2f1badfd3f8859299f00c8a95c0a11e5cfa778",
      "parents": [
        "408e82b78bcc9f1b47c76e833c3df97f675947de"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: remove unused GUP flags\n\nGUP_FLAGS_IGNORE_VMA_PERMISSIONS and GUP_FLAGS_IGNORE_SIGKILL were\nflags added solely to prevent __get_user_pages() from doing some of\nwhat it usually does, in the munlock case: we can now remove them.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: 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": "fa5e084e43eb14c14942027e1e2e894aeed96097",
      "tree": "3e7ebf714858e8dd1de7042fd1ef62294a3ec20f",
      "parents": [
        "90afa5de6f3fa89a733861e843377302479fcf7e"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:33:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:45 2009 -0700"
      },
      "message": "vmscan: do not unconditionally treat zones that fail zone_reclaim() as full\n\nOn NUMA machines, the administrator can configure zone_reclaim_mode that\nis a more targetted form of direct reclaim.  On machines with large NUMA\ndistances for example, a zone_reclaim_mode defaults to 1 meaning that\nclean unmapped pages will be reclaimed if the zone watermarks are not\nbeing met.  The problem is that zone_reclaim() failing at all means the\nzone gets marked full.\n\nThis can cause situations where a zone is usable, but is being skipped\nbecause it has been considered full.  Take a situation where a large tmpfs\nmount is occuping a large percentage of memory overall.  The pages do not\nget cleaned or reclaimed by zone_reclaim(), but the zone gets marked full\nand the zonelist cache considers them not worth trying in the future.\n\nThis patch makes zone_reclaim() return more fine-grained information about\nwhat occured when zone_reclaim() failued.  The zone only gets marked full\nif it really is unreclaimable.  If it\u0027s a case that the scan did not occur\nor if enough pages were not reclaimed with the limited reclaim_mode, then\nthe zone is simply skipped.\n\nThere is a side-effect to this patch.  Currently, if zone_reclaim()\nsuccessfully reclaimed SWAP_CLUSTER_MAX, an allocation attempt would go\nahead.  With this patch applied, zone watermarks are rechecked after\nzone_reclaim() does some work.\n\nThis bug was introduced by commit 9276b1bc96a132f4068fdee00983c532f43d3a26\n(\"memory page_alloc zonelist caching speedup\") way back in 2.6.19 when the\nzonelist_cache was introduced.  It was not intended that zone_reclaim()\naggressively consider the zone to be full when it failed as full direct\nreclaim can still be an option.  Due to the age of the bug, it should be\nconsidered a -stable candidate.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\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": "6837765963f1723e80ca97b1fae660f3a60d77df",
      "tree": "a9a6ed4b7e3bf188966da78b04bf39298f24375a",
      "parents": [
        "bce7394a3ef82b8477952fbab838e4a6e8cb47d2"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jun 16 15:32:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:42 2009 -0700"
      },
      "message": "mm: remove CONFIG_UNEVICTABLE_LRU config option\n\nCurrently, nobody wants to turn UNEVICTABLE_LRU off.  Thus this\nconfigurability is unnecessary.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20a0307c0396c2edb651401d2f2db193dda2f3c9",
      "tree": "408fde4bf84223757f5dd150e401e8d9d9df5d36",
      "parents": [
        "a1dd268cf6306565a31a48deff8bf4f6b4b105f7"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:32:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:36 2009 -0700"
      },
      "message": "mm: introduce PageHuge() for testing huge/gigantic pages\n\nA series of patches to enhance the /proc/pagemap interface and to add a\nuserspace executable which can be used to present the pagemap data.\n\nExport 10 more flags to end users (and more for kernel developers):\n\n        11. KPF_MMAP            (pseudo flag) memory mapped page\n        12. KPF_ANON            (pseudo flag) memory mapped page (anonymous)\n        13. KPF_SWAPCACHE       page is in swap cache\n        14. KPF_SWAPBACKED      page is swap/RAM backed\n        15. KPF_COMPOUND_HEAD   (*)\n        16. KPF_COMPOUND_TAIL   (*)\n        17. KPF_HUGE\t\thugeTLB pages\n        18. KPF_UNEVICTABLE     page is in the unevictable LRU list\n        19. KPF_HWPOISON        hardware detected corruption\n        20. KPF_NOPAGE          (pseudo flag) no page frame at the address\n\n        (*) For compound pages, exporting _both_ head/tail info enables\n            users to tell where a compound page starts/ends, and its order.\n\na simple demo of the page-types tool\n\n# ./page-types -h\npage-types [options]\n            -r|--raw                  Raw mode, for kernel developers\n            -a|--addr    addr-spec    Walk a range of pages\n            -b|--bits    bits-spec    Walk pages with specified bits\n            -l|--list                 Show page details in ranges\n            -L|--list-each            Show page details one by one\n            -N|--no-summary           Don\u0027t show summay info\n            -h|--help                 Show this usage message\naddr-spec:\n            N                         one page at offset N (unit: pages)\n            N+M                       pages range from N to N+M-1\n            N,M                       pages range from N to M-1\n            N,                        pages range from N to end\n            ,M                        pages range from 0 to M\nbits-spec:\n            bit1,bit2                 (flags \u0026 (bit1|bit2)) !\u003d 0\n            bit1,bit2\u003dbit1            (flags \u0026 (bit1|bit2)) \u003d\u003d bit1\n            bit1,~bit2                (flags \u0026 (bit1|bit2)) \u003d\u003d bit1\n            \u003dbit1,bit2                flags \u003d\u003d (bit1|bit2)\nbit-names:\n          locked              error         referenced           uptodate\n           dirty                lru             active               slab\n       writeback            reclaim              buddy               mmap\n       anonymous          swapcache         swapbacked      compound_head\n   compound_tail               huge        unevictable           hwpoison\n          nopage           reserved(r)         mlocked(r)    mappedtodisk(r)\n         private(r)       private_2(r)   owner_private(r)            arch(r)\n        uncached(r)       readahead(o)       slob_free(o)     slub_frozen(o)\n      slub_debug(o)\n                                   (r) raw mode bits  (o) overloaded bits\n\n# ./page-types\n             flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          487369     1903  _________________________________\n0x0000000000000014               5        0  __R_D____________________________  referenced,dirty\n0x0000000000000020               1        0  _____l___________________________  lru\n0x0000000000000024              34        0  __R__l___________________________  referenced,lru\n0x0000000000000028            3838       14  ___U_l___________________________  uptodate,lru\n0x0001000000000028              48        0  ___U_l_______________________I___  uptodate,lru,readahead\n0x000000000000002c            6478       25  __RU_l___________________________  referenced,uptodate,lru\n0x000100000000002c              47        0  __RU_l_______________________I___  referenced,uptodate,lru,readahead\n0x0000000000000040            8344       32  ______A__________________________  active\n0x0000000000000060               1        0  _____lA__________________________  lru,active\n0x0000000000000068             348        1  ___U_lA__________________________  uptodate,lru,active\n0x0001000000000068              12        0  ___U_lA______________________I___  uptodate,lru,active,readahead\n0x000000000000006c             988        3  __RU_lA__________________________  referenced,uptodate,lru,active\n0x000100000000006c              48        0  __RU_lA______________________I___  referenced,uptodate,lru,active,readahead\n0x0000000000004078               1        0  ___UDlA_______b__________________  uptodate,dirty,lru,active,swapbacked\n0x000000000000407c              34        0  __RUDlA_______b__________________  referenced,uptodate,dirty,lru,active,swapbacked\n0x0000000000000400             503        1  __________B______________________  buddy\n0x0000000000000804               1        0  __R________M_____________________  referenced,mmap\n0x0000000000000828            1029        4  ___U_l_____M_____________________  uptodate,lru,mmap\n0x0001000000000828              43        0  ___U_l_____M_________________I___  uptodate,lru,mmap,readahead\n0x000000000000082c             382        1  __RU_l_____M_____________________  referenced,uptodate,lru,mmap\n0x000100000000082c              12        0  __RU_l_____M_________________I___  referenced,uptodate,lru,mmap,readahead\n0x0000000000000868             192        0  ___U_lA____M_____________________  uptodate,lru,active,mmap\n0x0001000000000868              12        0  ___U_lA____M_________________I___  uptodate,lru,active,mmap,readahead\n0x000000000000086c             800        3  __RU_lA____M_____________________  referenced,uptodate,lru,active,mmap\n0x000100000000086c              31        0  __RU_lA____M_________________I___  referenced,uptodate,lru,active,mmap,readahead\n0x0000000000004878               2        0  ___UDlA____M__b__________________  uptodate,dirty,lru,active,mmap,swapbacked\n0x0000000000001000             492        1  ____________a____________________  anonymous\n0x0000000000005808               4        0  ___U_______Ma_b__________________  uptodate,mmap,anonymous,swapbacked\n0x0000000000005868            2839       11  ___U_lA____Ma_b__________________  uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c              30        0  __RU_lA____Ma_b__________________  referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total          513968     2007\n\n# ./page-types -r\n             flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          468002     1828  _________________________________\n0x0000000100000000           19102       74  _____________________r___________  reserved\n0x0000000000008000              41        0  _______________H_________________  compound_head\n0x0000000000010000             188        0  ________________T________________  compound_tail\n0x0000000000008014               1        0  __R_D__________H_________________  referenced,dirty,compound_head\n0x0000000000010014               4        0  __R_D___________T________________  referenced,dirty,compound_tail\n0x0000000000000020               1        0  _____l___________________________  lru\n0x0000000800000024              34        0  __R__l__________________P________  referenced,lru,private\n0x0000000000000028            3794       14  ___U_l___________________________  uptodate,lru\n0x0001000000000028              46        0  ___U_l_______________________I___  uptodate,lru,readahead\n0x0000000400000028              44        0  ___U_l_________________d_________  uptodate,lru,mappedtodisk\n0x0001000400000028               2        0  ___U_l_________________d_____I___  uptodate,lru,mappedtodisk,readahead\n0x000000000000002c            6434       25  __RU_l___________________________  referenced,uptodate,lru\n0x000100000000002c              47        0  __RU_l_______________________I___  referenced,uptodate,lru,readahead\n0x000000040000002c              14        0  __RU_l_________________d_________  referenced,uptodate,lru,mappedtodisk\n0x000000080000002c              30        0  __RU_l__________________P________  referenced,uptodate,lru,private\n0x0000000800000040            8124       31  ______A_________________P________  active,private\n0x0000000000000040             219        0  ______A__________________________  active\n0x0000000800000060               1        0  _____lA_________________P________  lru,active,private\n0x0000000000000068             322        1  ___U_lA__________________________  uptodate,lru,active\n0x0001000000000068              12        0  ___U_lA______________________I___  uptodate,lru,active,readahead\n0x0000000400000068              13        0  ___U_lA________________d_________  uptodate,lru,active,mappedtodisk\n0x0000000800000068              12        0  ___U_lA_________________P________  uptodate,lru,active,private\n0x000000000000006c             977        3  __RU_lA__________________________  referenced,uptodate,lru,active\n0x000100000000006c              48        0  __RU_lA______________________I___  referenced,uptodate,lru,active,readahead\n0x000000040000006c               5        0  __RU_lA________________d_________  referenced,uptodate,lru,active,mappedtodisk\n0x000000080000006c               3        0  __RU_lA_________________P________  referenced,uptodate,lru,active,private\n0x0000000c0000006c               3        0  __RU_lA________________dP________  referenced,uptodate,lru,active,mappedtodisk,private\n0x0000000c00000068               1        0  ___U_lA________________dP________  uptodate,lru,active,mappedtodisk,private\n0x0000000000004078               1        0  ___UDlA_______b__________________  uptodate,dirty,lru,active,swapbacked\n0x000000000000407c              34        0  __RUDlA_______b__________________  referenced,uptodate,dirty,lru,active,swapbacked\n0x0000000000000400             538        2  __________B______________________  buddy\n0x0000000000000804               1        0  __R________M_____________________  referenced,mmap\n0x0000000000000828            1029        4  ___U_l_____M_____________________  uptodate,lru,mmap\n0x0001000000000828              43        0  ___U_l_____M_________________I___  uptodate,lru,mmap,readahead\n0x000000000000082c             382        1  __RU_l_____M_____________________  referenced,uptodate,lru,mmap\n0x000100000000082c              12        0  __RU_l_____M_________________I___  referenced,uptodate,lru,mmap,readahead\n0x0000000000000868             192        0  ___U_lA____M_____________________  uptodate,lru,active,mmap\n0x0001000000000868              12        0  ___U_lA____M_________________I___  uptodate,lru,active,mmap,readahead\n0x000000000000086c             800        3  __RU_lA____M_____________________  referenced,uptodate,lru,active,mmap\n0x000100000000086c              31        0  __RU_lA____M_________________I___  referenced,uptodate,lru,active,mmap,readahead\n0x0000000000004878               2        0  ___UDlA____M__b__________________  uptodate,dirty,lru,active,mmap,swapbacked\n0x0000000000001000             492        1  ____________a____________________  anonymous\n0x0000000000005008               2        0  ___U________a_b__________________  uptodate,anonymous,swapbacked\n0x0000000000005808               4        0  ___U_______Ma_b__________________  uptodate,mmap,anonymous,swapbacked\n0x000000000000580c               1        0  __RU_______Ma_b__________________  referenced,uptodate,mmap,anonymous,swapbacked\n0x0000000000005868            2839       11  ___U_lA____Ma_b__________________  uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c              29        0  __RU_lA____Ma_b__________________  referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total          513968     2007\n\n# ./page-types --raw --list --no-summary --bits reserved\noffset  count   flags\n0       15      _____________________r___________\n31      4       _____________________r___________\n159     97      _____________________r___________\n4096    2067    _____________________r___________\n6752    2390    _____________________r___________\n9355    3       _____________________r___________\n9728    14526   _____________________r___________\n\nThis patch:\n\nIntroduce PageHuge(), which identifies huge/gigantic pages by their\ndedicated compound destructor functions.\n\nAlso move prep_compound_gigantic_page() to hugetlb.c and make\n__free_pages_ok() non-static.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "092cead6175bb1b3d3078a34ba71c939d526c70b",
      "tree": "84dfeda6c7ca85b6d68710c824e1ce59db16cc3b",
      "parents": [
        "b6e68bc1baed9b6972a250aba66b8c5276cf6fb1"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Tue Jun 16 15:32:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:35 2009 -0700"
      },
      "message": "page allocator: move free_page_mlock() to page_alloc.c\n\nCurrently, free_page_mlock() is only called from page_alloc.c.  Thus, we\ncan move it to page_alloc.c.\n\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da456f14d2f2d7350f2b9440af79c85a34c7eed5",
      "tree": "fb857a24a561153e25e91a2ad55fa4123f8b152c",
      "parents": [
        "ed0ae21dc5fe3b9ad4cf1c7bb2bfd2ad596c481c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:32:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:34 2009 -0700"
      },
      "message": "page allocator: do not disable interrupts in free_page_mlock()\n\nfree_page_mlock() tests and clears PG_mlocked using locked versions of the\nbit operations.  If set, it disables interrupts to update counters and\nthis happens on every page free even though interrupts are disabled very\nshortly afterwards a second time.  This is wasteful.\n\nThis patch splits what free_page_mlock() does.  The bit check is still\nmade.  However, the update of counters is delayed until the interrupts are\ndisabled and the non-lock version for clearing the bit is used.  One\npotential weirdness with this split is that the counters do not get\nupdated if the bad_page() check is triggered but a system showing bad\npages is getting screwed already.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33925b25d2c00a29664f1994ab350a9bff70f7a2",
      "tree": "fe1a0ef5cceba27664eae8f38f9e4e2a27bf1b36",
      "parents": [
        "7ca43e7564679604d86e9ed834e7bbcffd8a4a3f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Mar 31 15:23:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "nommu: there is no mlock() for NOMMU, so don\u0027t provide the bits\n\nThe mlock() facility does not exist for NOMMU since all mappings are\neffectively locked anyway, so we don\u0027t make the bits available when\nthey\u0027re not useful.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Enrik Berkhan \u003cEnrik.Berkhan@ge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4779280d1ea4d361af13ae77ba55217fbcd16d4c",
      "tree": "1abb35d85f2280aebb9cd565cc223d14b8731203",
      "parents": [
        "91bf189c3a766927694ce9de7d545e96b23f20fc"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue Jan 06 14:40:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:08 2009 -0800"
      },
      "message": "mm: make get_user_pages() interruptible\n\nThe initial implementation of checking TIF_MEMDIE covers the cases of OOM\nkilling.  If the process has been OOM killed, the TIF_MEMDIE is set and it\nreturn immediately.  This patch includes:\n\n1.  add the case that the SIGKILL is sent by user processes.  The\n   process can try to get_user_pages() unlimited memory even if a user\n   process has sent a SIGKILL to it(maybe a monitor find the process\n   exceed its memory limit and try to kill it).  In the old\n   implementation, the SIGKILL won\u0027t be handled until the get_user_pages()\n   returns.\n\n2.  change the return value to be ERESTARTSYS.  It makes no sense to\n   return ENOMEM if the get_user_pages returned by getting a SIGKILL\n   signal.  Considering the general convention for a system call\n   interrupted by a signal is ERESTARTNOSYS, so the current return value\n   is consistant to that.\n\nLee:\n\nAn unfortunate side effect of \"make-get_user_pages-interruptible\" is that\nit prevents a SIGKILL\u0027d task from munlock-ing pages that it had mlocked,\nresulting in freeing of mlocked pages.  Freeing of mlocked pages, in\nitself, is not so bad.  We just count them now--altho\u0027 I had hoped to\nremove this stat and add PG_MLOCKED to the free pages flags check.\n\nHowever, consider pages in shared libraries mapped by more than one task\nthat a task mlocked--e.g., via mlockall().  If the task that mlocked the\npages exits via SIGKILL, these pages would be left mlocked and\nunevictable.\n\nProposed fix:\n\nAdd another GUP flag to ignore sigkill when calling get_user_pages from\nmunlock()--similar to Kosaki Motohiro\u0027s \u0027IGNORE_VMA_PERMISSIONS flag for\nthe same purpose.  We are not actually allocating memory in this case,\nwhich \"make-get_user_pages-interruptible\" intends to avoid.  We\u0027re just\nmunlocking pages that are already resident and mapped, and we\u0027re reusing\nget_user_pages() to access those pages.\n\n??  Maybe we should combine \u0027IGNORE_VMA_PERMISSIONS and \u0027_IGNORE_SIGKILL\ninto a single flag: GUP_FLAGS_MUNLOCK ???\n\n[Lee.Schermerhorn@hp.com: ignore sigkill in get_user_pages during munlock]\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rohit Seth \u003crohitseth@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22b31eec63e5f2e219a3ee15f456897272bc73e8",
      "tree": "906e4975a0e2cdef15ef071b4890e3b28e36cf39",
      "parents": [
        "3dc147414ccad81dc33edb80774b1fed12a38c08"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Jan 06 14:40:09 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:59:07 2009 -0800"
      },
      "message": "badpage: vm_normal_page use print_bad_pte\n\nprint_bad_pte() is so far being called only when zap_pte_range() finds\nnegative page_mapcount, or there\u0027s a fault on a pte_file where it does not\nbelong.  That\u0027s weak coverage when we suspect pagetable corruption.\n\nOriginally, it was called when vm_normal_page() found an invalid pfn: but\npfn_valid is expensive on some architectures and configurations, so 2.6.24\nput that under CONFIG_DEBUG_VM (which doesn\u0027t help in the field), then\n2.6.26 replaced it by a VM_BUG_ON (likewise).\n\nReinstate the print_bad_pte() in vm_normal_page(), but use a cheaper test\nthan pfn_valid(): memmap_init_zone() (used in bootup and hotplug) keep a\n__read_mostly note of the highest_memmap_pfn, vm_normal_page() then check\npfn against that.  We could call this pfn_plausible() or pfn_sane(), but I\ndoubt we\u0027ll need it elsewhere: of course it\u0027s not reliable, but gives much\nstronger pagetable validation on many boxes.\n\nAlso use print_bad_pte() when the pte_special bit is found outside a\nVM_PFNMAP or VM_MIXEDMAP area, instead of VM_BUG_ON.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\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": "18229df5b613ed0732a766fc37850de2e7988e43",
      "tree": "ab235f27a5a9d93b8f94773252a1d8f660b9fad1",
      "parents": [
        "69d177c2fc702d402b17fdca2190d5a7e3ca55c5"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Nov 06 12:53:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:18 2008 -0800"
      },
      "message": "hugetlb: pull gigantic page initialisation out of the default path\n\nAs we can determine exactly when a gigantic page is in use we can optimise\nthe common regular page cases by pulling out gigantic page initialisation\ninto its own function.  As gigantic pages are never released to buddy we\ndo not need a destructor.  This effectivly reverts the previous change to\nthe main buddy allocator.  It also adds a paranoid check to ensure we\nnever release gigantic pages from hugetlbfs to the main buddy.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69d177c2fc702d402b17fdca2190d5a7e3ca55c5",
      "tree": "2040e0a84b7c07c29ac6fb6e51e125de52256f5d",
      "parents": [
        "22bece00dc1f28dd3374c55e464c9f02eb642876"
      ],
      "author": {
        "name": "Andy Whitcroft",
        "email": "apw@shadowen.org",
        "time": "Thu Nov 06 12:53:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Nov 06 15:41:18 2008 -0800"
      },
      "message": "hugetlbfs: handle pages higher order than MAX_ORDER\n\nWhen working with hugepages, hugetlbfs assumes that those hugepages are\nsmaller than MAX_ORDER.  Specifically it assumes that the mem_map is\ncontigious and uses that to optimise access to the elements of the mem_map\nthat represent the hugepage.  Gigantic pages (such as 16GB pages on\npowerpc) by definition are of greater order than MAX_ORDER (larger than\nMAX_ORDER_NR_PAGES in size).  This means that we can no longer make use of\nthe buddy alloctor guarentees for the contiguity of the mem_map, which\nensures that the mem_map is at least contigious for maximmally aligned\nareas of MAX_ORDER_NR_PAGES pages.\n\nThis patch adds new mem_map accessors and iterator helpers which handle\nany discontiguity at MAX_ORDER_NR_PAGES boundaries.  It then uses these to\nimplement gigantic page versions of copy_huge_page and clear_huge_page,\nand to allow follow_hugetlb_page handle gigantic pages.\n\nSigned-off-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Jon Tollefson \u003ckniht@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "985737cf2ea096ea946aed82c7484d40defc71a8",
      "tree": "b96dc3b8c28f743857a7a1fff25472d6e0f60120",
      "parents": [
        "af936a1606246a10c145feac3770f6287f483f02"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:53 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "mlock: count attempts to free mlocked page\n\nAllow free of mlock()ed pages.  This shouldn\u0027t happen, but during\ndevelopement, it occasionally did.\n\nThis patch allows us to survive that condition, while keeping the\nstatistics and events correct for debug.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5344b7e648980cc2ca613ec03a56a8222ff48820",
      "tree": "f9f8773ae8e38fb91aec52ca9ad2bd81f039b565",
      "parents": [
        "ba470de43188cdbff795b5da43a1474523c6c2fb"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "vmstat: mlocked pages statistics\n\nAdd NR_MLOCK zone page state, which provides a (conservative) count of\nmlocked pages (actually, the number of mlocked pages moved off the LRU).\n\nReworked by lts to fit in with the modified mlock page support in the\nReclaim Scalability series.\n\n[kosaki.motohiro@jp.fujitsu.com: fix incorrect Mlocked field of /proc/meminfo]\n[lee.schermerhorn@hp.com: mlocked-pages: add event counting with statistics]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba470de43188cdbff795b5da43a1474523c6c2fb",
      "tree": "0477460fa8c3e61edd9f1534cd2193656e586f8b",
      "parents": [
        "8edb08caf68184fb170f4f69c7445929e199eaea"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Sat Oct 18 20:26:50 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:31 2008 -0700"
      },
      "message": "mmap: handle mlocked pages during map, remap, unmap\n\nOriginally by Nick Piggin \u003cnpiggin@suse.de\u003e\n\nRemove mlocked pages from the LRU using \"unevictable infrastructure\"\nduring mmap(), munmap(), mremap() and truncate().  Try to move back to\nnormal LRU lists on munmap() when last mlocked mapping removed.  Remove\nPageMlocked() status when page truncated from file.\n\n[akpm@linux-foundation.org: cleanup]\n[kamezawa.hiroyu@jp.fujitsu.com: fix double unlock_page()]\n[kosaki.motohiro@jp.fujitsu.com: split LRU: munlock rework]\n[lee.schermerhorn@hp.com: mlock: fix __mlock_vma_pages_range comment block]\n[akpm@linux-foundation.org: remove bogus kerneldoc token]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamewzawa.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": "b291f000393f5a0b679012b39d79fbc85c018233",
      "tree": "28eb785d4d157d3396e4377294e6054635a4bd90",
      "parents": [
        "89e004ea55abe201b29e2d6e35124101f1288ef7"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:44 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:52:30 2008 -0700"
      },
      "message": "mlock: mlocked pages are unevictable\n\nMake sure that mlocked pages also live on the unevictable LRU, so kswapd\nwill not scan them over and over again.\n\nThis is achieved through various strategies:\n\n1) add yet another page flag--PG_mlocked--to indicate that\n   the page is locked for efficient testing in vmscan and,\n   optionally, fault path.  This allows early culling of\n   unevictable pages, preventing them from getting to\n   page_referenced()/try_to_unmap().  Also allows separate\n   accounting of mlock\u0027d pages, as Nick\u0027s original patch\n   did.\n\n   Note:  Nick\u0027s original mlock patch used a PG_mlocked\n   flag.  I had removed this in favor of the PG_unevictable\n   flag + an mlock_count [new page struct member].  I\n   restored the PG_mlocked flag to eliminate the new\n   count field.\n\n2) add the mlock/unevictable infrastructure to mm/mlock.c,\n   with internal APIs in mm/internal.h.  This is a rework\n   of Nick\u0027s original patch to these files, taking into\n   account that mlocked pages are now kept on unevictable\n   LRU list.\n\n3) update vmscan.c:page_evictable() to check PageMlocked()\n   and, if vma passed in, the vm_flags.  Note that the vma\n   will only be passed in for new pages in the fault path;\n   and then only if the \"cull unevictable pages in fault\n   path\" patch is included.\n\n4) add try_to_unlock() to rmap.c to walk a page\u0027s rmap and\n   ClearPageMlocked() if no other vmas have it mlocked.\n   Reuses as much of try_to_unmap() as possible.  This\n   effectively replaces the use of one of the lru list links\n   as an mlock count.  If this mechanism let\u0027s pages in mlocked\n   vmas leak through w/o PG_mlocked set [I don\u0027t know that it\n   does], we should catch them later in try_to_unmap().  One\n   hopes this will be rare, as it will be relatively expensive.\n\nOriginal mm/internal.h, mm/rmap.c and mm/mlock.c changes:\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n\nsplitlru: introduce __get_user_pages():\n\n  New munlock processing need to GUP_FLAGS_IGNORE_VMA_PERMISSIONS.\n  because current get_user_pages() can\u0027t grab PROT_NONE pages theresore it\n  cause PROT_NONE pages can\u0027t munlock.\n\n[akpm@linux-foundation.org: fix this for pagemap-pass-mm-into-pagewalkers.patch]\n[akpm@linux-foundation.org: untangle patch interdependencies]\n[akpm@linux-foundation.org: fix things after out-of-order merging]\n[hugh@veritas.com: fix page-flags mess]\n[lee.schermerhorn@hp.com: fix munlock page table walk - now requires \u0027mm\u0027]\n[kosaki.motohiro@jp.fujitsu.com: build fix]\n[kosaki.motohiro@jp.fujitsu.com: fix truncate race and sevaral comments]\n[kosaki.motohiro@jp.fujitsu.com: splitlru: introduce __get_user_pages()]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "894bc310419ac95f4fa4142dc364401a7e607f65",
      "tree": "15d56a7333b41620016b845d2323dd06e822b621",
      "parents": [
        "8a7a8544a4f6554ec2d8048ac9f9672f442db5a2"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Sat Oct 18 20:26:39 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:26 2008 -0700"
      },
      "message": "Unevictable LRU Infrastructure\n\nWhen the system contains lots of mlocked or otherwise unevictable pages,\nthe pageout code (kswapd) can spend lots of time scanning over these\npages.  Worse still, the presence of lots of unevictable pages can confuse\nkswapd into thinking that more aggressive pageout modes are required,\nresulting in all kinds of bad behaviour.\n\nInfrastructure to manage pages excluded from reclaim--i.e., hidden from\nvmscan.  Based on a patch by Larry Woodman of Red Hat.  Reworked to\nmaintain \"unevictable\" pages on a separate per-zone LRU list, to \"hide\"\nthem from vmscan.\n\nKosaki Motohiro added the support for the memory controller unevictable\nlru list.\n\nPages on the unevictable list have both PG_unevictable and PG_lru set.\nThus, PG_unevictable is analogous to and mutually exclusive with\nPG_active--it specifies which LRU list the page is on.\n\nThe unevictable infrastructure is enabled by a new mm Kconfig option\n[CONFIG_]UNEVICTABLE_LRU.\n\nA new function \u0027page_evictable(page, vma)\u0027 in vmscan.c tests whether or\nnot a page may be evictable.  Subsequent patches will add the various\n!evictable tests.  We\u0027ll want to keep these tests light-weight for use in\nshrink_active_list() and, possibly, the fault path.\n\nTo avoid races between tasks putting pages [back] onto an LRU list and\ntasks that might be moving the page from non-evictable to evictable state,\nthe new function \u0027putback_lru_page()\u0027 -- inverse to \u0027isolate_lru_page()\u0027\n-- tests the \"evictability\" of a page after placing it on the LRU, before\ndropping the reference.  If the page has become unevictable,\nputback_lru_page() will redo the \u0027putback\u0027, thus moving the page to the\nunevictable list.  This way, we avoid \"stranding\" evictable pages on the\nunevictable list.\n\n[akpm@linux-foundation.org: fix fallout from out-of-order merge]\n[riel@redhat.com: fix UNEVICTABLE_LRU and !PROC_PAGE_MONITOR build]\n[nishimura@mxp.nes.nec.co.jp: remove redundant mapping check]\n[kosaki.motohiro@jp.fujitsu.com: unevictable-lru-infrastructure: putback_lru_page()/unevictable page handling rework]\n[kosaki.motohiro@jp.fujitsu.com: kill unnecessary lock_page() in vmscan.c]\n[kosaki.motohiro@jp.fujitsu.com: revert migration change of unevictable lru infrastructure]\n[kosaki.motohiro@jp.fujitsu.com: revert to unevictable-lru-infrastructure-kconfig-fix.patch]\n[kosaki.motohiro@jp.fujitsu.com: restore patch failure of vmstat-unevictable-and-mlocked-pages-vm-events.patch]\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nDebugged-by: Benjamin Kidwell \u003cbenjkidwell@yahoo.com\u003e\nSigned-off-by: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62695a84eb8f2e718bf4dfb21700afaa7a08e0ea",
      "tree": "0af7bac599748a7e462bff16d70c702c9e33a2fb",
      "parents": [
        "71088785c6bc68fddb450063d57b1bd1c78e0ea1"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Sat Oct 18 20:26:09 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 20 08:50:25 2008 -0700"
      },
      "message": "vmscan: move isolate_lru_page() to vmscan.c\n\nOn large memory systems, the VM can spend way too much time scanning\nthrough pages that it cannot (or should not) evict from memory.  Not only\ndoes it use up CPU time, but it also provokes lock contention and can\nleave large systems under memory presure in a catatonic state.\n\nThis patch series improves VM scalability by:\n\n1) putting filesystem backed, swap backed and unevictable pages\n   onto their own LRUs, so the system only scans the pages that it\n   can/should evict from memory\n\n2) switching to two handed clock replacement for the anonymous LRUs,\n   so the number of pages that need to be scanned when the system\n   starts swapping is bound to a reasonable number\n\n3) keeping unevictable pages off the LRU completely, so the\n   VM does not waste CPU time scanning them. ramfs, ramdisk,\n   SHM_LOCKED shared memory segments and mlock()ed VMA pages\n   are keept on the unevictable list.\n\nThis patch:\n\nisolate_lru_page logically belongs to be in vmscan.c than migrate.c.\n\nIt is tough, because we don\u0027t need that function without memory migration\nso there is a valid argument to have it in migrate.c.  However a\nsubsequent patch needs to make use of it in the core mm, so we can happily\nmove it to vmscan.c.\n\nAlso, make the function a little more generic by not requiring that it\nadds an isolated page to a given list.  Callers can do that.\n\n\tNote that we now have \u0027__isolate_lru_page()\u0027, that does\n\tsomething quite different, visible outside of vmscan.c\n\tfor use with memory controller.  Methinks we need to\n\trationalize these names/purposes.\t--lts\n\n[akpm@linux-foundation.org: fix mm/memory_hotplug.c build]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01ad1c0827db5b3695c53e296dbb2c1da16a0911",
      "tree": "80c46c00832094f2413ad97b8e1953018a71cc68",
      "parents": [
        "b54bbf7b81170f03597c17dd0b559e3006bc9868"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Wed Jul 23 21:27:46 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:17 2008 -0700"
      },
      "message": "mm: export prep_compound_page to mm\n\nhugetlb will need to get compound pages from bootmem to handle the case of\nthem being greater than or equal to MAX_ORDER.  Export the constructor\nfunction needed for this.\n\nAcked-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "42b7772812d15b86543a23b82bd6070eef9a08b1",
      "tree": "10665ee01fe82ce17c68a6278d044531b1ed64c0",
      "parents": [
        "a352894d07059649398c4769dc8b645e1a1dad88"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Wed Jul 23 21:27:10 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:15 2008 -0700"
      },
      "message": "mm: remove double indirection on tlb parameter to free_pgd_range() \u0026 Co\n\nThe double indirection here is not needed anywhere and hence (at least)\nconfusing.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nAcked-by: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68ad8df42e12037c3894c9706ab428bf5cd6426b",
      "tree": "42999fc8e3cbf400b6133f832f310690f8f28b76",
      "parents": [
        "2dbb51c49f4fecb8330e43247a0edfbc4b2b8974"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:26:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:14 2008 -0700"
      },
      "message": "mm: print out the zonelists on request for manual verification\n\nThis patch prints out the zonelists during boot for manual verification by the\nuser if the mminit_loglevel is MMINIT_VERIFY or higher.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dbb51c49f4fecb8330e43247a0edfbc4b2b8974",
      "tree": "507f06335dd1e66144f176e8e863743895e43d79",
      "parents": [
        "708614e6180f398cd307ea0048d48ba6fa274610"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:26:52 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:13 2008 -0700"
      },
      "message": "mm: make defensive checks around PFN values registered for memory usage\n\nThere are a number of different views to how much memory is currently active.\nThere is the arch-independent zone-sizing view, the bootmem allocator and\nmemory models view.\n\nArchitectures register this information at different times and is not\nnecessarily in sync particularly with respect to some SPARSEMEM limitations.\n\nThis patch introduces mminit_validate_memmodel_limits() which is able to\nvalidate and correct PFN ranges with respect to the memory model.  It is only\nSPARSEMEM that currently validates itself.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "708614e6180f398cd307ea0048d48ba6fa274610",
      "tree": "8fedf22cf9a2f404e2aef10c5b3858b99880c4c2",
      "parents": [
        "6b74ab97bc12ce74acec900f1d89a4aee2e4d70d"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:26:51 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:13 2008 -0700"
      },
      "message": "mm: verify the page links and memory model\n\nPrint out information on how the page flags are being used if mminit_loglevel\nis MMINIT_VERIFY or higher and unconditionally performs sanity checks on the\nflags regardless of loglevel.\n\nWhen the page flags are updated with section, node and zone information, a\ncheck are made to ensure the values can be retrieved correctly.  Finally we\nconfirm that pfn_to_page and page_to_pfn are the correct inverse functions.\n\n[akpm@linux-foundation.org: fix printk warnings]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b74ab97bc12ce74acec900f1d89a4aee2e4d70d",
      "tree": "d9d7b522a4a8f5f605d2e0f7f7a1bcb9d5049a82",
      "parents": [
        "9483a578df27fe7603605d565eefe039c1ba5845"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Jul 23 21:26:49 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jul 24 10:47:13 2008 -0700"
      },
      "message": "mm: add a basic debugging framework for memory initialisation\n\nBoot initialisation is very complex, with significant numbers of\narchitecture-specific routines, hooks and code ordering.  While significant\namounts of the initialisation is architecture-independent, it trusts the data\nreceived from the architecture layer.  This is a mistake, and has resulted in\na number of difficult-to-diagnose bugs.\n\nThis patchset adds some validation and tracing to memory initialisation.  It\nalso introduces a few basic defensive measures.  The validation code can be\nexplicitly disabled for embedded systems.\n\nThis patch:\n\nAdd additional debugging and verification code for memory initialisation.\n\nOnce enabled, the verification checks are always run and when required\nadditional debugging information may be outputted via a mminit_loglevel\u003d\ncommand-line parameter.\n\nThe verification code is placed in a new file mm/mm_init.c.  Ideally other mm\ninitialisation code will be moved here over time.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0c0a4a517a31e05efb38304668198a873bfec6ca",
      "tree": "3d02fe9dbf160cd5d328c1e2cf4b40ce37426c5f",
      "parents": [
        "86f6dae1377523689bd8468fed2f2dd180fc0560"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Mon Apr 28 02:13:34 2008 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 28 08:58:26 2008 -0700"
      },
      "message": "memory hotplug: free memmaps allocated by bootmem\n\nThis patch is to free memmaps which is allocated by bootmem.\n\nFreeing usemap is not necessary.  The pages of usemap may be necessary for\nother sections.\n\nIf removing section is last section on the node, its section is the final user\nof usemap page.  (usemaps are allocated on its section by previous patch.) But\nit shouldn\u0027t be freed too, because the section must be logical offline state\nwhich all pages are isolated against page allocater.  If it is freed, page\nalloctor may use it which will be removed physically soon.  It will be\ndisaster.  So, this patch keeps it as it is.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Badari Pulavarty \u003cpbadari@us.ibm.com\u003e\nCc: Yinghai Lu \u003cyhlu.kernel@gmail.com\u003e\nCc: Yasunori Goto \u003cy-goto@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": "b5a0e011329431b90d315eaf6ca5fdb41df7a117",
      "tree": "dc0503d0b6ee2d74cdf4e332524b810ccde5050f",
      "parents": [
        "bcdca225bfa016100985e5fc7e51cdc1d68beaa6"
      ],
      "author": {
        "name": "Alexander van Heukelum",
        "email": "heukelum@mailshack.com",
        "time": "Sat Feb 23 15:24:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Sat Feb 23 17:13:24 2008 -0800"
      },
      "message": "Solve section mismatch for free_area_init_core.\n\nWARNING: vmlinux.o(.meminit.text+0x649):\nSection mismatch in reference from the\nfunction free_area_init_core() to the function .init.text:setup_usemap()\nThe function __meminit free_area_init_core() references\na function __init setup_usemap().\nIf free_area_init_core is only used by setup_usemap then\nannotate free_area_init_core with a matching annotation.\n\nThe warning is covers this stack of functions in mm/page_alloc.c:\n\nalloc_bootmem_node must be marked __init.\nalloc_bootmem_node is used by setup_usemap, if !SPARSEMEM.\n(usemap_size is only used by setup_usemap, if !SPARSEMEM.)\nsetup_usemap is only used by free_area_init_core.\nfree_area_init_core is only used by free_area_init_node.\n\nfree_area_init_node is used by:\narch/alpha/mm/numa.c: __init paging_init()\narch/arm/mm/init.c: __init bootmem_init_node()\narch/avr32/mm/init.c: __init paging_init()\narch/cris/arch-v10/mm/init.c: __init paging_init()\narch/cris/arch-v32/mm/init.c: __init paging_init()\narch/m32r/mm/discontig.c: __init zone_sizes_init()\narch/m32r/mm/init.c: __init zone_sizes_init()\narch/m68k/mm/motorola.c: __init paging_init()\narch/m68k/mm/sun3mmu.c: __init paging_init()\narch/mips/sgi-ip27/ip27-memory.c: __init paging_init()\narch/parisc/mm/init.c: __init paging_init()\narch/sparc/mm/srmmu.c: __init srmmu_paging_init()\narch/sparc/mm/sun4c.c: __init sun4c_paging_init()\narch/sparc64/mm/init.c: __init paging_init()\nmm/page_alloc.c: __init free_area_init_nodes()\nmm/page_alloc.c: __init free_area_init()\nand\nmm/memory_hotplug.c: hotadd_new_pgdat()\n\nhotadd_new_pgdat can not be an __init function, but:\n\nIt is compiled for MEMORY_HOTPLUG configurations only\nMEMORY_HOTPLUG depends on SPARSEMEM || X86_64_ACPI_NUMA\nX86_64_ACPI_NUMA depends on X86_64\nARCH_FLATMEM_ENABLE depends on X86_32\nARCH_DISCONTIGMEM_ENABLE depends on X86_32\nSo X86_64_ACPI_NUMA implies SPARSEMEM, right?\n\nSo we can mark the stack of functions __init for !SPARSEMEM, but we must mark\nthem __meminit for SPARSEMEM configurations.  This is ok, because then the\ncalls to alloc_bootmem_node are also avoided.\n\nCompile-tested on:\nsilly minimal config\ndefconfig x86_32\ndefconfig x86_64\ndefconfig x86_64 -HIBERNATION +MEMORY_HOTPLUG\n\nSigned-off-by: Alexander van Heukelum \u003cheukelum@fastmail.fm\u003e\nReviewed-by: Sam Ravnborg \u003csam@ravnborg.org\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae1276b9349a2fd9c3afb4651e25a77ac03299d9",
      "tree": "e3bef5a303f308e398caf53ac098b1d4a2a8061f",
      "parents": [
        "920c7a5d0c94b8ce740f1d76fa06422f2a95a757"
      ],
      "author": {
        "name": "Qi Yong",
        "email": "qiyong@fc-cn.com",
        "time": "Mon Feb 04 22:29:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:19 2008 -0800"
      },
      "message": "set_page_refcounted() VM_BUG_ON fix\n\nThe current PageTail semantic is that a PageTail page is first a\nPageCompound page.  So remove the redundant PageCompound test in\nset_page_refcounted().\n\nSigned-off-by: Qi Yong \u003cqiyong@fc-cn.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "920c7a5d0c94b8ce740f1d76fa06422f2a95a757",
      "tree": "74ab4b9b5a6f4279b9b9d2a463c6700546ba0011",
      "parents": [
        "1e548deb5d1630ca14ba04da04e3b6b3766178c7"
      ],
      "author": {
        "name": "Harvey Harrison",
        "email": "harvey.harrison@gmail.com",
        "time": "Mon Feb 04 22:29:26 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Feb 05 09:44:18 2008 -0800"
      },
      "message": "mm: remove fastcall from mm/\n\nfastcall is always defined to be empty, remove it\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Harvey Harrison \u003charvey.harrison@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": "48f13bf3e742fca8aab87f6c39451d03bf5952d4",
      "tree": "668160019ab157500a90655cf44f798ed3c77893",
      "parents": [
        "ea3061d227816d00717446ac12b853d7ae04b4fe"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Oct 16 01:26:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Tue Oct 16 09:43:01 2007 -0700"
      },
      "message": "Breakout page_order() to internal.h to avoid special knowledge of the buddy allocator\n\nThe statistics patch later needs to know what order a free page is on the free\nlists.  Rather than having special knowledge of page_private() when\nPageBuddy() is set, this patch places out page_order() in internal.h and adds\na VM_BUG_ON to catch using it on non-PageBuddy pages.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d85f33855c303acfa87fa457157cef755b6087df",
      "tree": "f1184a1a24b432727b0399594ede37c7539db888",
      "parents": [
        "30520864839dc796fd314812e7036e754880b47d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Sun May 06 14:49:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Mon May 07 12:12:53 2007 -0700"
      },
      "message": "Make page-\u003eprivate usable in compound pages\n\nIf we add a new flag so that we can distinguish between the first page and the\ntail pages then we can avoid to use page-\u003eprivate in the first page.\npage-\u003eprivate \u003d\u003d page for the first page, so there is no real information in\nthere.\n\nFreeing up page-\u003eprivate makes the use of compound pages more transparent.\nThey become more usable like real pages.  Right now we have to be careful f.e.\n if we are going beyond PAGE_SIZE allocations in the slab on i386 because we\ncan then no longer use the private field.  This is one of the issues that\ncause us not to support debugging for page size slabs in SLAB.\n\nHaving page-\u003eprivate available for SLUB would allow more meta information in\nthe page struct.  I can probably avoid the 16 bit ints that I have in there\nright now.\n\nAlso if page-\u003eprivate is available then a compound page may be equipped with\nbuffer heads.  This may free up the way for filesystems to support larger\nblocks than page size.\n\nWe add PageTail as an alias of PageReclaim.  Compound pages cannot currently\nbe reclaimed.  Because of the alias one needs to check PageCompound first.\n\nThe RFC for the this approach was discussed at\nhttp://marc.info/?t\u003d117574302800001\u0026r\u003d1\u0026w\u003d2\n\n[nacc@us.ibm.com: fix hugetlbfs]\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.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": "725d704ecaca4a43f067092c140d4f3271cf2856",
      "tree": "320cf8ab5457ac6c01c05da8c30d6026538ee259",
      "parents": [
        "a6ca1b99ed434f3fb41bbed647ed36c0420501e5"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Sep 25 23:30:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Sep 26 08:48:44 2006 -0700"
      },
      "message": "[PATCH] mm: VM_BUG_ON\n\nIntroduce a VM_BUG_ON, which is turned on with CONFIG_DEBUG_VM.  Use this\nin the lightweight, inline refcounting functions; PageLRU and PageActive\nchecks in vmscan, because they\u0027re pretty well confined to vmscan.  And in\npage allocate/free fastpaths which can be the hottest parts of the kernel\nfor kbuilds.\n\nUnlike BUG_ON, VM_BUG_ON must not be used to execute statements with\nside-effects, and should not be used outside core mm code.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7835e98b2e3c66dba79cb0ff8ebb90a2fe030c29",
      "tree": "405a96eade34845dabe2f125b6c5eb095846869d",
      "parents": [
        "70dc991d66cac40fdb07346dba2b5d862d732c34"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:02 2006 -0800"
      },
      "message": "[PATCH] remove set_page_count() outside mm/\n\nset_page_count usage outside mm/ is limited to setting the refcount to 1.\nRemove set_page_count from outside mm/, and replace those users with\ninit_page_count() and set_page_refcounted().\n\nThis allows more debug checking, and tighter control on how code is allowed\nto play around with page-\u003e_count.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "84097518d1ecd2330f9488e4c2d09953a3340e74",
      "tree": "50981fe0584c456a1a86e6d7f611eec223b5f536",
      "parents": [
        "0f8053a509ceba4a077a50ea7b77039b5559b428"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:01 2006 -0800"
      },
      "message": "[PATCH] mm: nommu use compound pages\n\nNow that compound page handling is properly fixed in the VM, move nommu\nover to using compound pages rather than rolling their own refcounting.\n\nnommu vm page refcounting is broken anyway, but there is no need to have\ndivergent code in the core VM now, nor when it gets fixed.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\n\n(Needs testing, please).\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f8053a509ceba4a077a50ea7b77039b5559b428",
      "tree": "5a66021540395e20256f38a3a45174617428a832",
      "parents": [
        "4fa4f53bf92139595cae6f1a3d972fc0a3451d29"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Mar 22 00:08:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Mar 22 07:54:01 2006 -0800"
      },
      "message": "[PATCH] mm: make __put_page internal\n\nRemove __put_page from outside the core mm/.  It is dangerous because it does\nnot handle compound pages nicely, and misses 1-\u003e0 transitions.  If a user\nlater appears that really needs the extra speed we can reevaluate.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a226f6c899799fe2c4919daa0767ac579c88f7bd",
      "tree": "82863c401f344cae8ab518b174085a7071a0a325",
      "parents": [
        "008857c1a49ccffc31a54c3ea7e182833bd61304"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 06 00:11:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:26 2006 -0800"
      },
      "message": "[PATCH] FRV: Clean up bootmem allocator\u0027s page freeing algorithm\n\nThe attached patch cleans up the way the bootmem allocator frees pages.\n\nA new function, __free_pages_bootmem(), is provided in mm/page_alloc.c that is\ncalled from mm/bootmem.c to turn pages over to the main allocator.  All the\nbits of code to initialise pages (clearing PG_reserved and setting the page\ncount) are moved to here.  The checks on page validity are removed, on the\nassumption that the struct page arrays will have been prepared correctly.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77a8a78834561398fb4cb1480afa7b0e80b1dd53",
      "tree": "c58179bfb6c68fb6cad547852345150be039591f",
      "parents": [
        "c54ad30c784b84d0275152d0ca80985b21471811"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Fri Jan 06 00:10:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:25 2006 -0800"
      },
      "message": "[PATCH] mm: set_page_refs opt\n\nInline set_page_refs.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
