)]}'
{
  "log": [
    {
      "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"
    }
  ]
}
