)]}'
{
  "log": [
    {
      "commit": "8f493d797bc1fe470377adc9d8775845427e240e",
      "tree": "08f4555a0064185152a51ed707e9571dbeedddc7",
      "parents": [
        "abe842eb98c45e2b77c5868ef106616ca828a3e4"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Tue Jan 03 00:07:28 2006 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Jan 02 17:01:42 2006 -0800"
      },
      "message": "[PATCH] Make sure interleave masks have at least one node set\n\nOtherwise a bad mem policy system call can confuse the interleaving\ncode into referencing undefined nodes.\n\nOriginally reported by Doug Chapman\n\nI was told it\u0027s CVE-2005-3358\n(one has to love these security people - they make everything sound important)\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4d7672b46244abffea1953e55688c0ea143dd617",
      "tree": "9f3bdf438bcb0d5f6e723665ced23308fffb8368",
      "parents": [
        "281ab031a8c9e5b593142eb4ec59a87faae8676a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Dec 16 10:21:23 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Dec 16 10:21:23 2005 -0800"
      },
      "message": "Make sure we copy pages inserted with \"vm_insert_page()\" on fork\n\nThe logic that decides that a fork() might be able to avoid copying a VM\narea when it can be re-created by page faults didn\u0027t know about the new\nvm_insert_page() case.\n\nAlso make some things a bit more anal wrt VM_PFNMAP.\n\nPointed out by Hugh Dickins \u003chugh@veritas.com\u003e\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "78d9955bb06493e7bd78e43dfdc17fb5f1dc59b6",
      "tree": "67254d5c6df42764f5666cd17a6c9b564353ed0a",
      "parents": [
        "538bacf8a4802d209f955726b66891b8a921dabf"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Thu Dec 15 09:18:25 2005 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Dec 15 10:04:30 2005 -0800"
      },
      "message": "[PATCH] missing prototype (mm/page_alloc.c)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "118c71bcacce82a4317c9bd99c6a15af14020aee",
      "tree": "9a1f286152a7f21242ba04dd5b24b0cf7be88266",
      "parents": [
        "664d22ab954de54e52e0f71103a89c7a78738adc"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Dec 13 17:03:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Dec 13 21:18:16 2005 -0800"
      },
      "message": "[PATCH] Fix calculation of grow_pgdat_span() in mm/memory_hotplug.c\n\nThe calculation for node_spanned_pages at grow_pgdat_span() is clearly\nwrong.  This is patch for it.\n\n(Please see grow_zone_span() to compare. It is correct.)\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nAcked-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1ff8038988adecfde71d82c0597727fc239d4e8c",
      "tree": "a592cbfad237a5e373724918a0cc17ee9c421237",
      "parents": [
        "14ee0a1414536d27bc29373bf23c106b8ef8ce0b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 16:24:33 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 16:24:33 2005 -0800"
      },
      "message": "get_user_pages: don\u0027t try to follow PFNMAP pages\n\nNick Piggin points out that a few drivers play games with VM_IO (why?\nwho knows..) and thus a pfn-remapped area may not have that bit set even\nif remap_pfn_range() set it originally.\n\nSo make it explicit in get_user_pages() that we don\u0027t follow VM_PFNMAP\npages, since pretty much by definition they do not have a \"struct page\"\nassociated with them.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66d43e98ea6ff291cd4e524386bfb99105feb180",
      "tree": "56cff27261a3f9b16022c9ec8d53e4913f758eb9",
      "parents": [
        "ff9569bc5558e958777fd43580f2ccd83733cdf6"
      ],
      "author": {
        "name": "Haren Myneni",
        "email": "haren@us.ibm.com",
        "time": "Mon Dec 12 00:37:39 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Dec 12 08:57:45 2005 -0800"
      },
      "message": "[PATCH] fix in __alloc_bootmem_core() when there is no free page in first node\u0027s memory\n\nHitting BUG_ON() in __alloc_bootmem_core() when there is no free page\navailable in the first node\u0027s memory.  For the case of kdump on PPC64\n(Power 4 machine), the captured kernel is used two memory regions - memory\nfor TCE tables (tce-base and tce-size at top of RAM and reserved) and\ncaptured kernel memory region (crashk_base and crashk_size).  Since we\nreserve the memory for the first node, we should be returning from\n__alloc_bootmem_core() to search for the next node (pg_dat).\n\nCurrently, find_next_zero_bit() is returning the n^th bit (eidx) when there\nis no free page.  Then, test_bit() is failed since we set 0xff only for the\nactual size initially (init_bootmem_core()) even though rounded up to one\npage for bdata-\u003enode_bootmem_map.  We are hitting the BUG_ON after failing\nto enter second \"for\" loop.\n\nSigned-off-by: Haren Myneni \u003charen@us.ibm.com\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "67121172f9753f38689651b613a4850e0e75876f",
      "tree": "cfb6ea8365c44a43ee254385c7d246f0418cedd0",
      "parents": [
        "913f2d792ff584bf9ebf5968472b3e4ffe0fd9c8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 20:38:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 20:38:17 2005 -0800"
      },
      "message": "Allow arbitrary read-only shared pfn-remapping too\n\nThe VM layer (for historical reasons) turns a read-only shared mmap into\na private-like mapping with the VM_MAYWRITE bit clear.  Thus checking\njust VM_SHARED isn\u0027t actually sufficient.\n\nSo use a trivial helper function for the cases where we wanted to inquire\nif a mapping was COW-like or not.\n\nMoo!\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7fc7e2eeecb599ba719c4c4503100fc8cd6a6920",
      "tree": "389b63cf2cbdf27fceef52a450b4b05367fe4425",
      "parents": [
        "fb155c1619f056ae9765eed272cd6aba6e1a7399"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 19:57:52 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 19:57:52 2005 -0800"
      },
      "message": "Remove (at least temporarily) the \"incomplete PFN mapping\" support\n\nWith the previous commit, we can handle arbitrary shared re-mappings\neven without this complexity, and since the only known private mappings\nare for strange users of /dev/mem (which never create an incomplete one),\nthere seems to be no reason to support it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fb155c1619f056ae9765eed272cd6aba6e1a7399",
      "tree": "04a82b5fbf83bdb9dcf7fec9aeaaecf92532d88c",
      "parents": [
        "e4f5c82a92c2a546a16af1614114eec19120e40a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 19:46:02 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Dec 11 19:46:02 2005 -0800"
      },
      "message": "Allow arbitrary shared PFNMAP\u0027s\n\nA shared mapping doesn\u0027t cause COW-pages, so we don\u0027t need to worry\nabout the whole vm_pgoff logic to decide if a PFN-remapped page has\ngone through COW or not.\n\nThis makes it possible to entirely avoid the special \"partial remapping\"\nlogic for the common case.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e3c3374fbf7efe9487edc53cd10436ed641983aa",
      "tree": "316a9e9ea22c49de5bef8af6a4b4557353f7d36a",
      "parents": [
        "0ceaacc9785fedc500e19b024d606a82a23f5372"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 03 20:48:11 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 03 20:48:11 2005 -0800"
      },
      "message": "Make vm_insert_page() available to NVidia module\n\nIt used to use remap_pfn_range(), which wasn\u0027t GPL-only either, and the\nnew interface is actually simpler and does more checking, so we\nshouldn\u0027t unnecessarily discourage people from switching over.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ceaacc9785fedc500e19b024d606a82a23f5372",
      "tree": "ad178c7daa6ec7eaaae4e57d5ac8e20a8e806282",
      "parents": [
        "9a40525788a1b692ee0fc780a8cdb2ac808de1b0"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Dec 04 13:55:25 2005 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Dec 03 20:46:40 2005 -0800"
      },
      "message": "[PATCH] Fix up per-cpu page batch sizes\n\nThe code to clamp batch sizes to 2^n - 1 went missing and an extra\ncheck got added, which must have been a hunk of the \"higer order pcp\nbatch refills\" work sneaking in.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a145dd411eb28c83ee4bb68b66f62c326c0f764e",
      "tree": "d88745d3839f501e59cf9ada5274777af939aa2d",
      "parents": [
        "f8e988436b9d83b20bc5cc378f1a8034816ae6a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 30 09:35:19 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 30 09:35:19 2005 -0800"
      },
      "message": "VM: add \"vm_insert_page()\" function\n\nThis is what a lot of drivers will actually want to use to insert\nindividual pages into a user VMA.  It doesn\u0027t have the old PageReserved\nrestrictions of remap_pfn_range(), and it doesn\u0027t complain about partial\nremappings.\n\nThe page you insert needs to be a nice clean kernel allocation, so you\ncan\u0027t insert arbitrary page mappings with this, but that\u0027s not what\npeople want.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "49c91fb01ff3948285608c65754b3ffbf57d50f2",
      "tree": "f229ea6c060fb927080fe668a0f277d0aee3ef8a",
      "parents": [
        "2f12c74f0cfdc93e1d47ac70766e837ef29472fd"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "trond.myklebust@fys.uio.no",
        "time": "Tue Nov 29 19:27:22 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 17:29:57 2005 -0800"
      },
      "message": "[PATCH] VM: Fix typos in get_locked_pte\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "325f04dbca60a4cfe4ac25e7cf246edd07eb4c5f",
      "tree": "eb9e9fb10b1897fae3130c55c4821b829748767b",
      "parents": [
        "e5bbe4dfc8dbfc50ef89f8641e020616d4d1e69e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Nov 29 16:55:48 2005 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 14:09:17 2005 -0800"
      },
      "message": "[PATCH] pfnmap: do_no_page BUG_ON again\n\nUse copy_user_highpage directly instead of cow_user_page in do_no_page:\nin the immediately following page_cache_release, and elsewhere, it is\nassuming that new_page is normal.  If any VM_PFNMAP driver can get to\ndo_no_page, it\u0027s just a BUG (but not in the case of do_anonymous_page).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e5bbe4dfc8dbfc50ef89f8641e020616d4d1e69e",
      "tree": "8bf22ece18b6f7e20024bef19d8afd2a0b07556a",
      "parents": [
        "5d2a2dbbc1025dbf7998b9289574d9592b8f21cc"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Nov 29 16:54:51 2005 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 14:09:16 2005 -0800"
      },
      "message": "[PATCH] pfnmap: remove src_page from do_wp_page\n\nClean away do_wp_page\u0027s \"src_page\": cow_user_page makes it unnecessary.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5d2a2dbbc1025dbf7998b9289574d9592b8f21cc",
      "tree": "b4f3f45190b814b5196235c21f983fbc7878a47b",
      "parents": [
        "c9cfcddfd65735437a4cb8563d6b66a6da8a5ed6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 14:07:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 14:07:55 2005 -0800"
      },
      "message": "cow_user_page: fix page alignment\n\nHigh Dickins points out that the user virtual address passed to the page\nfault handler isn\u0027t necessarily page-aligned.\n\nAlso, add a comment on why the copy could fail for the user address case.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c9cfcddfd65735437a4cb8563d6b66a6da8a5ed6",
      "tree": "618cdf37baafe8b283bcc9923d9dde89d6428fb5",
      "parents": [
        "4168f7a31801bba6acc18662978d24ec850bbbd0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 14:03:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 14:03:14 2005 -0800"
      },
      "message": "VM: add common helper function to create the page tables\n\nThis logic was duplicated four times, for no good reason.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "238f58d898df941aa9d1cb390fb27ff4febe8965",
      "tree": "4a897b3a47e7d209e3ff8601febd3dde16f3803e",
      "parents": [
        "eca351336acb2fa943611e0846562ce3997ef53b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 13:01:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 13:01:56 2005 -0800"
      },
      "message": "Support strange discontiguous PFN remappings\n\nThese get created by some drivers that don\u0027t generally even want a pfn\nremapping at all, but would really mostly prefer to just map pages\nthey\u0027ve allocated individually instead.\n\nFor now, create a helper function that turns such an incomplete PFN\nremapping call into a loop that does that explicit mapping.  In the long\nrun we almost certainly want to export a totally different interface for\nthat, though.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eca351336acb2fa943611e0846562ce3997ef53b",
      "tree": "9b7b022d7b2d5f2f23bc979fa8bf5c1e418456bd",
      "parents": [
        "d70aa5e4b54aa7e704c886838715ac8a45d5750f"
      ],
      "author": {
        "name": "Ben Collins",
        "email": "bcollins@debian.org",
        "time": "Tue Nov 29 11:45:26 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 12:57:17 2005 -0800"
      },
      "message": "[PATCH] Fix missing pfn variables caused by vm changes\n\nI image this showed up because of \"unused var...\" when the changes\noccured, because flush_cache_page() is a noop in most places.  This\nshowed up for me on parisc however, where flush_cache_page() is a real\nfunction.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fa2a455b028f3b6ca4dae129c6337d7edf21f12c",
      "tree": "42b147522c5c112e26efa55b8173a97b424149a5",
      "parents": [
        "624f54be206adf970cd8eece16446b027913e533"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Tue Nov 29 18:43:17 2005 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 29 07:53:32 2005 -0800"
      },
      "message": "[PATCH] Fix vma argument in get_usr_pages() for gate areas\n\nThe system call gate area handling called vm_normal_page() with the\nwrong vma (which was always NULL, and caused an oops).\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ea164d73a7a0b2b2be3a1d8c2a8a4dab8999fa9c",
      "tree": "60ad3933633f1e1858f9c506546daaa077e1f81d",
      "parents": [
        "154f484b92e5c25c400f6903512c511644a49322"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Mon Nov 28 13:44:15 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:26 2005 -0800"
      },
      "message": "[PATCH] shrinker-\u003enr \u003d LONG_MAX means deadlock for icache\n\nWith Andrew Morton \u003cakpm@osdl.org\u003e\n\nThe slab scanning code tries to balance the scanning rate of slabs versus the\nscanning rate of LRU pages.  To do this, it retains state concerning how many\nslabs have been scanned - if a particular slab shrinker didn\u0027t scan enough\nobjects, we remember that for next time, and scan more objects on the next\npass.\n\nThe problem with this is that with (say) a huge number of GFP_NOIO\ndirect-reclaim attempts, the number of objects which are to be scanned when we\nfinally get a GFP_KERNEL request can be huge.  Because some shrinker handlers\njust bail out if !__GFP_FS.\n\nSo the patch clamps the number of objects-to-be-scanned to 2* the total number\nof objects in the slab cache.\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f7b7fd8f3ebbb2810d6893295aa984acd0fd30db",
      "tree": "01afc1edafc50a3c65ec8576c05c60da53d8d242",
      "parents": [
        "a93a117eaa0bec426d4671a49bfa96a6fdcd2ac9"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Nov 28 13:44:07 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:25 2005 -0800"
      },
      "message": "[PATCH] temporarily disable swap token on memory pressure\n\nSome users (hi Zwane) have seen a problem when running a workload that\neats nearly all of physical memory - th system does an OOM kill, even\nwhen there is still a lot of swap free.\n\nThe problem appears to be a very big task that is holding the swap\ntoken, and the VM has a very hard time finding any other page in the\nsystem that is swappable.\n\nInstead of ignoring the swap token when sc-\u003epriority reaches 0, we could\nsimply take the swap token away from the memory hog and make sure we\ndon\u0027t give it back to the memory hog for a few seconds.\n\nThis patch resolves the problem Zwane ran into.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3148890bfa4f36c9949871264e06ef4d449eeff9",
      "tree": "f8d7b2498ec83883d1434abd9042ae8e6863bdb2",
      "parents": [
        "aa877b3dc9f2a1fdffac4ea36bee97c21db11a69"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Mon Nov 28 13:44:03 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:24 2005 -0800"
      },
      "message": "[PATCH] mm: __alloc_pages cleanup fix\n\nI believe this patch is required to fix breakage in the asynch reclaim\nwatermark logic introduced by this patch:\n\nhttp://www.kernel.org/git/?p\u003dlinux/kernel/git/torvalds/linux-2.6.git;a\u003dcommitdiff;h\u003d7fb1d9fca5c6e3b06773b69165a73f3fb786b8ee\n\nJust some background of the watermark logic in case it isn\u0027t clear...\nBasically what we have is this:\n\n ---  pages_high\n   |\n   | (a)\n   |\n ---  pages_low\n   |\n   | (b)\n   |\n ---  pages_min\n   |\n   | (c)\n   |\n ---  0\n\nNow when pages_low is reached, we want to kick asynch reclaim, which gives us\nan interval of \"b\" before we must start synch reclaim, and gives kswapd an\ninterval of \"a\" before it need go back to sleep.\n\nWhen pages_min is reached, normal allocators must enter synch reclaim, but\nPF_MEMALLOC, ALLOC_HARDER, and ALLOC_HIGH (ie.  atomic allocations, recursive\nallocations, etc.) get access to varying amounts of the reserve \"c\".\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"Seth, Rohit\" \u003crohit.seth@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0f39591cc178026607fcbbe9a53be435fe8285d",
      "tree": "18387c401edd3f672a30246b6e580067d8806355",
      "parents": [
        "5cd9194a1b0b0fa219c31421ac64dfd38670ed49"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Nov 28 13:43:44 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:42:22 2005 -0800"
      },
      "message": "[PATCH] Workaround for gcc 2.96 (undefined references)\n\n  LD      .tmp_vmlinux1\nmm/built-in.o(.text+0x100d6): In function `copy_page_range\u0027:\n: undefined reference to `__pud_alloc\u0027\nmm/built-in.o(.text+0x1010b): In function `copy_page_range\u0027:\n: undefined reference to `__pmd_alloc\u0027\nmm/built-in.o(.text+0x11ef4): In function `__handle_mm_fault\u0027:\n: undefined reference to `__pud_alloc\u0027\nfs/built-in.o(.text+0xc930): In function `install_arg_page\u0027:\n: undefined reference to `__pud_alloc\u0027\nmake: *** [.tmp_vmlinux1] Error 1\n\nThose missing references in mm/memory.c arise from this code in\ninclude/linux/mm.h, combined with the fact that __PGTABLE_PMD_FOLDED and\n__PGTABLE_PUD_FOLDED are both set and __ARCH_HAS_4LEVEL_HACK is not:\n\n/*\n * The following ifdef needed to get the 4level-fixup.h header to work.\n * Remove it when 4level-fixup.h has been removed.\n */\n#if defined(CONFIG_MMU) \u0026\u0026 !defined(__ARCH_HAS_4LEVEL_HACK)\nstatic inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)\n{\n        return (unlikely(pgd_none(*pgd)) \u0026\u0026 __pud_alloc(mm, pgd, address))?\n                NULL: pud_offset(pgd, address);\n}\n\nstatic inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)\n{\n        return (unlikely(pud_none(*pud)) \u0026\u0026 __pmd_alloc(mm, pud, address))?\n                NULL: pmd_offset(pud, address);\n}\n#endif /* CONFIG_MMU \u0026\u0026 !__ARCH_HAS_4LEVEL_HACK */\n\nWith my configuration the pgd_none and pud_none routines are inlines\nreturning a constant 0.  Apparently the old compiler avoids generating\ncalls to __pud_alloc and __pmd_alloc but still lists them as undefined\nreferences in the module\u0027s symbol table.\n\nI don\u0027t know which change caused this problem.  I think it was added\nsomewhere between 2.6.14 and 2.6.15-rc1, because I remember building\nseveral 2.6.14-rc kernels without difficulty.  However I can\u0027t point to an\nindividual culprit.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6aab341e0a28aff100a09831c5300a2994b8b986",
      "tree": "1af3908275aa5e1b16e80efee554a9a7504c56d4",
      "parents": [
        "458af5439fe7ae7d95ca14106844e61f0795166c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:34:23 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 28 14:34:23 2005 -0800"
      },
      "message": "mm: re-architect the VM_UNPAGED logic\n\nThis replaces the (in my opinion horrible) VM_UNMAPPED logic with very\nexplicit support for a \"remapped page range\" aka VM_PFNMAP.  It allows a\nVM area to contain an arbitrary range of page table entries that the VM\nnever touches, and never considers to be normal pages.\n\nAny user of \"remap_pfn_range()\" automatically gets this new\nfunctionality, and doesn\u0027t even have to mark the pages reserved or\nindeed mark them any other way.  It just works.  As a side effect, doing\nmmap() on /dev/mem works for arbitrary ranges.\n\nSparc update from David in the next commit.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "479ef592f3664dd629417098c8599261c0f689ab",
      "tree": "616270b5c79cc3ef5f1fba683f1913f4bea74f47",
      "parents": [
        "02b7068221eed702a37527fa2da4d63a27b3126a"
      ],
      "author": {
        "name": "Oleg Drokin",
        "email": "green@linuxhacker.ru",
        "time": "Wed Nov 23 13:37:47 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 23 16:08:39 2005 -0800"
      },
      "message": "[PATCH] 32bit integer overflow in invalidate_inode_pages2()\n\nFix a 32 bit integer overflow in invalidate_inode_pages2_range.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7b6ac9dffe6f4dd8776908b234ac1410ed15f112",
      "tree": "1e30fde299519eb964899be79560599e04a32a66",
      "parents": [
        "c101e77301877086e6f977fcfb140d1cbbe23fd5"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Nov 23 13:37:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Nov 23 16:08:38 2005 -0800"
      },
      "message": "[PATCH] mm: update split ptlock Kconfig\n\nCloser attention to the arithmetic shows that neither ppc64 nor sparc really\nuses one page for multiple page tables: how on earth could they, while\npte_alloc_one returns just a struct page pointer, with no offset?\n\nWell, arm26 manages it by returning a pte_t pointer cast to a struct page\npointer, harumph, then compensating in its pmd_populate.  But arm26 is never\nSMP, so it\u0027s not a problem for split ptlock either.\n\nAnd the PA-RISC situation has been recently improved: CONFIG_PA20 works\nwithout the 16-byte alignment which inflated its spinlock_t.  But the current\nunion of spinlock_t with private does make the 7xxx struct page significantly\nlarger, even without debug, so disable its split ptlock.\n\nSigned-off-by: 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": "0bd0f9fb190a0fc0fb25b764c8b04869711f7657",
      "tree": "0bd7b58c037b5905cf834f27625bd4e0cbb2f3f2",
      "parents": [
        "5ef897c71a8985b62b7ec320a37376daaad364d0"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Nov 21 21:32:28 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:43 2005 -0800"
      },
      "message": "[PATCH] hugetlb: fix race in set_max_huge_pages for multiple updaters of nr_huge_pages\n\nIf there are multiple updaters to /proc/sys/vm/nr_hugepages simultaneously\nit is possible for the nr_huge_pages variable to become incorrect.  There\nis no locking in the set_max_huge_pages function around\nalloc_fresh_huge_page which is able to update nr_huge_pages.  Two callers\nto alloc_fresh_huge_page could race against each other as could a call to\nalloc_fresh_huge_page and a call to update_and_free_page.  This patch just\nexpands the area covered by the hugetlb_lock to cover the call into\nalloc_fresh_huge_page.  I\u0027m not sure how we could say that a sysctl section\nis performance critical where more specific locking would be needed.\n\nMy reproducer was to run a couple copies of the following script\nsimultaneously\n\nwhile [ true ]; do\n\techo 1000 \u003e /proc/sys/vm/nr_hugepages\n\techo 500 \u003e /proc/sys/vm/nr_hugepages\n\techo 750 \u003e /proc/sys/vm/nr_hugepages\n\techo 100 \u003e /proc/sys/vm/nr_hugepages\n\techo 0 \u003e /proc/sys/vm/nr_hugepages\ndone\n\nand then watch /proc/meminfo and eventually you will see things like\n\nHugePages_Total:     100\nHugePages_Free:      109\n\nAfter applying the patch all seemed well.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "689bcebfda16d7bace742740bfb3137fff30b529",
      "tree": "7a7c1f583ed2c4838244650d83b53557ec1a8efa",
      "parents": [
        "f57e88a8d83de8d844b57e16b84d2f762fe9f092"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:20 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: PG_reserved bad_page\n\nIt used to be the case that PG_reserved pages were silently never freed, but\nin 2.6.15-rc1 they may be freed with a \"Bad page state\" message.  We should\nwork through such cases as they appear, fixing the code; but for now it\u0027s\nsafer to issue the message without freeing the page, leaving PG_reserved set.\n\nSigned-off-by: 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": "f57e88a8d83de8d844b57e16b84d2f762fe9f092",
      "tree": "32fee3ab5c177bc0f47827dd18ad4471be3b2a74",
      "parents": [
        "ee498ed730283e9cdfc8913f12b90a2246f1a8cc"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:19 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: ZERO_PAGE in VM_UNPAGED\n\nIt\u0027s strange enough to be looking out for anonymous pages in VM_UNPAGED areas,\nlet\u0027s not insert the ZERO_PAGE there - though whether it would matter will\ndepend on what we decide about ZERO_PAGE refcounting.\n\nBut whereas do_anonymous_page may (exceptionally) be called on a VM_UNPAGED\narea, do_no_page should never be: just BUG_ON.\n\nSigned-off-by: 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": "ee498ed730283e9cdfc8913f12b90a2246f1a8cc",
      "tree": "797966a8454e40fdf1879bacea510ad8c55a91a2",
      "parents": [
        "920fc356f58d0e455bdfa53451f1c58eb211a846"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:18 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: anon in VM_UNPAGED\n\ncopy_one_pte needs to copy the anonymous COWed pages in a VM_UNPAGED area,\nzap_pte_range needs to free them, do_wp_page needs to COW them: just like\nordinary pages, not like the unpaged.\n\nBut recognizing them is a little subtle: because PageReserved is no longer a\ncondition for remap_pfn_range, we can now mmap all of /dev/mem (whether the\ndistro permits, and whether it\u0027s advisable on this or that architecture, is\nanother matter).  So if we can see a PageAnon, it may not be ours to mess with\n(or may be ours from elsewhere in the address space).  I suspect there\u0027s an\nentertaining insoluble self-referential problem here, but the page_is_anon\nfunction does a good practical job, and MAP_PRIVATE PROT_WRITE VM_UNPAGED will\nalways be an odd choice.\n\nIn updating the comment on page_address_in_vma, noticed a potential NULL\ndereference, in a path we don\u0027t actually take, but fixed it.\n\nSigned-off-by: 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": "920fc356f58d0e455bdfa53451f1c58eb211a846",
      "tree": "cb5fe90bc74ad9dd95191bb3c105aadd833197f2",
      "parents": [
        "101d2be7646b7dd1c367d50208a59b29fce61398"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: COW on VM_UNPAGED\n\nRemove the BUG_ON(vma-\u003evm_flags \u0026 VM_UNPAGED) from do_wp_page, and let it do\nCopy-On-Write without touching the VM_UNPAGED\u0027s page counts - but this is\nincomplete, because the anonymous page it inserts will itself need to be\nhandled, here and in other functions - next patch.\n\nWe still don\u0027t copy the page if the pfn is invalid, because the\ncopy_user_highpage interface does not allow it.  But that\u0027s not been a problem\nin the past: can be added in later if the need arises.\n\nSigned-off-by: 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": "101d2be7646b7dd1c367d50208a59b29fce61398",
      "tree": "5b01c8a93a749cc776744c71c4f79e95ef5d6393",
      "parents": [
        "0b14c179a483e71ea41df2aa4a661760063115bd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:16 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: VM_NONLINEAR VM_RESERVED\n\nThere\u0027s one peculiar use of VM_RESERVED which the previous patch left behind:\nbecause VM_NONLINEAR\u0027s try_to_unmap_cluster uses vm_private_data as a swapout\ncursor, but should never meet VM_RESERVED vmas, it was a way of extending\nVM_NONLINEAR to VM_RESERVED vmas using vm_private_data for some other purpose.\n But that\u0027s an empty set - they don\u0027t have the populate function required.  So\njust throw away those VM_RESERVED tests.\n\nBut one more interesting in rmap.c has to go too: try_to_unmap_one will want\nto swap out an anonymous page from VM_RESERVED or VM_UNPAGED area.\n\nSigned-off-by: 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": "0b14c179a483e71ea41df2aa4a661760063115bd",
      "tree": "075fc303a3d2fd33f66c0af8f64064cff2b72b79",
      "parents": [
        "664beed0190fae687ac51295694004902ddeb18e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:15 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: VM_UNPAGED\n\nAlthough we tend to associate VM_RESERVED with remap_pfn_range, quite a few\ndrivers set VM_RESERVED on areas which are then populated by nopage.  The\nPageReserved removal in 2.6.15-rc1 changed VM_RESERVED not to free pages in\nzap_pte_range, without changing those drivers not to set it: so their pages\njust leak away.\n\nLet\u0027s not change miscellaneous drivers now: introduce VM_UNPAGED at the core,\nto flag the special areas where the ptes may have no struct page, or if they\nhave then it\u0027s not to be touched.  Replace most instances of VM_RESERVED in\ncore mm by VM_UNPAGED.  Force it on in remap_pfn_range, and the sparc and\nsparc64 io_remap_pfn_range.\n\nRevert addition of VM_RESERVED to powerpc vdso, it\u0027s not needed there.  Is it\nneeded anywhere?  It still governs the mm-\u003ereserved_vm statistic, and special\nvmas not to be merged, and areas not to be core dumped; but could probably be\neliminated later (the drivers are probably specifying it because in 2.4 it\nkept swapout off the vma, but in 2.6 we work from the LRU, which these pages\ndon\u0027t get on).\n\nUse the VM_SHM slot for VM_UNPAGED, and define VM_SHM to 0: it serves no\npurpose whatsoever, and should be removed from drivers when we clean up.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: William Irwin \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "664beed0190fae687ac51295694004902ddeb18e",
      "tree": "89a7c8d9d541fb678c567834cb758fc88b375d47",
      "parents": [
        "1cdca61bf8537043edde8ef784ce1a1351361dac"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:14 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: unifdefed PageCompound\n\nIt looks like snd_xxx is not the only nopage to be using PageReserved as a way\nof holding a high-order page together: which no longer works, but is masked by\nour failure to free from VM_RESERVED areas.  We cannot fix that bug without\nfirst substituting another way to hold the high-order page together, while\nfarming out the 0-order pages from within it.\n\nThat\u0027s just what PageCompound is designed for, but it\u0027s been kept under\nCONFIG_HUGETLB_PAGE.  Remove the #ifdefs: which saves some space (out- of-line\nput_page), doesn\u0027t slow down what most needs to be fast (already using\nhugetlb), and unifies the way we handle high-order pages.\n\nSigned-off-by: 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": "83e9b7e929d1323b9a155d186f77aa8c06155cc3",
      "tree": "3cad39e867ca337b08bc4a7309c2b17787abd527",
      "parents": [
        "ed5297a94090d9a9f27b0ce1f9601ebe73561cff"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:12 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:42 2005 -0800"
      },
      "message": "[PATCH] unpaged: private write VM_RESERVED\n\nThe PageReserved removal in 2.6.15-rc1 issued a \"deprecated\" message when you\ntried to mmap or mprotect MAP_PRIVATE PROT_WRITE a VM_RESERVED, and failed\nwith -EACCES: because do_wp_page lacks the refinement to COW pages in those\nareas, nor do we expect to find anonymous pages in them; and it seemed just\nbloat to add code for handling such a peculiar case.  But immediately it\ncaused vbetool and ddcprobe (using lrmi) to fail.\n\nSo revert the \"deprecated\" messages, letting mmap and mprotect succeed.  But\nleave do_wp_page\u0027s BUG_ON(vma-\u003evm_flags \u0026 VM_RESERVED) in place until we\u0027ve\nadded the code to do it right: so this particular patch is only good if the\napp doesn\u0027t really need to write to that private area.\n\nSigned-off-by: 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": "ed5297a94090d9a9f27b0ce1f9601ebe73561cff",
      "tree": "00d28144ae949b3f9d566279cb12be0c802f86e6",
      "parents": [
        "aa1a64ee12ae130706f3fc0007841ce9b0ddf9c2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 21 21:32:11 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Nov 22 09:13:41 2005 -0800"
      },
      "message": "[PATCH] unpaged: get_user_pages VM_RESERVED\n\nThe PageReserved removal in 2.6.15-rc1 prohibited get_user_pages on the areas\nflagged VM_RESERVED in place of PageReserved.  That is correct in theory - we\nought not to interfere with struct pages in such a reserved area; but in\npractice it broke BTTV for one.\n\nSo revert to prohibiting only on VM_IO: if someone gets into trouble with\nget_user_pages on VM_RESERVED, it\u0027ll just be a \"don\u0027t do that\".\n\nYou can argue that videobuf_mmap_mapper shouldn\u0027t set VM_RESERVED in the first\nplace, but now\u0027s not the time for breaking drivers without notice.\n\nSigned-off-by: 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": "2161558fa5bebfeb272493ae91e836b497029023",
      "tree": "16304f91757243626d74e65063ee7224cacbf797",
      "parents": [
        "e670dfb9a4f9e136da44db167da75b2365f7cebb",
        "e67b23c71cb9ee02d65a74c3858716ba2dedd554"
      ],
      "author": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Fri Nov 18 16:39:20 2005 -0500"
      },
      "committer": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Fri Nov 18 16:39:20 2005 -0500"
      },
      "message": "Merge branch \u0027master\u0027\n"
    },
    {
      "commit": "9ab8851549fb9ed570013c33e0786a3fd084be41",
      "tree": "a5ed61d5e2a09ee0f8bd1a9e707b46954dff13ae",
      "parents": [
        "a39cf72ceb406e152c4682c0b635a96f1439c5ed"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "willy@parisc-linux.org",
        "time": "Fri Nov 18 16:16:42 2005 -0500"
      },
      "committer": {
        "name": "Kyle McMartin",
        "email": "kyle@parisc-linux.org",
        "time": "Fri Nov 18 16:16:42 2005 -0500"
      },
      "message": "[PARISC] Fix compile warning caused by conflicting types of expand_upwards()\n\nFix compile warning caused by conflicting types of expand_upwards. IA64\nrequires it to not be static inline, as it\u0027s used outside mm/mmap.c\n\nSigned-off-by: Matthew Wilcox \u003cwilly@parisc-linux.org\u003e\nSigned-off-by: Kyle McMartin \u003ckyle@parisc-linux.org\u003e\n"
    },
    {
      "commit": "58bb01a9cd72eebf60d00c57b948a76aa7b85727",
      "tree": "556a2185831feae57684f9c92f011a559420dab7",
      "parents": [
        "996417d2c4eb583e94553e4ede58974e0da1c38e"
      ],
      "author": {
        "name": "Hans Reiser",
        "email": "reiser@namesys.com",
        "time": "Fri Nov 18 01:10:53 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 18 07:49:45 2005 -0800"
      },
      "message": "[PATCH] re-export clear_page_dirty_for_io()\n\n2.6.14 has this exported, and reiser4 (at least) uses it.  Put things back\nthe way they were.\n\nSigned-off-by: Vladimir V. Saveliev \u003cvs@namesys.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b1de9161e973bac8c4675db608fe4f38d2689bd",
      "tree": "3ab6aaad7d22dcb7a00a339b8b49c2f5b2ecc12d",
      "parents": [
        "bb833986674ce1fc1b237b3d81459511ad2df393"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Nov 17 21:35:02 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Nov 17 12:43:01 2005 -0800"
      },
      "message": "[PATCH] VM: fix zone list restart in page allocatate\n\nWe must reassign z before looping through the zones kicking kswapd,\nsince it will be NULL if we hit an OOM condition and jump back to the\nbeginning again. \u0027z\u0027 is initially assigned before the restart: label. So\nmove the restart label up a little.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "4060994c3e337b40e0f6fa8ce2cc178e021baf3d",
      "tree": "980297c1747ca89354bc879cc5d17903eacb19e2",
      "parents": [
        "0174f72f848dfe7dc7488799776303c81b181b16",
        "d3ee871e63d0a0c70413dc0aa5534b8d6cd6ec37"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:56:02 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:56:02 2005 -0800"
      },
      "message": "Merge x86-64 update from Andi\n"
    },
    {
      "commit": "07808b74e7dab1aa385e698795875337d72daf7d",
      "tree": "3b593c31e6e58364f4001105bfeebefa94708209",
      "parents": [
        "1dff7f3db5f045ccbfeca5bb00b0958a78501557"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Nov 05 17:25:53 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:55:14 2005 -0800"
      },
      "message": "[PATCH] x86_64: Remove obsolete ARCH_HAS_ATOMIC_UNSIGNED and page_flags_t\n\nHas been introduced for x86-64 at some point to save memory\nin struct page, but has been obsolete for some time. Just\nremove it.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0d41693217b3bb5b837940dc7465e82a9d49476",
      "tree": "965dbdfea6644d57fd107619b2ea9e0c9ec6bdc1",
      "parents": [
        "fed644132f8ec4bf05b63f79c507c0acaa692c37"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Nov 05 17:25:53 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:55:13 2005 -0800"
      },
      "message": "[PATCH] x86_64: When cpu_up fails clean up page allocator properly\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a2f1b424900715ed9d1699c3bb88a434a2b42bc0",
      "tree": "8ef440f840656365166ff2d71aa445c224c53546",
      "parents": [
        "56720367cd89ef5265f39da2d674c5b92cd4cd87"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@suse.de",
        "time": "Sat Nov 05 17:25:53 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 14 19:55:13 2005 -0800"
      },
      "message": "[PATCH] x86_64: Add 4GB DMA32 zone\n\nAdd a new 4GB GFP_DMA32 zone between the GFP_DMA and GFP_NORMAL zones.\n\nAs a bit of historical background: when the x86-64 port\nwas originally designed we had some discussion if we should\nuse a 16MB DMA zone like i386 or a 4GB DMA zone like IA64 or\nboth. Both was ruled out at this point because it was in early\n2.4 when VM is still quite shakey and had bad troubles even\ndealing with one DMA zone.  We settled on the 16MB DMA zone mainly\nbecause we worried about older soundcards and the floppy.\n\nBut this has always caused problems since then because\ndevice drivers had trouble getting enough DMA able memory. These days\nthe VM works much better and the wide use of NUMA has proven\nit can deal with many zones successfully.\n\nSo this patch adds both zones.\n\nThis helps drivers who need a lot of memory below 4GB because\ntheir hardware is not accessing more (graphic drivers - proprietary\nand free ones, video frame buffer drivers, sound drivers etc.).\nPreviously they could only use IOMMU+16MB GFP_DMA, which\nwas not enough memory.\n\nAnother common problem is that hardware who has full memory\naddressing for \u003e4GB misses it for some control structures in memory\n(like transmit rings or other metadata).  They tended to allocate memory\nin the 16MB GFP_DMA or the IOMMU/swiotlb then using pci_alloc_consistent,\nbut that can tie up a lot of precious 16MB GFPDMA/IOMMU/swiotlb memory\n(even on AMD systems the IOMMU tends to be quite small) especially if you have\nmany devices.  With the new zone pci_alloc_consistent can just put\nthis stuff into memory below 4GB which works better.\n\nOne argument was still if the zone should be 4GB or 2GB. The main\nmotivation for 2GB would be an unnamed not so unpopular hardware\nraid controller (mostly found in older machines from a particular four letter\ncompany) who has a strange 2GB restriction in firmware. But\nthat one works ok with swiotlb/IOMMU anyways, so it doesn\u0027t really\nneed GFP_DMA32. I chose 4GB to be compatible with IA64 and because\nit seems to be the most common restriction.\n\nThe new zone is so far added only for x86-64.\n\nFor other architectures who don\u0027t set up this\nnew zone nothing changes. Architectures can set a compatibility\ndefine in Kconfig CONFIG_DMA_IS_DMA32 that will define GFP_DMA32\nas GFP_DMA. Otherwise it\u0027s a nop because on 32bit architectures\nit\u0027s normally not needed because GFP_NORMAL (\u003d0) is DMA able\nenough.\n\nOne problem is still that GFP_DMA means different things on different\narchitectures. e.g. some drivers used to have #ifdef ia64  use GFP_DMA\n(trusting it to be 4GB) #elif __x86_64__ (use other hacks like\nthe swiotlb because 16MB is not enough) ... . This was quite\nugly and is now obsolete.\n\nThese should be now converted to use GFP_DMA32 unconditionally. I haven\u0027t done\nthis yet. Or best only use pci_alloc_consistent/dma_alloc_coherent\nwhich will use GFP_DMA32 transparently.\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "50c85a19e7b3928b5b5188524c44ffcbacdd4e35",
      "tree": "a886792eba2e11615c3846bc6b1c77c41ce6dda0",
      "parents": [
        "065d41cb269e9debb18c6d5052e4de1088ae3d8f"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Nov 13 16:06:47 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:12 2005 -0800"
      },
      "message": "[PATCH] slab: remove alloc_pages() calls\n\nThe slab allocator never uses alloc_pages since kmem_getpages() is always\ncalled with a valid nodeid.  Remove the branch and the code from\nkmem_getpages()\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "065d41cb269e9debb18c6d5052e4de1088ae3d8f",
      "tree": "db3fbad420fc3dec144c76ecc51cc1d72e31aef9",
      "parents": [
        "669ed17521b9b78cdbeac8a53c30599aca9527ce"
      ],
      "author": {
        "name": "Pekka Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Sun Nov 13 16:06:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:12 2005 -0800"
      },
      "message": "[PATCH] slab: convert cache to page mapping macros\n\nThis patch converts object cache \u003c-\u003e page mapping macros to static inline\nfunctions to make the more explicit and readable.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "669ed17521b9b78cdbeac8a53c30599aca9527ce",
      "tree": "9a4c037120b7a85943c37115be9f4a6eacb28874",
      "parents": [
        "2d6c666e8704cf06267f29a4fa3d2cf823469c38"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sun Nov 13 16:06:45 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:12 2005 -0800"
      },
      "message": "[PATCH] mm: highmem watermarks\n\nThe pages_high - pages_low and pages_low - pages_min deltas are the asynch\nreclaim watermarks.  As such, the should be in the same ratios as any other\nzone for highmem zones.  It is the pages_min - 0 delta which is the\nPF_MEMALLOC reserve, and this is the region that isn\u0027t very useful for\nhighmem.\n\nThis patch ensures highmem systems have similar characteristics as non highmem\nones with the same amount of memory, and also that highmem zones get similar\nreclaim pressures to other zones.\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": "7fb1d9fca5c6e3b06773b69165a73f3fb786b8ee",
      "tree": "21f8b7deeb8a7e1197edfccc610365a12d60322e",
      "parents": [
        "51c6f666fceb3184eeff045dad4432b602cd648e"
      ],
      "author": {
        "name": "Rohit Seth",
        "email": "rohit.seth@intel.com",
        "time": "Sun Nov 13 16:06:43 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:12 2005 -0800"
      },
      "message": "[PATCH] mm: __alloc_pages cleanup\n\nClean up of __alloc_pages.\n\nRestoration of previous behaviour, plus further cleanups by introducing an\n\u0027alloc_flags\u0027, removing the last of should_reclaim_zone.\n\nSigned-off-by: Rohit Seth \u003crohit.seth@intel.com\u003e\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": "51c6f666fceb3184eeff045dad4432b602cd648e",
      "tree": "33e29916e0fea872ba6f29eba698219a740b078f",
      "parents": [
        "885036d32f5d3c427c3e2b385b5a5503805e3e52"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Sun Nov 13 16:06:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:12 2005 -0800"
      },
      "message": "[PATCH] mm: ZAP_BLOCK causes redundant work\n\nThe address based work estimate for unmapping (for lockbreak) is and always\nwas horribly inefficient for sparse mappings.  The problem is most simply\nexplained with an example:\n\nIf we find a pgd is clear, we still have to call into unmap_page_range\nPGDIR_SIZE / ZAP_BLOCK_SIZE times, each time checking the clear pgd, in\norder to progress the working address to the next pgd.\n\nThe fundamental way to solve the problem is to keep track of the end\naddress we\u0027ve processed and pass it back to the higher layers.\n\nFrom: Nick Piggin \u003cnpiggin@suse.de\u003e\n\n  Modification to completely get away from address based work estimate\n  and instead use an abstract count, with a very small cost for empty\n  entries as opposed to present pages.\n\n  On 2.6.14-git2, ppc64, and CONFIG_PREEMPT\u003dy, mapping and unmapping 1TB\n  of virtual address space takes 1.69s; with the following patch applied,\n  this operation can be done 1000 times in less than 0.01s\n\nFrom: Andrew Morton \u003cakpm@osdl.org\u003e\n\nWith CONFIG_HUTETLB_PAGE\u003dn:\n\nmm/memory.c: In function `unmap_vmas\u0027:\nmm/memory.c:779: warning: division by zero\n\nDue to\n\n\t\t\tzap_work -\u003d (end - start) /\n\t\t\t\t\t(HPAGE_SIZE / PAGE_SIZE);\n\nSo make the dummy HPAGE_SIZE non-zero\n\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\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": "885036d32f5d3c427c3e2b385b5a5503805e3e52",
      "tree": "7f442b309a749d8cbe0f2ac5c38531eeff8bfcd8",
      "parents": [
        "d4d28dd4b12649d02a89d19e6bd12ab92a6fcd4e"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Sun Nov 13 16:06:41 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 13 18:14:12 2005 -0800"
      },
      "message": "[PATCH] mm: __GFP_NOFAIL fix\n\nIn __alloc_pages():\n\nif ((p-\u003eflags \u0026 (PF_MEMALLOC | PF_MEMDIE)) \u0026\u0026 !in_interrupt()) {\n         /* go through the zonelist yet again, ignoring mins */\n         for (i \u003d 0; zones[i] !\u003d NULL; i++) {\n                 struct zone *z \u003d zones[i];\n\n                 page \u003d buffered_rmqueue(z, order, gfp_mask);\n                 if (page) {\n                         zone_statistics(zonelist, z);\n                         goto got_pg;\n                 }\n         }\n         goto nopage;                \u003c\u003c\u003c\u003c HERE!!! FAIL...\n}\n\nkswapd (which has PF_MEMALLOC flag) can fail to allocate memory even when\nit allocates it with __GFP_NOFAIL flag.\n\nSigned-Off-By: Pavel Emelianov \u003cxemul@sw.ru\u003e\nSigned-Off-By: Denis Lunev \u003cden@sw.ru\u003e\nSigned-Off-By: Kirill Korotaev \u003cdev@sw.ru\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "63f45b80947cb0819673860f6970f483e2cab21d",
      "tree": "6b0d46c7da70786c15ee893d8a48aa866ae3742c",
      "parents": [
        "85837ebdd7bb3e96a60e9b4c6af6c60d1273bc67",
        "b2d1a8adc9cf3bde32a18a1a1856641638a9c729"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 11 16:29:22 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 11 16:29:22 2005 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n"
    },
    {
      "commit": "6b482c6779daaa893b277fc9b70767a7c2e7c5eb",
      "tree": "e5e5be3db037e724b276a0324b44810207dc5341",
      "parents": [
        "393b07258766130146b962bc294d66615a47468a"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Thu Nov 10 15:45:56 2005 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Nov 10 13:25:53 2005 -0800"
      },
      "message": "[PATCH] Don\u0027t print per-cpu vm stats for offline cpus.\n\nI just hit a page allocation error on a kernel configured to support\n64 CPUs.  It spewed 60 completely useless unnecessary lines of info.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dc6f3f276e2b4cbc1563def8fb39373a45db84ac",
      "tree": "d16d7f3e84b2f9c320748c0bb5610cd996775b9b",
      "parents": [
        "f093182d313edde9b1f86dbdaf40ba4da2dbd0e7"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Nov 08 16:44:08 2005 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@r063144.stusta.swh.mhn.de",
        "time": "Tue Nov 08 16:44:08 2005 +0100"
      },
      "message": "mm/slab.c: fix a comment typo\n"
    },
    {
      "commit": "4936967374c1ad0eb3b734f24875e2484c3786cc",
      "tree": "99d7edc8c2730d68ca4b4ef7ee26b8401667b521",
      "parents": [
        "e2de225710b0f7480c29700bf93326b078657db8"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:41 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:07 2005 -0800"
      },
      "message": "[PATCH] mm/swap_state.c: unexport swapper_space\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e2de225710b0f7480c29700bf93326b078657db8",
      "tree": "d2c0ea62f9a5c0c8f262633af2d2e5a7745e651b",
      "parents": [
        "1b09d16489f831bfc23d1c7311ee331b0680e90e"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:41 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:07 2005 -0800"
      },
      "message": "[PATCH] mm/swapfile.c: unexport total_swap_pages\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1b09d16489f831bfc23d1c7311ee331b0680e90e",
      "tree": "999528c9e6b6686bb008d6a683aab3527892fa61",
      "parents": [
        "47bdfb96de47d25bea423b5adbfe1c2e1ceaa296"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:07 2005 -0800"
      },
      "message": "[PATCH] mm/swap.c: unexport vm_acct_memory\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f8b8db77b0cc36670ef4ed6bc31e64537ffa197e",
      "tree": "a55807b704a7120722d3903ec92c3d393b33f87d",
      "parents": [
        "e6a7e0e7cee3d4bc9a9d2f82ef2f9de4687a5656"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:39 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:07 2005 -0800"
      },
      "message": "[PATCH] unexport nr_swap_pages\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e6a7e0e7cee3d4bc9a9d2f82ef2f9de4687a5656",
      "tree": "a9f5fcf248676f96517bae6216f5a4c9809bcb84",
      "parents": [
        "99697dc02d2c1e8234c88d4256879d080483a57a"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:06 2005 -0800"
      },
      "message": "[PATCH] unexport clear_page_dirty_for_io\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "99697dc02d2c1e8234c88d4256879d080483a57a",
      "tree": "26893c01e209eac31cda3c7137e26b1f127a5ed8",
      "parents": [
        "55be570c529643e83195d6688805127533184aa4"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:06 2005 -0800"
      },
      "message": "[PATCH] unexport hugetlb_total_pages\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55be570c529643e83195d6688805127533184aa4",
      "tree": "ab5789c467842e1d056f36d75ab8c73ddcce935f",
      "parents": [
        "a7f988ba304c5f6e78f937a06d120a0097b4d351"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Nov 07 01:01:37 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:54:06 2005 -0800"
      },
      "message": "[PATCH] mm/{mmap,nommu}.c: several unexports\n\nI didn\u0027t find any possible modular usage in the kernel.\n\nThis patch was already ACK\u0027ed by Christoph Hellwig.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d44e0780bcc47c9b8851099c0dfc1dda3c9db5a9",
      "tree": "eb672239ab94d3c66485ceeae41e5579e8baf192",
      "parents": [
        "7f46a240b0a1797eb641c046d445f026563463d4"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:10 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:56 2005 -0800"
      },
      "message": "[PATCH] kernel-doc: fix warnings in vmalloc.c\n\nFix new kernel-doc errors in vmalloc.c.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1e5d533142c1c178a31d4cc81837eb078f9269bc",
      "tree": "7708cc8667035ad7903f3c2c617a54240f2d6e77",
      "parents": [
        "8a0d4900697f2d615a77cd99585e743c1af555a3"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Mon Nov 07 01:01:06 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:55 2005 -0800"
      },
      "message": "[PATCH] more kernel-doc cleanups, additions\n\nVarious core kernel-doc cleanups:\n- add missing function parameters in ipc, irq/manage, kernel/sys,\n  kernel/sysctl, and mm/slab;\n- move description to just above function for kernel_restart()\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7361f4d8ca65d23a18ba009b4484612183332c2f",
      "tree": "7e3dcf22f7d191bcbeb78eb633ae067a76163124",
      "parents": [
        "bf8f972d3a1daf969cf44f64cc36d53bfd76441f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Nov 07 00:59:28 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:37 2005 -0800"
      },
      "message": "[PATCH] readahead commentary\n\nAdd a few comments surrounding the generic readahead API.\n\nAlso convert some ulongs into pgoff_t: the identifier for PAGE_CACHE_SIZE\noffsets into pagecache.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd61ef6268ac52d3dfa5626d1e0306a91b3b2608",
      "tree": "5df1bfd49f2e9be33505ba900d2ed153fed9a2af",
      "parents": [
        "2109a2d1b175dfcffbfdac693bdbe4c4ab62f11f"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Mon Nov 07 00:58:02 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:24 2005 -0800"
      },
      "message": "[PATCH] slab: Use same schedule timeout for all cpus in cache_reap\n\nChen noticed that cache_reap uses REAPTIMEOUT_CPUC+smp_processor_id() as\nthe timeout for rescheduling.\n\nThe \"+smp_processor_id()\" part is wrong, the timeout should be identical\nfor all cpus: start_cpu_timer already adds a cpu dependant offset to avoid\nany clustering.\n\nThe attached patch removes smp_processor_id().\n\nSigned-Off-By: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2109a2d1b175dfcffbfdac693bdbe4c4ab62f11f",
      "tree": "07b47953a74adaa7490ef24aab10c45a5a4148a6",
      "parents": [
        "4f12bb4f7715f418a9c80f89447948790f476958"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.Helsinki.FI",
        "time": "Mon Nov 07 00:58:01 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:24 2005 -0800"
      },
      "message": "[PATCH] mm: rename kmem_cache_s to kmem_cache\n\nThis patch renames struct kmem_cache_s to kmem_cache so we can start using\nit instead of kmem_cache_t typedef.\n\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4f12bb4f7715f418a9c80f89447948790f476958",
      "tree": "f08c7e26b19687d26b29082e50101daf2e5a4b75",
      "parents": [
        "7fd93cf30c531fd8b014e827e7a85fcfc010b2c6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Nov 07 00:58:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:24 2005 -0800"
      },
      "message": "[PATCH] slab: don\u0027t BUG on duplicated cache\n\nslab presently goes BUG if someone tries to register an already-registered\ncache.\n\nBut this can happen if the user accidentally loads a module which is already\nstatically linked into the kernel.  Nuking the kernel is rather a harsh\nreaction.\n\nChange it into a warning, and just fail the kmem_cache_alloc() attempt.  If\nthe module is well-behaved, the modprobe will fail and all is well.\n\nNotes:\n\n- Swaps the ranking of cache_chain_sem and lock_cpu_hotplug().  Doesn\u0027t seem\n  important.\n\nAcked-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2d4b95f06062d590aef8e44d42cec27b1828119f",
      "tree": "7beb1c976d3e08a9ef9cb37fa342e2b4f35e6aab",
      "parents": [
        "732ee21f2894819781766a0cd88e32bdd630d11e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Mon Nov 07 00:57:57 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:23 2005 -0800"
      },
      "message": "[PATCH] Suppress split ptlock on arches which may use one page for multiple page tables\n\nSuppress split ptlock on arches which may use one page for multiple page\ntables.  Reconsider what better to do (particularly on ppc64) later on.\n\nSigned-off-by: 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": "3c726f8dee6f55e96475574e9f645327e461884c",
      "tree": "f67c381e8f57959aa4a94bda4c68e24253cd8171",
      "parents": [
        "f912696ab330bf539231d1f8032320f2a08b850f"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Nov 07 11:06:55 2005 +1100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Nov 06 16:56:47 2005 -0800"
      },
      "message": "[PATCH] ppc64: support 64k pages\n\nAdds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel\nbase page size to 64K.  The resulting kernel still boots on any\nhardware.  On current machines with 4K pages support only, the kernel\nwill maintain 16 \"subpages\" for each 64K page transparently.\n\nNote that while real 64K capable HW has been tested, the current patch\nwill not enable it yet as such hardware is not released yet, and I\u0027m\nstill verifying with the firmware architects the proper to get the\ninformation from the newer hypervisors.\n\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7f28570185f98bfa83f775756ced79e9f22b6d93",
      "tree": "d193adb5d9597ff002ab1aa3a4d966458098b44a",
      "parents": [
        "ef0eaa13362041f531f951b89362bfbc177e2bc0"
      ],
      "author": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 01 10:22:55 2005 -0800"
      },
      "committer": {
        "name": "Steve French",
        "email": "sfrench@us.ibm.com",
        "time": "Tue Nov 01 10:22:55 2005 -0800"
      },
      "message": "Export __pagevec_release and pagevec_lookup_tag\n\nThese are needed to implement cifs_writepages\n\nSigned-off-by: Dave Kleikamp \u003cshaggy@austin.ibm.com\u003e\nSigned-off-by: Steve French \u003csfrench@us.ibm.com\u003e\n"
    },
    {
      "commit": "5d57bd39eb3dbf2866b5f5cee8fbd7a29b00c56f",
      "tree": "6fb9a7ff2f725625214d8624fda4ee42a44819a4",
      "parents": [
        "a3e713b5fdd0e54c2e3c8909ccde2a98839e3a52"
      ],
      "author": {
        "name": "Matt Mackall",
        "email": "mpm@selenic.com",
        "time": "Sun Oct 30 15:03:18 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:27 2005 -0800"
      },
      "message": "[PATCH] Error checks omitted in init_tmpfs() in mm/tiny-shmem.c\n\nFrom: Hareesh Nagarajan \u003chnagar2@gmail.com\u003e\n\nSigned-off-by: Hareesh Nagarajan \u003chnagar2@gmail.com\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a241ec65aeac3d69a08a7b153cccbdb7ea35063f",
      "tree": "e96585e8b1e699f31bad1fa61f34d2ec7c3a187c",
      "parents": [
        "b3099b48da23686d8378133b0264ee00385ee5fa"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun Oct 30 15:03:12 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:27 2005 -0800"
      },
      "message": "[PATCH] RCU torture-testing kernel module\n\nThis patch is a rewrite of the one submitted on October 1st, using modules\n(http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d112819093522998\u0026w\u003d2).\n\nThis rewrite adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an\nintense torture test of the RCU infratructure.  This is needed due to the\ncontinued changes to the RCU infrastructure to accommodate dynamic ticks,\nCPU hotplug, realtime, and so on.  Most of the code is in a separate file\nthat is compiled only if the CONFIG variable is set.  Documentation on how\nto run the test and interpret the output is also included.\n\nThis code has been tested on i386 and ppc64, and an earlier version of the\ncode has received extensive testing on a number of architectures as part of\nthe PREEMPT_RT patchset.\n\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c7e9dd4dd0b8dd75c410011b3c8f9980112fd0f8",
      "tree": "f044e989da0864fb614200f419f8185de5bd5560",
      "parents": [
        "39e88ca2c9d0f6d1e9f34ea2a6e86a652bb69a7a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Oct 30 15:02:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] vm: remove redundant assignment from __pagevec_release_nonlru()\n\nThis patch removes redundant assignment from __pagevec_release_nonlru().\npages_to_free.cold is set to pvec-\u003ecold by pagevec_init() call right above\nthe assignment.\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39e88ca2c9d0f6d1e9f34ea2a6e86a652bb69a7a",
      "tree": "6ee9c7f3c26ac47bb45cc835e14dc9552ceed095",
      "parents": [
        "30e0fca6c1d7d26f3f2daa4dd2b12c51dadc778a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "htejun@gmail.com",
        "time": "Sun Oct 30 15:02:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] fs: error case fix in __generic_file_aio_read\n\nWhen __generic_file_aio_read() hits an error during reading, it reports the\nerror iff nothing has successfully been read yet.  This is condition - when\nan error occurs, if nothing has been read/written, report the error code;\notherwise, report the amount of bytes successfully transferred upto that\npoint.\n\nThis corner case can be exposed by performing readv(2) with the following\niov.\n\n iov[0] \u003d len0 @ ptr0\n iov[1] \u003d len1 @ NULL (or any other invalid pointer)\n iov[2] \u003d len2 @ ptr2\n\nWhen file size is enough, performing above readv(2) results in\n\n len0 bytes from file_pos @ ptr0\n len2 bytes from file_pos + len0 @ ptr2\n\nAnd the return value is len0 + len2.  Test program is attached to this\nmail.\n\nThis patch makes __generic_file_aio_read()\u0027s error handling identical to\nother functions.\n\n#include \u003cstdio.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003csys/types.h\u003e\n#include \u003csys/stat.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cunistd.h\u003e\n#include \u003csys/uio.h\u003e\n#include \u003cerrno.h\u003e\n#include \u003cstring.h\u003e\n\nint main(int argc, char **argv)\n{\n\tconst char *path;\n\tstruct stat stbuf;\n\tsize_t len0, len1;\n\tvoid *buf0, *buf1;\n\tstruct iovec iov[3];\n\tint fd, i;\n\tssize_t ret;\n\n\tif (argc \u003c 2) {\n\t\tfprintf(stderr, \"Usage: testreadv path (better be a \"\n\t\t\t\"small text file)\\n\");\n\t\treturn 1;\n\t}\n\tpath \u003d argv[1];\n\n\tif (stat(path, \u0026stbuf) \u003c 0) {\n\t\tperror(\"stat\");\n\t\treturn 1;\n\t}\n\n\tlen0 \u003d stbuf.st_size / 2;\n\tlen1 \u003d stbuf.st_size - len0;\n\n\tif (!len0 || !len1) {\n\t\tfprintf(stderr, \"Dude, file is too small\\n\");\n\t\treturn 1;\n\t}\n\n\tif ((fd \u003d open(path, O_RDONLY)) \u003c 0) {\n\t\tperror(\"open\");\n\t\treturn 1;\n\t}\n\n\tif (!(buf0 \u003d malloc(len0)) || !(buf1 \u003d malloc(len1))) {\n\t\tperror(\"malloc\");\n\t\treturn 1;\n\t}\n\n\tmemset(buf0, 0, len0);\n\tmemset(buf1, 0, len1);\n\n\tiov[0].iov_base \u003d buf0;\n\tiov[0].iov_len \u003d len0;\n\tiov[1].iov_base \u003d NULL;\n\tiov[1].iov_len \u003d len1;\n\tiov[2].iov_base \u003d buf1;\n\tiov[2].iov_len \u003d len1;\n\n\tprintf(\"vector \");\n\tfor (i \u003d 0; i \u003c 3; i++)\n\t\tprintf(\"%p:%zu \", iov[i].iov_base, iov[i].iov_len);\n\tprintf(\"\\n\");\n\n\tret \u003d readv(fd, iov, 3);\n\tif (ret \u003c 0)\n\t\tperror(\"readv\");\n\n\tprintf(\"readv returned %zd\\nbuf0 \u003d [%s]\\nbuf1 \u003d [%s]\\n\",\n\t       ret, (char *)buf0, (char *)buf1);\n\n\treturn 0;\n}\n\nSigned-off-by: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68860ec10bcc07ab4f89f9d940e3b77ae5ca13b3",
      "tree": "a411f9623a113d72f23da38cf2de51f66c177873",
      "parents": [
        "fb5eeeee44edb248b4837416966f19731f497f79"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:36 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] cpusets: automatic numa mempolicy rebinding\n\nThis patch automatically updates a tasks NUMA mempolicy when its cpuset\nmemory placement changes.  It does so within the context of the task,\nwithout any need to support low level external mempolicy manipulation.\n\nIf a system is not using cpusets, or if running on a system with just the\nroot (all-encompassing) cpuset, then this remap is a no-op.  Only when a\ntask is moved between cpusets, or a cpusets memory placement is changed\ndoes the following apply.  Otherwise, the main routine below,\nrebind_policy() is not even called.\n\nWhen mixing cpusets, scheduler affinity, and NUMA mempolicies, the\nessential role of cpusets is to place jobs (several related tasks) on a set\nof CPUs and Memory Nodes, the essential role of sched_setaffinity is to\nmanage a jobs processor placement within its allowed cpuset, and the\nessential role of NUMA mempolicy (mbind, set_mempolicy) is to manage a jobs\nmemory placement within its allowed cpuset.\n\nHowever, CPU affinity and NUMA memory placement are managed within the\nkernel using absolute system wide numbering, not cpuset relative numbering.\n\nThis is ok until a job is migrated to a different cpuset, or what\u0027s the\nsame, a jobs cpuset is moved to different CPUs and Memory Nodes.\n\nThen the CPU affinity and NUMA memory placement of the tasks in the job\nneed to be updated, to preserve their cpuset-relative position.  This can\nbe done for CPU affinity using sched_setaffinity() from user code, as one\ntask can modify anothers CPU affinity.  This cannot be done from an\nexternal task for NUMA memory placement, as that can only be modified in\nthe context of the task using it.\n\nHowever, it easy enough to remap a tasks NUMA mempolicy automatically when\na task is migrated, using the existing cpuset mechanism to trigger a\nrefresh of a tasks memory placement after its cpuset has changed.  All that\nis needed is the old and new nodemask, and notice to the task that it needs\nto rebind its mempolicy.  The tasks mems_allowed has the old mask, the\ntasks cpuset has the new mask, and the existing\ncpuset_update_current_mems_allowed() mechanism provides the notice.  The\nbitmap/cpumask/nodemask remap operators provide the cpuset relative\ncalculations.\n\nThis patch leaves open a couple of issues:\n\n 1) Updating vma and shmfs/tmpfs/hugetlbfs memory policies:\n\n    These mempolicies may reference nodes outside of those allowed to\n    the current task by its cpuset.  Tasks are migrated as part of jobs,\n    which reside on what might be several cpusets in a subtree.  When such\n    a job is migrated, all NUMA memory policy references to nodes within\n    that cpuset subtree should be translated, and references to any nodes\n    outside that subtree should be left untouched.  A future patch will\n    provide the cpuset mechanism needed to mark such subtrees.  With that\n    patch, we will be able to correctly migrate these other memory policies\n    across a job migration.\n\n 2) Updating cpuset, affinity and memory policies in user space:\n\n    This is harder.  Any placement state stored in user space using\n    system-wide numbering will be invalidated across a migration.  More\n    work will be required to provide user code with a migration-safe means\n    to manage its cpuset relative placement, while preserving the current\n    API\u0027s that pass system wide numbers, not cpuset relative numbers across\n    the kernel-user boundary.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28a42b9ea7e42e1efb02cc2dcacba0b6af234e1b",
      "tree": "1415acfeec32553888f870eb5c0debc370e1d3b7",
      "parents": [
        "18a19cb3047e454ee5ecbc35d7acf3f8e09e0466"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:32 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:21 2005 -0800"
      },
      "message": "[PATCH] cpusets: confine pdflush to its cpuset\n\nThis patch keeps pdflush daemons on the same cpuset as their parent, the\nkthread daemon.\n\nSome large NUMA configurations put as much as they can of kernel threads\nand other classic Unix load in what\u0027s called a bootcpuset, keeping the rest\nof the system free for dedicated jobs.\n\nThis effort is thwarted by pdflush, which dynamically destroys and\nrecreates pdflush daemons depending on load.\n\nIt\u0027s easy enough to force the originally created pdflush deamons into the\nbootcpuset, at system boottime.  But the pdflush threads created later were\nallowed to run freely across the system, due to the necessary line in their\nstartup kthread():\n\n        set_cpus_allowed(current, CPU_MASK_ALL);\n\nBy simply coding pdflush to start its threads with the cpus_allowed\nrestrictions of its cpuset (inherited from kthread, its parent) we can\nensure that dynamically created pdflush threads are also kept in the\nbootcpuset.\n\nOn systems w/o cpusets, or w/o a bootcpuset implementation, the following\nwill have no affect, leaving pdflush to run on any CPU, as before.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aaa4059bc2dca7fa816624a28db1958c3a22df9b",
      "tree": "8ae1d5458e2f68f96b033f10dae216847c32d4d2",
      "parents": [
        "e812cb5226af32aec91bcbaa8365bd7f921b6ebb"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Sun Oct 30 15:00:16 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] ext3: Fix unmapped buffers in transaction\u0027s lists\n\nFix the problem (BUG 4964) with unmapped buffers in transaction\u0027s\nt_sync_data list.  The problem is we need to call filesystem\u0027s own\ninvalidatepage() from block_write_full_page().\n\nblock_write_full_page() must call filesystem\u0027s invalidatepage().  Otherwise\nfollowing nasty race can happen:\n\n   proc 1                                        proc 2\n   ------                                        ------\n- write some new data to \u0027offset\u0027\n  \u003d\u003e bh gets to the transactions data list\n                                              - starts truncate\n                                                \u003d\u003e i_size set to new size\n- mpage_writepages()\n  - ext3_ordered_writepage() to \u0027offset\u0027\n    - block_write_full_page()\n      - page-\u003eindex \u003e end_index+1\n        - block_invalidatepage()\n          - discard_buffer()\n            - clear_buffer_mapped()\n\n- commit triggers and finds unmapped buffer - BOOM!\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b1459461f1e0abd5c28317d6bff6f2ca612a719d",
      "tree": "32ba1d395e8532d14749c2d95ff57fdba2aaddc2",
      "parents": [
        "2f96996de0eda378df2a5f857ee1ef615ae10a4f"
      ],
      "author": {
        "name": "Nikita Danilov",
        "email": "nikita@clusterfs.com",
        "time": "Sat Oct 29 18:17:02 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:45 2005 -0700"
      },
      "message": "[PATCH] mm/filemap.c:filemap_populate(): move export.\n\nmove EXPORT_SYMBOL(filemap_populate) to the proper place: just after\nfunction itself: it\u0027s easy to miss that function is exported otherwise.\n\nSigned-off-by: Nikita Danilov \u003cnikita@clusterfs.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2f96996de0eda378df2a5f857ee1ef615ae10a4f",
      "tree": "ee3075c48a99369c9748ee17d3bb8396e9f38372",
      "parents": [
        "5fcbb23050936d69de8087d4b311eaf55cb42740"
      ],
      "author": {
        "name": "John Hawkes",
        "email": "hawkes@sgi.com",
        "time": "Sat Oct 29 18:17:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:45 2005 -0700"
      },
      "message": "[PATCH] mm: wider use of for_each_*cpu()\n\nIn \u0027mm\u0027 change the explicit use of a for-loop using NR_CPUS into the\ngeneral for_each_cpu() constructs.  This widens the scope of potential\nfuture optimizations of the general constructs, as well as takes advantage\nof the existing optimizations of first_cpu() and next_cpu(), which is\nadvantageous when the true CPU count is much smaller than NR_CPUS.\n\nSigned-off-by: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5fcbb23050936d69de8087d4b311eaf55cb42740",
      "tree": "10d14ca6927bc1bfa4bca4d206d2e1039f6cbf03",
      "parents": [
        "8bccd85ffbaf8ff1448d1235fa6594e207695531"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Oct 29 18:17:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:45 2005 -0700"
      },
      "message": "[PATCH] Remove policy contextualization from mbind\n\nPolicy contextualization is only useful for task based policies and not for\nvma based policies.  It may be useful to define allowed nodes that are not\naccessible from this thread because other threads may have access to these\nnodes.  Without this patch strange memory policy situations may cause an\napplication to fail with out of memory.\n\nExample:\n\nLet\u0027s say we have two threads A and B that share the same address space and\na huge array computational array X.\n\nThread A is restricted by its cpuset to nodes 0 and 1 and thread B is\nrestricted by its cpuset to nodes 2 and 3.\n\nThread A now wants to restrict allocations to the first node and thus\napplies a BIND policy on X to node 0 and 2.  The cpuset limits this to node\n0.  Thus pages for X must be allocated on node 0 now.\n\nThread B now touches a page that has never been used in X and faults in a\npage.  According to the BIND policy of the vma for X the page must be\nallocated on page 0.  However, the cpuset of B does not allow allocation on\n0 and 1.  Now the application fails in alloc_pages with out of memory.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8bccd85ffbaf8ff1448d1235fa6594e207695531",
      "tree": "d5ed1f3b2ba1d301c74cc0a62ed416e634c5bebb",
      "parents": [
        "bb7e7e032d2cb8e0e9a88a2be209de5e61033b39"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Oct 29 18:16:59 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:45 2005 -0700"
      },
      "message": "[PATCH] Implement sys_* do_* layering in the memory policy layer.\n\n- Do a separation between do_xxx and sys_xxx functions. sys_xxx functions\n  take variable sized bitmaps from user space as arguments. do_xxx functions\n  take fixed sized nodemask_t as arguments and may be used from inside the\n  kernel. Doing so simplifies the initialization code. There is no\n  fs \u003d kernel_ds assumption anymore.\n\n- Split up get_nodes into get_nodes (which gets the node list) and\n  contextualize_policy which restricts the nodes to those accessible\n  to the task and updates cpusets.\n\n- Add comments explaining limitations of bind policy\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61b13993a81866fc1d4830dfab80530c9c061e37",
      "tree": "4d8f3acd428438b37e5b28246c666e0fdfba5335",
      "parents": [
        "0b0acbec1bed75ec1e1daa7f7006323a2a2b2844"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug: call setup_per_zone_pages_min after hotplug\n\nFrom: IWAMOTO Toshihiro \u003ciwamoto@valinux.co.jp\u003e\n\u003e I found the tests does not work well with Dave\u0027s patchset.\n\u003e I\u0027ve found the followings:\n\u003e\n\u003e \t- setup_per_zone_pages_min() calls should be added in\n\u003e \t   capture_page_range() and online_pages()\n\u003e \t- lru_add_drain() should be called before try_to_migrate_pages()\n\nThe following patch deals with the first item.\n\nSigned-off-by: IWAMOTO Toshihiro \u003ciwamoto@valinux.co.jp\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0b0acbec1bed75ec1e1daa7f7006323a2a2b2844",
      "tree": "e0d54fbaa6b8b0955ed881af8956b4085039b2d1",
      "parents": [
        "3947be1969a9ce455ec30f60ef51efb10e4323d1"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:55 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug: move section_mem_map alloc to sparse.c\n\nThis basically keeps up from having to extern __kmalloc_section_memmap().\n\nThe vaddr_in_vmalloc_area() helper could go in a vmalloc header, but that\nheader gets hard to work with, because it needs some arch-specific macros.\nJust stick it in here for now, instead of creating another header.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Lion Vollnhals \u003cwebmaster@schiggl.de\u003e\nSigned-off-by: Jiri Slaby \u003cxslaby@fi.muni.cz\u003e\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3947be1969a9ce455ec30f60ef51efb10e4323d1",
      "tree": "0b4b3b4c268beb7aa88cb685cce48b6bb5053c47",
      "parents": [
        "bdc8cb984576ab5b550c8b24c6fa111a873503e3"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:54 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug: sysfs and add/remove functions\n\nThis adds generic memory add/remove and supporting functions for memory\nhotplug into a new file as well as a memory hotplug kernel config option.\n\nIndividual architecture patches will follow.\n\nFor now, disable memory hotplug when swsusp is enabled.  There\u0027s a lot of\nchurn there right now.  We\u0027ll fix it up properly once it calms down.\n\nSigned-off-by: Matt Tolentino \u003cmatthew.e.tolentino@intel.com\u003e\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bdc8cb984576ab5b550c8b24c6fa111a873503e3",
      "tree": "f94548988874caa10d770e6e65bc50c925abf825",
      "parents": [
        "208d54e5513c0c02d85af0990901354c74364d5c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:53 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug locking: zone span seqlock\n\nSee the \"fixup bad_range()\" patch for more information, but this actually\ncreates a the lock to protect things making assumptions about a zone\u0027s size\nstaying constant at runtime.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "208d54e5513c0c02d85af0990901354c74364d5c",
      "tree": "83922f1d4a83f19bffcbff299044f421bd7e9c73",
      "parents": [
        "c6a57e19e464db118dc4ab9cfe9e9748c6d630a0"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug locking: node_size_lock\n\npgdat-\u003enode_size_lock is basically only neeeded in one place in the normal\ncode: show_mem(), which is the arch-specific sysrq-m printing function.\n\nStrictly speaking, the architectures not doing memory hotplug do no need this\nlocking in show_mem().  However, they are all included for completeness.  This\nshould also make any future consolidation of all of the implementations a\nlittle more straightforward.\n\nThis lock is also held in the sparsemem code during a memory removal, as\nsections are invalidated.  This is the place there pfn_valid() is made false\nfor a memory area that\u0027s being removed.  The lock is only required when doing\npfn_valid() operations on memory which the user does not already have a\nreference on the page, such as in show_mem().\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c6a57e19e464db118dc4ab9cfe9e9748c6d630a0",
      "tree": "1be192e4c0635c9aa49c8c76d1606e606ecdc9a0",
      "parents": [
        "4ca644d970bf2542623228a4624af356d20ca267"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:52 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug prep: fixup bad_range()\n\nWhen doing memory hotplug operations, the size of existing zones can obviously\nchange.  This means that zone-\u003ezone_{start_pfn,spanned_pages} can change.\n\nThere are currently no locks that protect these structure members.  However,\nthey are rarely accessed at runtime.  Outside of swsusp, the only place that I\ncan find is bad_range().\n\nSo, split bad_range() up into two pieces: one that needs to be locked and\nanther that doesn\u0027t.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ca644d970bf2542623228a4624af356d20ca267",
      "tree": "1040782e8799d5531a5ee1d5f1143e26e8781e9d",
      "parents": [
        "ed8ece2ec8d3c2031b1a1a0737568bb0d49454e0"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug prep: __section_nr helper\n\nA little helper that we use in the hotplug code.\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ed8ece2ec8d3c2031b1a1a0737568bb0d49454e0",
      "tree": "5fb5b994ad3fcdc4ab2bb2c906d88c02a8395807",
      "parents": [
        "2774812f417db562f0d659d2c1b5755ba35d2770"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "haveblue@us.ibm.com",
        "time": "Sat Oct 29 18:16:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:44 2005 -0700"
      },
      "message": "[PATCH] memory hotplug prep: break out zone initialization\n\nIf a zone is empty at boot-time and then hot-added to later, it needs to run\nthe same init code that would have been run on it at boot.\n\nThis patch breaks out zone table and per-cpu-pages functions for use by the\nhotplug code.  You can almost see all of the free_area_init_core() function on\none page now.  :)\n\nSigned-off-by: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a44e149084d772a1bcf4cdbdde8a013a8a1cfde",
      "tree": "b3f682ce8df89edb9740fdd5c178df5accc49736",
      "parents": [
        "2e9b367c2273ed21c9852a04d90944d472c4f3e6"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Sat Oct 29 18:16:48 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] .text page fault SMP scalability optimization\n\nWe had a problem on ppc64 where with more than 4 threads a large system\nwouldn\u0027t scale well while faulting in the .text (most of the time was spent\nin the kernel despite it was an userland compute intensive app).  The\nreason is the useless overwrite of the same pte from all cpu.\n\nI fixed it this way (verified on an older kernel but the forward port is\nalmost identical).  This will benefit all archs not just ppc64.\n\nSigned-off-by: Andrea Arcangeli \u003candrea@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": "4c887265977213985091476be40ab11dfdcb4caf",
      "tree": "82ee135f8678094664d7311617287802d54d52cf",
      "parents": [
        "551110a94aa15890d1709b179c4be1e66ff6db53"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Sat Oct 29 18:16:46 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:43 2005 -0700"
      },
      "message": "[PATCH] hugetlb: demand fault handler\n\nBelow is a patch to implement demand faulting for huge pages.  The main\nmotivation for changing from prefaulting to demand faulting is so that huge\npage memory areas can be allocated according to NUMA policy.\n\nThanks to consolidated hugetlb code, switching the behavior requires changing\nonly one fault handler.  The bulk of the patch just moves the logic from\nhugelb_prefault() to hugetlb_pte_fault() and find_get_huge_page().\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b8072f099b7829a6ff3eba618e1d079a81f753f8",
      "tree": "80bf801b68ecf5f29a61f0f4fd5976b4daa91c6a",
      "parents": [
        "f412ac08c9861b4791af0145934c22f1458686da"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: update comments to pte lock\n\nUpdated several references to page_table_lock in common code comments.\n\nSigned-off-by: 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": "f412ac08c9861b4791af0145934c22f1458686da",
      "tree": "5e515efa116f3968c2caa75bc691a197199313a8",
      "parents": [
        "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:41 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: fix rss and mmlist locking\n\nA couple of oddities were guarded by page_table_lock, no longer properly\nguarded when that is split.\n\nThe mm_counters of file_rss and anon_rss: make those an atomic_t, or an\natomic64_t if the architecture supports it, in such a case.  Definitions by\ncourtesy of Christoph Lameter: who spent considerable effort on more scalable\nways of counting, but found insufficient benefit in practice.\n\nAnd adding an mm with swap to the mmlist for swapoff: the list is well-\nguarded by its own lock, but the list_empty check now has to be repeated\ninside it.\n\nSigned-off-by: 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": "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7",
      "tree": "1f76d33bb1d76221c6424bc5fed080a4f91349a6",
      "parents": [
        "b38c6845b695141259019e2b7c0fe6c32a6e720d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: split page table lock\n\nChristoph Lameter demonstrated very poor scalability on the SGI 512-way, with\na many-threaded application which concurrently initializes different parts of\na large anonymous area.\n\nThis patch corrects that, by using a separate spinlock per page table page, to\nguard the page table entries in that page, instead of using the mm\u0027s single\npage_table_lock.  (But even then, page_table_lock is still used to guard page\ntable allocation, and anon_vma allocation.)\n\nIn this implementation, the spinlock is tucked inside the struct page of the\npage table page: with a BUILD_BUG_ON in case it overflows - which it would in\nthe case of 32-bit PA-RISC with spinlock debugging enabled.\n\nSplitting the lock is not quite for free: another cacheline access.  Ideally,\nI suppose we would use split ptlock only for multi-threaded processes on\nmulti-cpu machines; but deciding that dynamically would have its own costs.\nSo for now enable it by config, at some number of cpus - since the Kconfig\nlanguage doesn\u0027t support inequalities, let preprocessor compare that with\nNR_CPUS.  But I don\u0027t think it\u0027s worth being user-configurable: for good\ntesting of both split and unsplit configs, split now at 4 cpus, and perhaps\nchange that to 8 later.\n\nThere is a benefit even for singly threaded processes: kswapd can be attacking\none part of the mm while another part is busy faulting.\n\nSigned-off-by: 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": "deceb6cd17e6dfafe4c4f81b1b4153bc41b2cb70",
      "tree": "2a722f50e8edef8609a49f65bfcb222e499c44cc",
      "parents": [
        "c34d1b4d165c67b966bca4aba026443d7ff161eb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: follow_page with inner ptlock\n\nFinal step in pushing down common core\u0027s page_table_lock.  follow_page no\nlonger wants caller to hold page_table_lock, uses pte_offset_map_lock itself;\nand so no page_table_lock is taken in get_user_pages itself.\n\nBut get_user_pages (and get_futex_key) do then need follow_page to pin the\npage for them: take Daniel\u0027s suggestion of bitflags to follow_page.\n\nNeed one for WRITE, another for TOUCH (it was the accessed flag before:\nvanished along with check_user_page_readable, but surely get_numa_maps is\nwrong to mark every page it finds as accessed), another for GET.\n\nAnd another, ANON to dispose of untouched_anonymous_page: it seems silly for\nthat to descend a second time, let follow_page observe if there was no page\ntable and return ZERO_PAGE if so.  Fix minor bug in that: check VM_LOCKED -\nmake_pages_present ought to make readonly anonymous present.\n\nGive get_numa_maps a cond_resched while we\u0027re there.\n\nSigned-off-by: 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": "c34d1b4d165c67b966bca4aba026443d7ff161eb",
      "tree": "27ffca9daba2a6b16d29bd508faf3e68bda2aad1",
      "parents": [
        "c0718806cf955d5eb51ea77bffb5b21d9bba4972"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: kill check_user_page_readable\n\ncheck_user_page_readable is a problematic variant of follow_page.  It\u0027s used\nonly by oprofile\u0027s i386 and arm backtrace code, at interrupt time, to\nestablish whether a userspace stackframe is currently readable.\n\nThis is problematic, because we want to push the page_table_lock down inside\nfollow_page, and later split it; whereas oprofile is doing a spin_trylock on\nit (in the i386 case, forgotten in the arm case), and needs that to pin\nperhaps two pages spanned by the stackframe (which might be covered by\ndifferent locks when we split).\n\nI think oprofile is going about this in the wrong way: it doesn\u0027t need to know\nthe area is readable (neither i386 nor arm uses read protection of user\npages), it doesn\u0027t need to pin the memory, it should simply\n__copy_from_user_inatomic, and see if that succeeds or not.  Sorry, but I\u0027ve\nnot got around to devising the sparse __user annotations for this.\n\nThen we can eliminate check_user_page_readable, and return to a single\nfollow_page without the __follow_page variants.\n\nSigned-off-by: 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": "c0718806cf955d5eb51ea77bffb5b21d9bba4972",
      "tree": "bd29659bbff68604127439ec8144230a40772621",
      "parents": [
        "67b02f119df50ffad5a4e9e53ea4c896535862cd"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: rmap with inner ptlock\n\nrmap\u0027s page_check_address descend without page_table_lock.  First just\npte_offset_map in case there\u0027s no pte present worth locking for, then take\npage_table_lock for the full check, and pass ptl back to caller in the same\nstyle as pte_offset_map_lock.  __xip_unmap, page_referenced_one and\ntry_to_unmap_one use pte_unmap_unlock.  try_to_unmap_cluster also.\n\npage_check_address reformatted to avoid progressive indentation.  No use is\nmade of its one error code, return NULL when it fails.\n\nSigned-off-by: 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": "67b02f119df50ffad5a4e9e53ea4c896535862cd",
      "tree": "9d651e9e62b6ead325fc6bd872f3a6232d85e8a3",
      "parents": [
        "508034a32b819a2d40aa7ac0dbc8cd2e044c2de6"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: xip_unmap ZERO_PAGE fix\n\nSmall fix to the PageReserved patch: the mips ZERO_PAGE(address) depends on\naddress, so __xip_unmap is wrong to initialize page with that before address\nis initialized; and in fact must re-evaluate it each iteration.\n\nSigned-off-by: 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": "508034a32b819a2d40aa7ac0dbc8cd2e044c2de6",
      "tree": "906a8f0095af24f403b30d649d3ec1ffb4ff2f50",
      "parents": [
        "8f4f8c164cb4af1432cc25eda82928ea4519ba72"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:30 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: unmap_vmas with inner ptlock\n\nRemove the page_table_lock from around the calls to unmap_vmas, and replace\nthe pte_offset_map in zap_pte_range by pte_offset_map_lock: all callers are\nnow safe to descend without page_table_lock.\n\nDon\u0027t attempt fancy locking for hugepages, just take page_table_lock in\nunmap_hugepage_range.  Which makes zap_hugepage_range, and the hugetlb test in\nzap_page_range, redundant: unmap_vmas calls unmap_hugepage_range anyway.  Nor\ndoes unmap_vmas have much use for its mm arg now.\n\nThe tlb_start_vma and tlb_end_vma in unmap_page_range are now called without\npage_table_lock: if they\u0027re implemented at all, they typically come down to\nflush_cache_range (usually done outside page_table_lock) and flush_tlb_range\n(which we already audited for the mprotect case).\n\nSigned-off-by: 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": "8f4f8c164cb4af1432cc25eda82928ea4519ba72",
      "tree": "49cd3c62069df1f8d6c863b9806923de16c10e8b",
      "parents": [
        "663b97f7efd001b0c56bd5fce059c5272725b86f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: unlink vma before pagetables\n\nIn most places the descent from pgd to pud to pmd to pte holds mmap_sem\n(exclusively or not), which ensures that free_pgtables cannot be freeing page\ntables from any level at the same time.  But truncation and reverse mapping\ndescend without mmap_sem.\n\nNo problem: just make sure that a vma is unlinked from its prio_tree (or\nnonlinear list) and from its anon_vma list, after zapping the vma, but before\nfreeing its page tables.  Then neither vmtruncate nor rmap can reach that vma\nwhose page tables are now volatile (nor do they need to reach it, since all\nits page entries have been zapped by this stage).\n\nThe i_mmap_lock and anon_vma-\u003elock already serialize this correctly; but the\nlocking hierarchy is such that we cannot take them while holding\npage_table_lock.  Well, we\u0027re trying to push that down anyway.  So in this\npatch, move anon_vma_unlink and unlink_file_vma into free_pgtables, at the\nsame time as moving page_table_lock around calls to unmap_vmas.\n\ntlb_gather_mmu and tlb_finish_mmu then fall outside the page_table_lock, but\nwe made them preempt_disable and preempt_enable earlier; and a long source\naudit of all the architectures has shown no problem with removing\npage_table_lock from them.  free_pgtables doesn\u0027t need page_table_lock for\nitself, nor for what it calls; tlb-\u003emm-\u003enr_ptes is usually protected by\npage_table_lock, but partly by non-exclusive mmap_sem - here it\u0027s decremented\nwith exclusive mmap_sem, or mm_users 0.  update_hiwater_rss and\nvm_unacct_memory don\u0027t need page_table_lock either.\n\nSigned-off-by: 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"
    }
  ],
  "next": "705e87c0c3c38424f7f30556c85bc20e808d2f59"
}
