)]}'
{
  "log": [
    {
      "commit": "41d78ba55037468e6c86c53e3076d1a74841de39",
      "tree": "d970f18d18532009b17c736583429401dbd64ade",
      "parents": [
        "7277232374680595cdbc774fd246b206f56db015"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Feb 14 13:52:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 14 16:09:33 2006 -0800"
      },
      "message": "[PATCH] compound page: use page[1].lru\n\nIf a compound page has its own put_page_testzero destructor (the only current\nexample is free_huge_page), that is noted in page[1].mapping of the compound\npage.  But that\u0027s rather a poor place to keep it: functions which call\nset_page_dirty_lock after get_user_pages (e.g.  Infiniband\u0027s\n__ib_umem_release) ought to be checking first, otherwise set_page_dirty is\nliable to crash on what\u0027s not the address of a struct address_space.\n\nAnd now I\u0027m about to make that worse: it turns out that every compound page\nneeds a destructor, so we can no longer rely on hugetlb pages going their own\nspecial way, to avoid further problems of page-\u003emapping reuse.  For example,\nnot many people know that: on 50% of i386 -Os builds, the first tail page of a\ncompound page purports to be PageAnon (when its destructor has an odd\naddress), which surprises page_add_file_rmap.\n\nKeep the compound page destructor in page[1].lru.next instead.  And to free up\nthe common pairing of mapping and index, also move compound page order from\nindex to lru.prev.  Slab reuses page-\u003elru too: but if we ever need slab to use\ncompound pages, it can easily stack its use above this.\n\n(akpm: decoded version of the above: the tail pages of a compound page now\nhave -\u003emapping\u003d\u003dNULL, so there\u0027s no need for the set_page_dirty[_lock]()\ncaller to check that they\u0027re not compund pages before doing the dirty).\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": "0df420d8b6c718d9a5e37531c3a9a6804493e9f4",
      "tree": "6b8edbb55eb8d5e84fb223bbcef7c54789270cde",
      "parents": [
        "a2dfef6947139db9b886fce510c4d0c913beb5f0"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Tue Feb 07 12:58:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:31 2006 -0800"
      },
      "message": "[PATCH] hugetlbpage: return VM_FAULT_OOM on oom\n\nRemove wrong and misleading comments.\n\nReturn VM_FAULT_OOM if the hugetlbpage fault handler cannot allocate a\npage.  do_no_page will end up doing do_exit(SIGKILL).\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a2dfef6947139db9b886fce510c4d0c913beb5f0",
      "tree": "096e9110d897e6b946fdae9e9e17ad5c7832fd8a",
      "parents": [
        "488fc08d914f2b07b701c9b9c811437cc1c1c518"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Tue Feb 07 12:58:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Feb 07 16:12:31 2006 -0800"
      },
      "message": "[PATCH] Hugepages need clear_user_highpage() not clear_highpage()\n\nWhen hugepages are newly allocated to a file in mm/hugetlb.c, we clear them\nwith a call to clear_highpage() on each of the subpages.  We should be\nusing clear_user_highpage(): on powerpc, at least, clear_highpage() doesn\u0027t\ncorrectly mark the page as icache dirty so if the page is executed shortly\nafter it\u0027s possible to get strange results.\n\nSigned-off-by: David Gibson \u003cdwg@au1.ibm.com\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "64b4a954b03a1153fb8ae38d6ffbd991e01a1e80",
      "tree": "0436a6f23e46d9fcb6caf5b1216fe212be3fbc3f",
      "parents": [
        "fe1dcbc4f311c2e6c23b33c0fa8572461618ab3e"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sat Feb 04 23:27:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Feb 05 11:06:53 2006 -0800"
      },
      "message": "[PATCH] hugetlb: add comment explaining reasons for Bus Errors\n\nI just spent some time researching a Bus Error.  Turns out that the huge\npage fault handler can return VM_FAULT_SIGBUS for various conditions where\nno huge page is available.\n\nAdd a note explaining the reasoning in the source.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\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": "aea47ff363c15b0be5fc27ed991b1fdee338f0a7",
      "tree": "0932af1adfcf795fe8793ce24eb338e832d5fa2c",
      "parents": [
        "45b07ef31d1182d2cfde7711327e3afb268bb1ac"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Jan 08 01:00:57 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Jan 08 20:12:43 2006 -0800"
      },
      "message": "[PATCH] mm: make hugepages obey cpusets.\n\nSee http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113167000201265\u0026w\u003d2\nhttp://marc.theaimsgroup.com/?l\u003dlinux-mm\u0026m\u003d113167267527312\u0026w\u003d2\n\nMake hugepages obey cpusets.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.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": "6bda666a03f063968833760c5bb5c13062ab9291",
      "tree": "8ecc0b672c059aa296f80935cda33f3e59970832",
      "parents": [
        "21abb1478a87e26f5fa71dbcb7cf4264272c2248"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:10:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] hugepages: fold find_or_alloc_pages into huge_no_page()\n\nThe number of parameters for find_or_alloc_page increases significantly after\npolicy support is added to huge pages.  Simplify the code by folding\nfind_or_alloc_huge_page() into hugetlb_no_page().\n\nAdam Litke objected to this piece in an earlier patch but I think this is a\ngood simplification.  Diffstat shows that we can get rid of almost half of the\nlines of find_or_alloc_page().  If we can find no consensus then lets simply\ndrop this patch.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: 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": "5da7ca86078964cbfe6c83efc1205904587706fe",
      "tree": "a64a7824e90b42d6fdd71e6cb652362beb8983a1",
      "parents": [
        "96df9333c94d7d5aeceb21f6c5e7ae8ff34753cf"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:10:46 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] Add NUMA policy support for huge pages.\n\nThe huge_zonelist() function in the memory policy layer provides an list of\nzones ordered by NUMA distance.  The hugetlb layer will walk that list looking\nfor a zone that has available huge pages but is also in the nodeset of the\ncurrent cpuset.\n\nThis patch does not contain the folding of find_or_alloc_huge_page() that was\ncontroversial in the earlier discussion.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nAcked-by: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: 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": "96df9333c94d7d5aeceb21f6c5e7ae8ff34753cf",
      "tree": "a4ac0486af418df0194ed0038b87459652d61945",
      "parents": [
        "1e8f889b10d8d2223105719e36ce45688fedbd59"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Fri Jan 06 00:10:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] mm: dequeue a huge page near to this node\n\nThis was discussed at\nhttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113166526217117\u0026w\u003d2\n\nThis patch changes the dequeueing to select a huge page near the node\nexecuting instead of always beginning to check for free nodes from node 0.\nThis will result in a placement of the huge pages near the executing\nprocessor improving performance.\n\nThe existing implementation can place the huge pages far away from the\nexecuting processor causing significant degradation of performance.  The\nsearch starting from zero also means that the lower zones quickly run out\nof memory.  Selecting a huge page near the process distributed the huge\npages better.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nCc: 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": "1e8f889b10d8d2223105719e36ce45688fedbd59",
      "tree": "86dee89e4363aaf6c7ec7c9751ea37f725c95bb9",
      "parents": [
        "86e5216f8d8aa258ba836caffe2613d79cc9aead"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Fri Jan 06 00:10:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:23 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Copy on Write support\n\nImplement copy-on-write support for hugetlb mappings so MAP_PRIVATE can be\nsupported.  This helps us to safely use hugetlb pages in many more\napplications.  The patch makes the following changes.  If needed, I also have\nit broken out according to the following paragraphs.\n\n1. Add a pair of functions to set/clear write access on huge ptes.  The\n   writable check in make_huge_pte is moved out to the caller for use by COW\n   later.\n\n2. Hugetlb copy-on-write requires special case handling in the following\n   situations:\n\n   - copy_hugetlb_page_range() - Copied pages must be write protected so\n     a COW fault will be triggered (if necessary) if those pages are written\n     to.\n\n   - find_or_alloc_huge_page() - Only MAP_SHARED pages are added to the\n     page cache.  MAP_PRIVATE pages still need to be locked however.\n\n3. Provide hugetlb_cow() and calls from hugetlb_fault() and\n   hugetlb_no_page() which handles the COW fault by making the actual copy.\n\n4. Remove the check in hugetlbfs_file_map() so that MAP_PRIVATE mmaps\n   will be allowed.  Make MAP_HUGETLB exempt from the depricated VM_RESERVED\n   mapping check.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\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": "86e5216f8d8aa258ba836caffe2613d79cc9aead",
      "tree": "33669c0194490700b575fceb0e5e010a4468a5fe",
      "parents": [
        "85ef47f74afe96c8c23eaa605f28cc01443c905f"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Fri Jan 06 00:10:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Reorganize hugetlb_fault to prepare for COW\n\nThis patch splits the \"no_page()\" type activity into its own function,\nhugetlb_no_page().  hugetlb_fault() becomes the entry point for hugetlb faults\nand delegates to the appropriate handler depending on the type of fault.\nRight now we still have only hugetlb_no_page() but a later patch introduces a\nCOW fault.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\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": "85ef47f74afe96c8c23eaa605f28cc01443c905f",
      "tree": "afe3a52f3e00cbab3f30f756fb60b250fe8de2c6",
      "parents": [
        "f0916794f00be44154102dedaeafe68b743078a2"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Fri Jan 06 00:10:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Rename find_lock_page to find_or_alloc_huge_page\n\nfind_lock_huge_page() isn\u0027t a great name, since it does extra things not\nanalagous to find_lock_page().  Rename it find_or_alloc_huge_page() which is\ncloser to the mark.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\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": "f0916794f00be44154102dedaeafe68b743078a2",
      "tree": "0faa7e86d938c184f5ccead70410b4d014c2bdf2",
      "parents": [
        "f6b3ec238d12c8cc6cc71490c6e3127988460349"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Fri Jan 06 00:10:40 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Jan 06 08:33:22 2006 -0800"
      },
      "message": "[PATCH] Hugetlb: Remove duplicate i_size check\n\ncleanup\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\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": "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": "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": "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": "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": "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": "c74df32c724a1652ad8399b4891bb02c9d43743a",
      "tree": "5a79d56fdcf7dc2053a277dbf6db7c3b339e9659",
      "parents": [
        "1bb3630e89cb8a7b3d3807629c20c5bad88290ff"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: ptd_alloc take ptlock\n\nSecond step in pushing down the page_table_lock.  Remove the temporary\nbridging hack from __pud_alloc, __pmd_alloc, __pte_alloc: expect callers not\nto hold page_table_lock, whether it\u0027s on init_mm or a user mm; take\npage_table_lock internally to check if a racing task already allocated.\n\nConvert their callers from common code.  But avoid coming back to change them\nagain later: instead of moving the spin_lock(\u0026mm-\u003epage_table_lock) down,\nswitch over to new macros pte_alloc_map_lock and pte_unmap_unlock, which\nencapsulate the mapping+locking and unlocking+unmapping together, and in the\nend may use alternatives to the mm page_table_lock itself.\n\nThese callers all hold mmap_sem (some exclusively, some not), so at no level\ncan a page table be whipped away from beneath them; and pte_alloc uses the\n\"atomic\" pmd_present to test whether it needs to allocate.  It appears that on\nall arches we can safely descend without page_table_lock.\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": "365e9c87a982c03d0af3886e29d877f581b59611",
      "tree": "d06c1918ca9fe6677d7e4e869555e095004274f7",
      "parents": [
        "861f2fb8e796022b4928cab9c74fca6681a1c557"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: update_hiwaters just in time\n\nupdate_mem_hiwater has attracted various criticisms, in particular from those\nconcerned with mm scalability.  Originally it was called whenever rss or\ntotal_vm got raised.  Then many of those callsites were replaced by a timer\ntick call from account_system_time.  Now Frank van Maarseveen reports that to\nbe found inadequate.  How about this?  Works for Frank.\n\nReplace update_mem_hiwater, a poor combination of two unrelated ops, by macros\nupdate_hiwater_rss and update_hiwater_vm.  Don\u0027t attempt to keep\nmm-\u003ehiwater_rss up to date at timer tick, nor every time we raise rss (usually\nby 1): those are hot paths.  Do the opposite, update only when about to lower\nrss (usually by many), or just before final accounting in do_exit.  Handle\nmm-\u003ehiwater_vm in the same way, though it\u0027s much less of an issue.  Demand\nthat whoever collects these hiwater statistics do the work of taking the\nmaximum with rss or total_vm.\n\nAnd there has been no collector of these hiwater statistics in the tree.  The\nnew convention needs an example, so match Frank\u0027s usage by adding a VmPeak\nline above VmSize to /proc/\u003cpid\u003e/status, and also a VmHWM line above VmRSS\n(High-Water-Mark or High-Water-Memory).\n\nThere was a particular anomaly during mremap move, that hiwater_vm might be\ncaptured too high.  A fleeting such anomaly remains, but it\u0027s quickly\ncorrected now, whereas before it would stick.\n\nWhat locking?  None: if the app is racy then these statistics will be racy,\nit\u0027s not worth any overhead to make them exact.  But whenever it suits,\nhiwater_vm is updated under exclusive mmap_sem, and hiwater_rss under\npage_table_lock (for now) or with preemption disabled (later on): without\ngoing to any trouble, minimize the time between reading current values and\nupdating, to minimize those occasions when a racing thread bumps a count up\nand back down in between.\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": "4294621f41a85497019fae64341aa5351a1921b7",
      "tree": "fdeb7eb44384a99d0679ffa6de5019bab0ea2166",
      "parents": [
        "404351e67a9facb475abf1492245374a28d13e90"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: rss \u003d file_rss + anon_rss\n\nI was lazy when we added anon_rss, and chose to change as few places as\npossible.  So currently each anonymous page has to be counted twice, in rss\nand in anon_rss.  Which won\u0027t be so good if those are atomic counts in some\nconfigurations.\n\nChange that around: keep file_rss and anon_rss separately, and add them\ntogether (with get_mm_rss macro) when the total is needed - reading two\natomics is much cheaper than updating two atomics.  And update anon_rss\nupfront, typically in memory.c, not tucked away in page_add_anon_rmap.\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": "ac9b9c667c2e1194e22ebe0a441ae1c37aaa9b90",
      "tree": "3903d87d0b56a49ead39c0460b5bc0b86b040775",
      "parents": [
        "93918e9afc76717176e9e114e79cdbb602a45ae8"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Thu Oct 20 16:24:28 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Oct 20 09:02:07 2005 -0700"
      },
      "message": "[PATCH] Fix handling spurious page fault for hugetlb region\n\nThis reverts commit 3359b54c8c07338f3a863d1109b42eebccdcf379 and\nreplaces it with a cleaner version that is purely based on page table\noperations, so that the synchronization between inode size and hugetlb\nmappings becomes moot.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1c59827d1da9bcd6970800d4f8a031b5859e8b4c",
      "tree": "768e771e4da8f8f5a84d38b4b91d2fb852a4123a",
      "parents": [
        "e03d13e985d48ac4885382c9e3b1510c78bd047f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Wed Oct 19 21:23:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 23:04:30 2005 -0700"
      },
      "message": "[PATCH] mm: hugetlb truncation fixes\n\nhugetlbfs allows truncation of its files (should it?), but hugetlb.c often\nforgets that: crashes and misaccounting ensue.\n\ncopy_hugetlb_page_range better grab the src page_table_lock since we don\u0027t\nwant to guess what happens if concurrently truncated.  unmap_hugepage_range\nrss accounting must not assume the full range was mapped.  follow_hugetlb_page\nmust guard with page_table_lock and be prepared to exit early.\n\nRestyle copy_hugetlb_page_range with a for loop like the others 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": "7bf07f3d4b4358aa6d99a26d7a0165f1e91c3fcc",
      "tree": "150e1f1172e3a7912b37bef7b06a657d47bc1657",
      "parents": [
        "32e51a8c976fc72c3e9bcece9767d9908816bf8e"
      ],
      "author": {
        "name": "Adam Litke",
        "email": "agl@us.ibm.com",
        "time": "Sat Sep 03 15:55:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@evo.osdl.org",
        "time": "Mon Sep 05 00:05:46 2005 -0700"
      },
      "message": "[PATCH] hugetlb: move stale pte check into huge_pte_alloc()\n\nInitial Post (Wed, 17 Aug 2005)\n\nThis patch moves the\n\tif (! pte_none(*pte))\n\t\thugetlb_clean_stale_pgtable(pte);\nlogic into huge_pte_alloc() so all of its callers can be immune to the bug\ndescribed by Kenneth Chen at http://lkml.org/lkml/2004/6/16/246\n\n\u003e It turns out there is a bug in hugetlb_prefault(): with 3 level page table,\n\u003e huge_pte_alloc() might return a pmd that points to a PTE page. It happens\n\u003e if the virtual address for hugetlb mmap is recycled from previously used\n\u003e normal page mmap. free_pgtables() might not scrub the pmd entry on\n\u003e munmap and hugetlb_prefault skips on any pmd presence regardless what type\n\u003e it is.\n\nUnless I am missing something, it seems more correct to place the check inside\nhuge_pte_alloc() to prevent a the same bug wherever a huge pte is allocated.\nIt also allows checking for this condition when lazily faulting huge pages\nlater in the series.\n\nSigned-off-by: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: \u003clinux-mm@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c7546f8f03f5a4fa612605b6be930234d6026860",
      "tree": "e372cdb3856c9585587283c21b5b99a792a1a41d",
      "parents": [
        "e6cb99413da42af413c11a394538ddc8b9d201e1"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Fri Aug 05 11:59:35 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Aug 05 12:22:37 2005 -0700"
      },
      "message": "[PATCH] Fix hugepage crash on failing mmap()\n\nThis patch fixes a crash in the hugepage code.  unmap_hugepage_area() was\nassuming that (due to prefault) PTEs must exist for all the area in\nquestion.  However, this may not be the case, if mmap() encounters an error\nbefore the prefault and calls unmap_region() to clean up any partial\nmapping.\n\nDepending on the hugepage configuration, this crash can be triggered by an\nunpriveleged user.\n\nSigned-off-by: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: William Lee Irwin III \u003cwli@holomorphy.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "63551ae0feaaa23807ebea60de1901564bbef32e",
      "tree": "f6f97f60f83c3e9813bdfcc6039c499997b1ea10",
      "parents": [
        "1e7e5a9048b30c57ba1ddaa6cdf59b21b65cde99"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Tue Jun 21 17:14:44 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Tue Jun 21 18:46:15 2005 -0700"
      },
      "message": "[PATCH] Hugepage consolidation\n\nA lot of the code in arch/*/mm/hugetlbpage.c is quite similar.  This patch\nattempts to consolidate a lot of the code across the arch\u0027s, putting the\ncombined version in mm/hugetlb.c.  There are a couple of uglyish hacks in\norder to covert all the hugepage archs, but the result is a very large\nreduction in the total amount of code.  It also means things like hugepage\nlazy allocation could be implemented in one place, instead of six.\n\nTested, at least a little, on ppc64, i386 and x86_64.\n\nNotes:\n\t- this patch changes the meaning of set_huge_pte() to be more\n\t  analagous to set_pte()\n\t- does SH4 need s special huge_ptep_get_and_clear()??\n\nAcked-by: William Lee 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": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
      "tree": "0bba044c4ce775e45a88a51686b5d9f90697ea9d",
      "parents": [],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@ppc970.osdl.org",
        "time": "Sat Apr 16 15:20:36 2005 -0700"
      },
      "message": "Linux-2.6.12-rc2\n\nInitial git repository build. I\u0027m not bothering with the full history,\neven though we have it. We can create a separate \"historical\" git\narchive of that later if we want to, and in the meantime it\u0027s about\n3.2GB when imported into git - space that would just make the early\ngit days unnecessarily complicated, when we don\u0027t have a lot of good\ninfrastructure for it.\n\nLet it rip!\n"
    }
  ]
}
