)]}'
{
  "log": [
    {
      "commit": "c02925540ca7019465a43c00f8a3c0186ddace2b",
      "tree": "3097ece86eedd0a01cf5dbc0a8f6c28fcbd1f4f7",
      "parents": [
        "128ec037bafe5905b2e6f2796f426a1d247d0066"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:14:05 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:03 2013 -0700"
      },
      "message": "thp: consolidate code between handle_mm_fault() and do_huge_pmd_anonymous_page()\n\ndo_huge_pmd_anonymous_page() has copy-pasted piece of handle_mm_fault()\nto handle fallback path.\n\nLet\u0027s consolidate code back by introducing VM_FAULT_FALLBACK return\ncode.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7caef26767c1727d7abfbbbfbe8b2bb473430d48",
      "tree": "909e2a3c1b0a20a976fa3f84a17a00f8a21607bf",
      "parents": [
        "5fbc461636c32efdb9d5216d491d37a40d54535b"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Thu Sep 12 15:13:56 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:02 2013 -0700"
      },
      "message": "truncate: drop \u0027oldsize\u0027 truncate_pagecache() parameter\n\ntruncate_pagecache() doesn\u0027t care about old size since commit\ncedabed49b39 (\"vfs: Fix vmtruncate() regression\").  Let\u0027s drop it.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "759496ba6407c6994d6a5ce3a5e74937d7816208",
      "tree": "aeff8de8af36f70f2591114cef58c9ae7df25565",
      "parents": [
        "871341023c771ad233620b7a1fb3d9c7031c4e5c"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Sep 12 15:13:39 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 12 15:38:01 2013 -0700"
      },
      "message": "arch: mm: pass userspace fault flag to generic fault handler\n\nUnlike global OOM handling, memory cgroup code will invoke the OOM killer\nin any OOM situation because it has no way of telling faults occuring in\nkernel context - which could be handled more gracefully - from\nuser-triggered faults.\n\nPass a flag that identifies faults originating in user space from the\narchitecture-specific fault handlers to generic code so that memcg OOM\nhandling can be improved.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: azurIt \u003cazurit@pobox.sk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9121153fdfbfaa930bf65077a5597e20d3ac608",
      "tree": "a72e82c0c3394cf84b3ff8698134ff124a61b491",
      "parents": [
        "841fcc583f81c632d20a27e17beccb20320530a1"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "liwanp@linux.vnet.ibm.com",
        "time": "Wed Sep 11 14:22:52 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:08 2013 -0700"
      },
      "message": "mm/hwpoison: don\u0027t need to hold compound lock for hugetlbfs page\n\ncompound lock is introduced by commit e9da73d67(\"thp: compound_lock.\"), it\nis used to serialize put_page against __split_huge_page_refcount().  In\naddition, transparent hugepages will be splitted in hwpoison handler and\njust one subpage will be poisoned.  There is unnecessary to hold compound\nlock for hugetlbfs page.  This patch replace compound_trans_order by\ncompond_order in the place where the page is hugetlbfs page.\n\nSigned-off-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7a8010cd36273ff5f6fea5201ef9232f30cebbd9",
      "tree": "3805f3d9a8a1f1c1c555ef31bc1bdb51fb51e33e",
      "parents": [
        "5b40998ae35cf64561868370e6c9f3d3e94b6bf7"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Wed Sep 11 14:22:35 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:58:01 2013 -0700"
      },
      "message": "mm: munlock: manual pte walk in fast path instead of follow_page_mask()\n\nCurrently munlock_vma_pages_range() calls follow_page_mask() to obtain\neach individual struct page.  This entails repeated full page table\ntranslations and page table lock taken for each page separately.\n\nThis patch avoids the costly follow_page_mask() where possible, by\niterating over ptes within single pmd under single page table lock.  The\nfirst pte is obtained by get_locked_pte() for non-THP page acquired by the\ninitial follow_page_mask().  The rest of the on-stack pagevec for munlock\nis filled up using pte_walk as long as pte_present() and vm_normal_page()\nare sufficient to obtain the struct page.\n\nAfter this patch, a 14% speedup was measured for munlocking a 56GB large\nmemory area with THP disabled.\n\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Jörn Engel \u003cjoern@logfs.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9104d1ca9662498339c0de975b4666c30485f4e",
      "tree": "cb95c72dde19930ca985b9834d604958ef4eecde",
      "parents": [
        "3b11f0aaae830f0f569cb8fb7fd26f4133ebdabd"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@gmail.com",
        "time": "Wed Sep 11 14:22:24 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 11 15:57:56 2013 -0700"
      },
      "message": "mm: track vma changes with VM_SOFTDIRTY bit\n\nPavel reported that in case if vma area get unmapped and then mapped (or\nexpanded) in-place, the soft dirty tracker won\u0027t be able to recognize this\nsituation since it works on pte level and ptes are get zapped on unmap,\nloosing soft dirty bit of course.\n\nSo to resolve this situation we need to track actions on vma level, there\nVM_SOFTDIRTY flag comes in.  When new vma area created (or old expanded)\nwe set this bit, and keep it here until application calls for clearing\nsoft dirty bit.\n\nThus when user space application track memory changes now it can detect if\nvma area is renewed.\n\nReported-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0237d7f355eef4d9ab8557e1597e8c9debd6c8c2",
      "tree": "753837a9fb9e3f65bc7450994159683a47f086a6",
      "parents": [
        "bf6c216282a260d3ce727c23fc15f28a76beff0b",
        "cf870c70a194443f8fc654ddc9d6cfd02c58003b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Aug 12 17:54:05 2013 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Aug 12 17:54:05 2013 +0200"
      },
      "message": "Merge branch \u0027x86/mce\u0027 into x86/ras\n\nPursue a single RAS/MCE topic branch on x86.\n\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "cf870c70a194443f8fc654ddc9d6cfd02c58003b",
      "tree": "73553a1960478b454dbcb99c0db0c8acf381e58b",
      "parents": [
        "9ad95879cd1b22ed016c804f8d686ff83a41a9d4"
      ],
      "author": {
        "name": "Naveen N. Rao",
        "email": "naveen.n.rao@linux.vnet.ibm.com",
        "time": "Wed Jul 10 14:57:01 2013 +0530"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Wed Jul 10 11:35:02 2013 -0700"
      },
      "message": "mce: acpi/apei: Soft-offline a page on firmware GHES notification\n\nIf the firmware indicates in GHES error data entry that the error threshold\nhas exceeded for a corrected error event, then we try to soft-offline the\npage. This could be called in interrupt context, so we queue this up similar\nto how we handle memory failure scenarios.\n\nSigned-off-by: Naveen N. Rao \u003cnaveen.n.rao@linux.vnet.ibm.com\u003e\nAcked-by: Borislav Petkov \u003cbp@suse.de\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "64363aad5ff1b878230e91223038c26a2205bff3",
      "tree": "8f8bb770645e634d55fc390ec4428b1818eccd10",
      "parents": [
        "73b44ff43c4b3cf517826da03c51948593f88753"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Jul 08 16:00:18 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 09 10:33:23 2013 -0700"
      },
      "message": "mm: remove unused VM_\u003cREADfoo\u003e macros and expand other in-place\n\nThese VM_\u003cREADfoo\u003e macros aren\u0027t used very often and three of them\naren\u0027t used at all.\n\nExpand the ones that are used in-place, and remove all the now unused\n#define VM_\u003cfoo\u003e macros.\n\nVM_READHINTMASK, VM_NormalReadHint and VM_ClearReadHint were added just\nbefore 2.4 and appears have never been used.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fccc998771043db1613509b26c18b3d7f071e668",
      "tree": "c917d6508d4194a4a50796ccb36614e3fe56da7e",
      "parents": [
        "1895418189e08c1d1eec4fbdb5fb41d793f57ba5"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Wed Jul 03 15:04:23 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:07:38 2013 -0700"
      },
      "message": "mm: introduce helper function set_max_mapnr()\n\nIntroduce a helper function set_max_mapnr() to set global variable\nmax_mapnr.\n\nAlso unify condition compilation for max_mapnr with\nCONFIG_NEED_MULTIPLE_NODES instead of CONFIG_DISCONTIGMEM.\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Mauro Carvalho Chehab \u003cmchehab@redhat.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1895418189e08c1d1eec4fbdb5fb41d793f57ba5",
      "tree": "43db8d2e00758e6ad3de06db3832986b4575c312",
      "parents": [
        "808c2c3745975714ecd4da4d68c915de9048b12f"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Wed Jul 03 15:04:21 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:07:38 2013 -0700"
      },
      "message": "mm: kill global variable num_physpages\n\nNow all references to num_physpages have been removed, so kill it.\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ee3d4e8cd560500192d80ca84d7f15d6dee0807",
      "tree": "8c58a121edb9c528fb6497e04774dca8d121aa4f",
      "parents": [
        "a214a8c68bcdef2fb0803425f7fe36fe41030d3f"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Wed Jul 03 15:03:41 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:07:35 2013 -0700"
      },
      "message": "mm: introduce helper function mem_init_print_info() to simplify mem_init()\n\nIntroduce helper function mem_init_print_info() to simplify mem_init()\nacross different architectures, which also unifies the format and\ninformation printed.\n\nFunction mem_init_print_info() calculates memory statistics information\nwithout walking each page, so it should be a little faster on some\narchitectures.\n\nAlso introduce another helper get_num_physpages() to kill the global\nvariable num_physpages.\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c3d5f5f0c2bc4eabeaf49f1a21e1aeb965246cd2",
      "tree": "ec3b59b33102150b20c04de0b43d25dcea692b68",
      "parents": [
        "7b4b2a0d6c8500350784beb83a6a55e60ea3bea3"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Wed Jul 03 15:03:14 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:07:33 2013 -0700"
      },
      "message": "mm: use a dedicated lock to protect totalram_pages and zone-\u003emanaged_pages\n\nCurrently lock_memory_hotplug()/unlock_memory_hotplug() are used to\nprotect totalram_pages and zone-\u003emanaged_pages.  Other than the memory\nhotplug driver, totalram_pages and zone-\u003emanaged_pages may also be\nmodified at runtime by other drivers, such as Xen balloon,\nvirtio_balloon etc.  For those cases, memory hotplug lock is a little\ntoo heavy, so introduce a dedicated lock to protect totalram_pages and\nzone-\u003emanaged_pages.\n\nNow we have a simplified locking rules totalram_pages and\nzone-\u003emanaged_pages as:\n\n1) no locking for read accesses because they are unsigned long.\n2) no locking for write accesses at boot time in single-threaded context.\n3) serialize write accesses at runtime by acquiring the dedicated\n   managed_page_count_lock.\n\nAlso adjust zone-\u003emanaged_pages when freeing reserved pages into the\nbuddy system, to keep totalram_pages and zone-\u003emanaged_pages in\nconsistence.\n\n[akpm@linux-foundation.org: don\u0027t export adjust_managed_page_count to modules (for now)]\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: \u003csworddragon2@aol.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dbe67df4ba78c79db547c7864e1120981c144c97",
      "tree": "5dbfb1f416d8099b46921d5ad59f1d8287473564",
      "parents": [
        "11199692d83dd3fe1511203024fb9853d176ec4c"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Wed Jul 03 15:02:51 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:07:32 2013 -0700"
      },
      "message": "mm: enhance free_reserved_area() to support poisoning memory with zero\n\nAddress more review comments from last round of code review.\n1) Enhance free_reserved_area() to support poisoning freed memory with\n   pattern \u00270\u0027. This could be used to get rid of poison_init_mem()\n   on ARM64.\n2) A previous patch has disabled memory poison for initmem on s390\n   by mistake, so restore to the original behavior.\n3) Remove redundant PAGE_ALIGN() when calling free_reserved_area().\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: \u003csworddragon2@aol.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "11199692d83dd3fe1511203024fb9853d176ec4c",
      "tree": "a8632c310774eef2928f24d5aca81d1203dd54b8",
      "parents": [
        "dcf6b7ddd7df8965727746f89c59229b23180e5a"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Wed Jul 03 15:02:48 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:07:32 2013 -0700"
      },
      "message": "mm: change signature of free_reserved_area() to fix building warnings\n\nChange signature of free_reserved_area() according to Russell King\u0027s\nsuggestion to fix following build warnings:\n\n  arch/arm/mm/init.c: In function \u0027mem_init\u0027:\n  arch/arm/mm/init.c:603:2: warning: passing argument 1 of \u0027free_reserved_area\u0027 makes integer from pointer without a cast [enabled by default]\n    free_reserved_area(__va(PHYS_PFN_OFFSET), swapper_pg_dir, 0, NULL);\n    ^\n  In file included from include/linux/mman.h:4:0,\n                   from arch/arm/mm/init.c:15:\n  include/linux/mm.h:1301:22: note: expected \u0027long unsigned int\u0027 but argument is of type \u0027void *\u0027\n   extern unsigned long free_reserved_area(unsigned long start, unsigned long end,\n\n   mm/page_alloc.c: In function \u0027free_reserved_area\u0027:\n\u003e\u003e mm/page_alloc.c:5134:3: warning: passing argument 1 of \u0027virt_to_phys\u0027 makes pointer from integer without a cast [enabled by default]\n   In file included from arch/mips/include/asm/page.h:49:0,\n                    from include/linux/mmzone.h:20,\n                    from include/linux/gfp.h:4,\n                    from include/linux/mm.h:8,\n                    from mm/page_alloc.c:18:\n   arch/mips/include/asm/io.h:119:29: note: expected \u0027const volatile void *\u0027 but argument is of type \u0027long unsigned int\u0027\n   mm/page_alloc.c: In function \u0027free_area_init_nodes\u0027:\n   mm/page_alloc.c:5030:34: warning: array subscript is below array bounds [-Warray-bounds]\n\nAlso address some minor code review comments.\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nReported-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nCc: \u003csworddragon2@aol.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Joonsoo Kim \u003cjs1304@gmail.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0fa73b86ef0797ca4fde5334117ca0b330f08030",
      "tree": "e3c9a84f928a23b6613f177837fcfd6beb8e41f2",
      "parents": [
        "d702909f0aa14fe678d74d7f974aa66bfb211d0b"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Jul 03 15:02:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jul 03 16:07:30 2013 -0700"
      },
      "message": "include/linux/mm.h: add PAGE_ALIGNED() helper\n\nTo test whether an address is aligned to PAGE_SIZE.\n\nCc: HATAYAMA Daisuke \u003cd.hatayama@jp.fujitsu.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e,\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d47992f86b307985b3215bcf141d56d1849d71df",
      "tree": "e1ae47bd19185371462c5a273c15276534447349",
      "parents": [
        "c7788792a5e7b0d5d7f96d0766b4cb6112d47d75"
      ],
      "author": {
        "name": "Lukas Czerner",
        "email": "lczerner@redhat.com",
        "time": "Tue May 21 23:17:23 2013 -0400"
      },
      "committer": {
        "name": "Theodore Ts\u0027o",
        "email": "tytso@mit.edu",
        "time": "Tue May 21 23:17:23 2013 -0400"
      },
      "message": "mm: change invalidatepage prototype to accept length\n\nCurrently there is no way to truncate partial page where the end\ntruncate point is not at the end of the page. This is because it was not\nneeded and the functionality was enough for file system truncate\noperation to work properly. However more file systems now support punch\nhole feature and it can benefit from mm supporting truncating page just\nup to the certain point.\n\nSpecifically, with this functionality truncate_inode_pages_range() can\nbe changed so it supports truncating partial page at the end of the\nrange (currently it will BUG_ON() if \u0027end\u0027 is not at the end of the\npage).\n\nThis commit changes the invalidatepage() address space operation\nprototype to accept range to be invalidated and update all the instances\nfor it.\n\nWe also change the block_invalidatepage() in the same way and actually\nmake a use of the new length argument implementing range invalidation.\n\nActual file system implementations will follow except the file systems\nwhere the changes are really simple and should not change the behaviour\nin any way .Implementation for truncate_page_range() which will be able\nto accept page unaligned ranges will follow as well.\n\nSigned-off-by: Lukas Czerner \u003clczerner@redhat.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\n"
    },
    {
      "commit": "0f157a5b58d0d2890f0ae20da9fe66aa19a91a4d",
      "tree": "f9136e1e39bd6123d375299fb414b6345b00fcff",
      "parents": [
        "b070e65c0bb58d90fa1ac693dc85e239a6b16872"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue May 07 16:18:10 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 07 18:38:26 2013 -0700"
      },
      "message": "include/linux/mm.h: complete the mm_walk definition\n\nThat nameless-function-arguments thing drives me batty.  Fix.\n\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08d76760832993050ad8c25e63b56773ef2ca303",
      "tree": "abdcf148dfe43cd49f30f204f1dac6978107a508",
      "parents": [
        "5f56886521d6ddd3648777fae44d82382dd8c87f",
        "99e621f796d7f0341a51e8cdf32b81663b10b448"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 07:21:43 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 01 07:21:43 2013 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull compat cleanup from Al Viro:\n \"Mostly about syscall wrappers this time; there will be another pile\n  with patches in the same general area from various people, but I\u0027d\n  rather push those after both that and vfs.git pile are in.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  syscalls.h: slightly reduce the jungles of macros\n  get rid of union semop in sys_semctl(2) arguments\n  make do_mremap() static\n  sparc: no need to sign-extend in sync_file_range() wrapper\n  ppc compat wrappers for add_key(2) and request_key(2) are pointless\n  x86: trim sys_ia32.h\n  x86: sys32_kill and sys32_mprotect are pointless\n  get rid of compat_sys_semctl() and friends in case of ARCH_WANT_OLD_COMPAT_IPC\n  merge compat sys_ipc instances\n  consolidate compat lookup_dcookie()\n  convert vmsplice to COMPAT_SYSCALL_DEFINE\n  switch getrusage() to COMPAT_SYSCALL_DEFINE\n  switch epoll_pwait to COMPAT_SYSCALL_DEFINE\n  convert sendfile{,64} to COMPAT_SYSCALL_DEFINE\n  switch signalfd{,4}() to COMPAT_SYSCALL_DEFINE\n  make SYSCALL_DEFINE\u003cn\u003e-generated wrappers do asmlinkage_protect\n  make HAVE_SYSCALL_WRAPPERS unconditional\n  consolidate cond_syscall and SYSCALL_ALIAS declarations\n  teach SYSCALL_DEFINE\u003cn\u003e how to deal with long long/unsigned long long\n  get rid of duplicate logics in __SC_....[1-6] definitions\n"
    },
    {
      "commit": "4eeab4f5580d11bffedc697684b91b0bca0d5009",
      "tree": "4e9a0c010d34e786df52225039a17aa38e9adf17",
      "parents": [
        "c9b1d0981fcce3d9976d7b7a56e4e0503bc610dd"
      ],
      "author": {
        "name": "Andrew Shewmaker",
        "email": "agshew@gmail.com",
        "time": "Mon Apr 29 15:08:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:36 2013 -0700"
      },
      "message": "mm: replace hardcoded 3% with admin_reserve_pages knob\n\nAdd an admin_reserve_kbytes knob to allow admins to change the hardcoded\nmemory reserve to something other than 3%, which may be multiple\ngigabytes on large memory systems.  Only about 8MB is necessary to\nenable recovery in the default mode, and only a few hundred MB are\nrequired even when overcommit is disabled.\n\nThis affects OVERCOMMIT_GUESS and OVERCOMMIT_NEVER.\n\nadmin_reserve_kbytes is initialized to min(3% free pages, 8MB)\n\nI arrived at 8MB by summing the RSS of sshd or login, bash, and top.\n\nPlease see first patch in this series for full background, motivation,\ntesting, and full changelog.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: make init_admin_reserve() static]\nSigned-off-by: Andrew Shewmaker \u003cagshew@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9b1d0981fcce3d9976d7b7a56e4e0503bc610dd",
      "tree": "f7adfbfb1e34b3727e7d6b63a1ece93b358f87d8",
      "parents": [
        "d8f10cb3d375c34ad668f32ca6e4661ad1fc23b2"
      ],
      "author": {
        "name": "Andrew Shewmaker",
        "email": "agshew@gmail.com",
        "time": "Mon Apr 29 15:08:10 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:36 2013 -0700"
      },
      "message": "mm: limit growth of 3% hardcoded other user reserve\n\nAdd user_reserve_kbytes knob.\n\nLimit the growth of the memory reserved for other user processes to\nmin(3% current process size, user_reserve_pages).  Only about 8MB is\nnecessary to enable recovery in the default mode, and only a few hundred\nMB are required even when overcommit is disabled.\n\nuser_reserve_pages defaults to min(3% free pages, 128MB)\n\nI arrived at 128MB by taking the max VSZ of sshd, login, bash, and top ...\nthen adding the RSS of each.\n\nThis only affects OVERCOMMIT_NEVER mode.\n\nBackground\n\n1. user reserve\n\n__vm_enough_memory reserves a hardcoded 3% of the current process size for\nother applications when overcommit is disabled.  This was done so that a\nuser could recover if they launched a memory hogging process.  Without the\nreserve, a user would easily run into a message such as:\n\nbash: fork: Cannot allocate memory\n\n2. admin reserve\n\nAdditionally, a hardcoded 3% of free memory is reserved for root in both\novercommit \u0027guess\u0027 and \u0027never\u0027 modes.  This was intended to prevent a\nscenario where root-cant-log-in and perform recovery operations.\n\nNote that this reserve shrinks, and doesn\u0027t guarantee a useful reserve.\n\nMotivation\n\nThe two hardcoded memory reserves should be updated to account for current\nmemory sizes.\n\nAlso, the admin reserve would be more useful if it didn\u0027t shrink too much.\n\nWhen the current code was originally written, 1GB was considered\n\"enterprise\".  Now the 3% reserve can grow to multiple GB on large memory\nsystems, and it only needs to be a few hundred MB at most to enable a user\nor admin to recover a system with an unwanted memory hogging process.\n\nI\u0027ve found that reducing these reserves is especially beneficial for a\nspecific type of application load:\n\n * single application system\n * one or few processes (e.g. one per core)\n * allocating all available memory\n * not initializing every page immediately\n * long running\n\nI\u0027ve run scientific clusters with this sort of load.  A long running job\nsometimes failed many hours (weeks of CPU time) into a calculation.  They\nweren\u0027t initializing all of their memory immediately, and they weren\u0027t\nusing calloc, so I put systems into overcommit \u0027never\u0027 mode.  These\nclusters run diskless and have no swap.\n\nHowever, with the current reserves, a user wishing to allocate as much\nmemory as possible to one process may be prevented from using, for\nexample, almost 2GB out of 32GB.\n\nThe effect is less, but still significant when a user starts a job with\none process per core.  I have repeatedly seen a set of processes\nrequesting the same amount of memory fail because one of them could not\nallocate the amount of memory a user would expect to be able to allocate.\nFor example, Message Passing Interfce (MPI) processes, one per core.  And\nit is similar for other parallel programming frameworks.\n\nChanging this reserve code will make the overcommit never mode more useful\nby allowing applications to allocate nearly all of the available memory.\n\nAlso, the new admin_reserve_kbytes will be safer than the current behavior\nsince the hardcoded 3% of available memory reserve can shrink to something\nuseless in the case where applications have grabbed all available memory.\n\nRisks\n\n* \"bash: fork: Cannot allocate memory\"\n\n  The downside of the first patch-- which creates a tunable user reserve\n  that is only used in overcommit \u0027never\u0027 mode--is that an admin can set\n  it so low that a user may not be able to kill their process, even if\n  they already have a shell prompt.\n\n  Of course, a user can get in the same predicament with the current 3%\n  reserve--they just have to launch processes until 3% becomes negligible.\n\n* root-cant-log-in problem\n\n  The second patch, adding the tunable rootuser_reserve_pages, allows\n  the admin to shoot themselves in the foot by setting it too small.  They\n  can easily get the system into a state where root-can\u0027t-log-in.\n\n  However, the new admin_reserve_kbytes will be safer than the current\n  behavior since the hardcoded 3% of available memory reserve can shrink\n  to something useless in the case where applications have grabbed all\n  available memory.\n\nAlternatives\n\n * Memory cgroups provide a more flexible way to limit application memory.\n\n   Not everyone wants to set up cgroups or deal with their overhead.\n\n * We could create a fourth overcommit mode which provides smaller reserves.\n\n   The size of useful reserves may be drastically different depending\n   on the whether the system is embedded or enterprise.\n\n * Force users to initialize all of their memory or use calloc.\n\n   Some users don\u0027t want/expect the system to overcommit when they malloc.\n   Overcommit \u0027never\u0027 mode is for this scenario, and it should work well.\n\nThe new user and admin reserve tunables are simple to use, with low\noverhead compared to cgroups.  The patches preserve current behavior where\n3% of memory is less than 128MB, except that the admin reserve doesn\u0027t\nshrink to an unusable size under pressure.  The code allows admins to tune\nfor embedded and enterprise usage.\n\nFAQ\n\n * How is the root-cant-login problem addressed?\n   What happens if admin_reserve_pages is set to 0?\n\n   Root is free to shoot themselves in the foot by setting\n   admin_reserve_kbytes too low.\n\n   On x86_64, the minimum useful reserve is:\n     8MB for overcommit \u0027guess\u0027\n   128MB for overcommit \u0027never\u0027\n\n   admin_reserve_pages defaults to min(3% free memory, 8MB)\n\n   So, anyone switching to \u0027never\u0027 mode needs to adjust\n   admin_reserve_pages.\n\n * How do you calculate a minimum useful reserve?\n\n   A user or the admin needs enough memory to login and perform\n   recovery operations, which includes, at a minimum:\n\n   sshd or login + bash (or some other shell) + top (or ps, kill, etc.)\n\n   For overcommit \u0027guess\u0027, we can sum resident set sizes (RSS)\n   because we only need enough memory to handle what the recovery\n   programs will typically use. On x86_64 this is about 8MB.\n\n   For overcommit \u0027never\u0027, we can take the max of their virtual sizes (VSZ)\n   and add the sum of their RSS. We use VSZ instead of RSS because mode\n   forces us to ensure we can fulfill all of the requested memory allocations--\n   even if the programs only use a fraction of what they ask for.\n   On x86_64 this is about 128MB.\n\n   When swap is enabled, reserves are useful even when they are as\n   small as 10MB, regardless of overcommit mode.\n\n   When both swap and overcommit are disabled, then the admin should\n   tune the reserves higher to be absolutley safe. Over 230MB each\n   was safest in my testing.\n\n * What happens if user_reserve_pages is set to 0?\n\n   Note, this only affects overcomitt \u0027never\u0027 mode.\n\n   Then a user will be able to allocate all available memory minus\n   admin_reserve_kbytes.\n\n   However, they will easily see a message such as:\n\n   \"bash: fork: Cannot allocate memory\"\n\n   And they won\u0027t be able to recover/kill their application.\n   The admin should be able to recover the system if\n   admin_reserve_kbytes is set appropriately.\n\n * What\u0027s the difference between overcommit \u0027guess\u0027 and \u0027never\u0027?\n\n   \"Guess\" allows an allocation if there are enough free + reclaimable\n   pages. It has a hardcoded 3% of free pages reserved for root.\n\n   \"Never\" allows an allocation if there is enough swap + a configurable\n   percentage (default is 50) of physical RAM. It has a hardcoded 3% of\n   free pages reserved for root, like \"Guess\" mode. It also has a\n   hardcoded 3% of the current process size reserved for additional\n   applications.\n\n * Why is overcommit \u0027guess\u0027 not suitable even when an app eventually\n   writes to every page? It takes free pages, file pages, available\n   swap pages, reclaimable slab pages into consideration. In other words,\n   these are all pages available, then why isn\u0027t overcommit suitable?\n\n   Because it only looks at the present state of the system. It\n   does not take into account the memory that other applications have\n   malloced, but haven\u0027t initialized yet. It overcommits the system.\n\nTest Summary\n\nThere was little change in behavior in the default overcommit \u0027guess\u0027\nmode with swap enabled before and after the patch. This was expected.\n\nSystems run most predictably (i.e. no oom kills) in overcommit \u0027never\u0027\nmode with swap enabled. This also allowed the most memory to be allocated\nto a user application.\n\nOvercommit \u0027guess\u0027 mode without swap is a bad idea. It is easy to\ncrash the system. None of the other tested combinations crashed.\nThis matches my experience on the Roadrunner supercomputer.\n\nWithout the tunable user reserve, a system in overcommit \u0027never\u0027 mode\nand without swap does not allow the admin to recover, although the\nadmin can.\n\nWith the new tunable reserves, a system in overcommit \u0027never\u0027 mode\nand without swap can be configured to:\n\n1. maximize user-allocatable memory, running close to the edge of\nrecoverability\n\n2. maximize recoverability, sacrificing allocatable memory to\nensure that a user cannot take down a system\n\nTest Description\n\nFedora 18 VM - 4 x86_64 cores, 5725MB RAM, 4GB Swap\n\nSystem is booted into multiuser console mode, with unnecessary services\nturned off. Caches were dropped before each test.\n\nHogs are user memtester processes that attempt to allocate all free memory\nas reported by /proc/meminfo\n\nIn overcommit \u0027never\u0027 mode, memory_ratio\u003d100\n\nTest Results\n\n3.9.0-rc1-mm1\n\nOvercommit | Swap | Hogs | MB Got/Wanted | OOMs | User Recovery | Admin Recovery\n----------   ----   ----   -------------   ----   -------------   --------------\nguess        yes    1      5432/5432       no     yes             yes\nguess        yes    4      5444/5444       1      yes             yes\nguess        no     1      5302/5449       no     yes             yes\nguess        no     4      -               crash  no              no\n\nnever        yes    1      5460/5460       1      yes             yes\nnever        yes    4      5460/5460       1      yes             yes\nnever        no     1      5218/5432       no     no              yes\nnever        no     4      5203/5448       no     no              yes\n\n3.9.0-rc1-mm1-tunablereserves\n\nUser and Admin Recovery show their respective reserves, if applicable.\n\nOvercommit | Swap | Hogs | MB Got/Wanted | OOMs | User Recovery | Admin Recovery\n----------   ----   ----   -------------   ----   -------------   --------------\nguess        yes    1      5419/5419       no     - yes           8MB yes\nguess        yes    4      5436/5436       1      - yes           8MB yes\nguess        no     1      5440/5440       *      - yes           8MB yes\nguess        no     4      -               crash  - no            8MB no\n\n* process would successfully mlock, then the oom killer would pick it\n\nnever        yes    1      5446/5446       no     10MB yes        20MB yes\nnever        yes    4      5456/5456       no     10MB yes        20MB yes\nnever        no     1      5387/5429       no     128MB no        8MB barely\nnever        no     1      5323/5428       no     226MB barely    8MB barely\nnever        no     1      5323/5428       no     226MB barely    8MB barely\n\nnever        no     1      5359/5448       no     10MB no         10MB barely\n\nnever        no     1      5323/5428       no     0MB no          10MB barely\nnever        no     1      5332/5428       no     0MB no          50MB yes\nnever        no     1      5293/5429       no     0MB no          90MB yes\n\nnever        no     1      5001/5427       no     230MB yes       338MB yes\nnever        no     4*     4998/5424       no     230MB yes       338MB yes\n\n* more memtesters were launched, able to allocate approximately another 100MB\n\nFuture Work\n\n - Test larger memory systems.\n\n - Test an embedded image.\n\n - Test other architectures.\n\n - Time malloc microbenchmarks.\n\n - Would it be useful to be able to set overcommit policy for\n   each memory cgroup?\n\n - Some lines are slightly above 80 chars.\n   Perhaps define a macro to convert between pages and kb?\n   Other places in the kernel do this.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: make init_user_reserve() static]\nSigned-off-by: Andrew Shewmaker \u003cagshew@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f9872caf07c1c774034b8bddde7d4a3a7f4a6484",
      "tree": "bfaa2883e6d2ae3945f6789b3a8935e7461ab9cb",
      "parents": [
        "7c243c7168dcc1bc2081fc0494923cd7cc808fb6"
      ],
      "author": {
        "name": "Cody P Schafer",
        "email": "cody@linux.vnet.ibm.com",
        "time": "Mon Apr 29 15:08:01 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:36 2013 -0700"
      },
      "message": "page_alloc: make setup_nr_node_ids() usable for arch init code\n\npowerpc and x86 were opencoding copies of setup_nr_node_ids(), which\npage_alloc provides but makes static.  Make it avaliable to the archs in\nlinux/mm.h.\n\nSigned-off-by: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0aad818b2de455f1bfd7ef87c28cdbbaaed9a699",
      "tree": "a86fe62f7c740d431f76bd2262abae5825e1a21e",
      "parents": [
        "055e4fd96e95b0eee0d92fd54a26be7f0d3bcad0"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon Apr 29 15:07:50 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:35 2013 -0700"
      },
      "message": "sparse-vmemmap: specify vmemmap population range in bytes\n\nThe sparse code, when asking the architecture to populate the vmemmap,\nspecifies the section range as a starting page and a number of pages.\n\nThis is an awkward interface, because none of the arch-specific code\nactually thinks of the range in terms of \u0027struct page\u0027 units and always\ntranslates it to bytes first.\n\nIn addition, later patches mix huge page and regular page backing for\nthe vmemmap.  For this, they need to call vmemmap_populate_basepages()\non sub-section ranges with PAGE_SIZE and PMD_SIZE in mind.  But these\nare not necessarily multiples of the \u0027struct page\u0027 size and so this unit\nis too coarse.\n\nJust translate the section range into bytes once in the generic sparse\ncode, then pass byte ranges down the stack.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Bernhard Schmidt \u003cBernhard.Schmidt@lrz.de\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nTested-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "146732ce104ddfed3d4d82722c0b336074016b92",
      "tree": "07185bc6ff143cc669cc9e0a197a3adf0c13004a",
      "parents": [
        "6d2488f64a240191f0733c1f32d73607916b01b7"
      ],
      "author": {
        "name": "Josh Triplett",
        "email": "josh@joshtriplett.org",
        "time": "Mon Apr 29 15:07:22 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:33 2013 -0700"
      },
      "message": "fs: don\u0027t compile in drop_caches.c when CONFIG_SYSCTL\u003dn\n\ndrop_caches.c provides code only invokable via sysctl, so don\u0027t compile it\nin when CONFIG_SYSCTL\u003dn.\n\nSigned-off-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cfa11e08ed39eb28a9eff9a907b20913020c69b5",
      "tree": "de70473dbf74cfee568e78b1d00c4764e9035729",
      "parents": [
        "e07cee23e64137f7da2fb35d7b7c0ad26cc0edec"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Mon Apr 29 15:07:00 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:31 2013 -0700"
      },
      "message": "mm: introduce free_highmem_page() helper to free highmem pages into buddy system\n\nThe original goal of this patchset is to fix the bug reported by\n\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d53501\n\nNow it has also been expanded to reduce common code used by memory\ninitializion.\n\nThis is the second part, which applies to the previous part at:\n  http://marc.info/?l\u003dlinux-mm\u0026m\u003d136289696323825\u0026w\u003d2\n\nIt introduces a helper function free_highmem_page() to free highmem\npages into the buddy system when initializing mm subsystem.\nIntroduction of free_highmem_page() is one step forward to clean up\naccesses and modificaitons of totalhigh_pages, totalram_pages and\nzone-\u003emanaged_pages etc. I hope we could remove all references to\ntotalhigh_pages from the arch/ subdirectory.\n\nWe have only tested these patchset on x86 platforms, and have done basic\ncompliation tests using cross-compilers from ftp.kernel.org. That means\nsome code may not pass compilation on some architectures. So any help\nto test this patchset are welcomed!\n\nThere are several other parts still under development:\nPart3: refine code to manage totalram_pages, totalhigh_pages and\n\tzone-\u003emanaged_pages\nPart4: introduce helper functions to simplify mem_init() and remove the\n\tglobal variable num_physpages.\n\nThis patch:\n\nIntroduce helper function free_highmem_page(), which will be used by\narchitectures with HIGHMEM enabled to free highmem pages into the buddy\nsystem.\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"Suzuki K. Poulose\" \u003csuzuki@in.ibm.com\u003e\nCc: Alexander Graf \u003cagraf@suse.de\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Attilio Rao \u003cattilio.rao@citrix.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Cong Wang \u003camwang@redhat.com\u003e\nCc: David Daney \u003cdavid.daney@cavium.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jiang Liu \u003cliuj97@gmail.com\u003e\nCc: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69afade72a3e13e96a065f757891d384d466123f",
      "tree": "e294349336908e3ffac054f8fa9827226c9ed5b1",
      "parents": [
        "2d42a40d592fadbd01cb639ac21a761fa31423f8"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "liuj97@gmail.com",
        "time": "Mon Apr 29 15:06:21 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:29 2013 -0700"
      },
      "message": "mm: introduce common help functions to deal with reserved/managed pages\n\nThe original goal of this patchset is to fix the bug reported by\n\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d53501\n\nNow it has also been expanded to reduce common code used by memory\ninitializion.\n\nThis is the first part, which applies to v3.9-rc1.\n\nIt introduces following common helper functions to simplify\nfree_initmem() and free_initrd_mem() on different architectures:\n\nadjust_managed_page_count():\n\twill be used to adjust totalram_pages, totalhigh_pages,\n\tzone-\u003emanaged_pages when reserving/unresering a page.\n\n__free_reserved_page():\n\tfree a reserved page into the buddy system without adjusting\n\tpage statistics info\n\nfree_reserved_page():\n\tfree a reserved page into the buddy system and adjust page\n\tstatistics info\n\nmark_page_reserved():\n\tmark a page as reserved and adjust page statistics info\n\nfree_reserved_area():\n\tfree a continous ranges of pages by calling free_reserved_page()\n\nfree_initmem_default():\n\tdefault method to free __init pages.\n\nWe have only tested these patchset on x86 platforms, and have done basic\ncompliation tests using cross-compilers from ftp.kernel.org.  That means\nsome code may not pass compilation on some architectures.  So any help to\ntest this patchset are welcomed!\n\nThere are several other parts still under development:\nPart2: introduce free_highmem_page() to simplify freeing highmem pages\nPart3: refine code to manage totalram_pages, totalhigh_pages and\n\tzone-\u003emanaged_pages\nPart4: introduce helper functions to simplify mem_init() and remove the\n\tglobal variable num_physpages.\n\nThis patch:\n\nCode to deal with reserved/managed pages are duplicated by many\narchitectures, so introduce common help functions to reduce duplicated\ncode.  These common help functions will also be used to concentrate code\nto modify totalram_pages and zone-\u003emanaged_pages, which makes the code\nmuch more clear.\n\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nAcked-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Anatolij Gustschin \u003cagust@denx.de\u003e\nCc: Aurelien Jacquiot \u003ca-jacquiot@ti.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Chen Liqin \u003cliqin.chen@sunplusct.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: Haavard Skinnemoen \u003chskinnemoen@gmail.com\u003e\nCc: Hans-Christian Egtvedt \u003cegtvedt@samfundet.no\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Hirokazu Takata \u003ctakata@linux-m32r.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jiang Liu \u003cliuj97@gmail.com\u003e\nCc: Jonas Bonn \u003cjonas@southpole.se\u003e\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e\nCc: Lennox Wu \u003clennox.wu@gmail.com\u003e\nCc: Mark Salter \u003cmsalter@redhat.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: Max Filippov \u003cjcmvbkbc@gmail.com\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nCc: Mikael Starvik \u003cstarvik@axis.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Vineet Gupta \u003cvgupta@synopsys.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Yoshinori Sato \u003cysato@users.sourceforge.jp\u003e\nCc: Zhang Yanfei \u003czhangyanfei@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b59e6c4730978679b414a8da61514a2518da512",
      "tree": "241f48acea764191a458c6ae2d058b079b24f12d",
      "parents": [
        "fe0bfaaff84429a35e4447d4ccd646aecf5999fb"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Apr 29 15:06:11 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 29 15:54:28 2013 -0700"
      },
      "message": "mm, show_mem: suppress page counts in non-blockable contexts\n\nOn large systems with a lot of memory, walking all RAM to determine page\ntypes may take a half second or even more.\n\nIn non-blockable contexts, the page allocator will emit a page allocation\nfailure warning unless __GFP_NOWARN is specified.  In such contexts, irqs\nare typically disabled and such a lengthy delay may even result in NMI\nwatchdog timeouts.\n\nTo fix this, suppress the page walk in such contexts when printing the\npage allocation failure warning.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b4cbb197c7e7a68dbad0d491242e3ca67420c13e",
      "tree": "7837f65dc0b03d8e84ed5aa6af02bc26e5a210f1",
      "parents": [
        "bb33db7a076f4719dc68c235e187dd4bfb16b621"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 16 13:45:37 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 16 16:45:45 2013 -0700"
      },
      "message": "vm: add vm_iomap_memory() helper function\n\nVarious drivers end up replicating the code to mmap() their memory\nbuffers into user space, and our core memory remapping function may be\nvery flexible but it is unnecessarily complicated for the common cases\nto use.\n\nOur internal VM uses pfn\u0027s (\"page frame numbers\") which simplifies\nthings for the VM, and allows us to pass physical addresses around in a\ndenser and more efficient format than passing a \"phys_addr_t\" around,\nand having to shift it up and down by the page size.  But it just means\nthat drivers end up doing that shifting instead at the interface level.\n\nIt also means that drivers end up mucking around with internal VM things\nlike the vma details (vm_pgoff, vm_start/end) way more than they really\nneed to.\n\nSo this just exports a function to map a certain physical memory range\ninto user space (using a phys_addr_t based interface that is much more\nnatural for a driver) and hides all the complexity from the driver.\nSome drivers will still end up tweaking the vm_page_prot details for\nthings like prefetching or cacheability etc, but that\u0027s actually\nrelevant to the driver, rather than caring about what the page offset of\nthe mapping is into the particular IO memory region.\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "09a9f1d27892255cfb9c91203f19476765e2d8d1",
      "tree": "e6f0985223c87408773c3b81428935d3ce99931b",
      "parents": [
        "0776ce03b1348d39ba3035ea3ee3d268a42912ce"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Thu Mar 28 16:26:23 2013 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 28 17:45:51 2013 -0700"
      },
      "message": "Revert \"mm: introduce VM_POPULATE flag to better deal with racy userspace programs\"\n\nThis reverts commit 186930500985 (\"mm: introduce VM_POPULATE flag to\nbetter deal with racy userspace programs\").\n\nVM_POPULATE only has any effect when userspace plays racy games with\nvmas by trying to unmap and remap memory regions that mmap or mlock are\noperating on.\n\nAlso, the only effect of VM_POPULATE when userspace plays such games is\nthat it avoids populating new memory regions that get remapped into the\naddress range that was being operated on by the original mmap or mlock\ncalls.\n\nLet\u0027s remove VM_POPULATE as there isn\u0027t any strong argument to mandate a\nnew vm_flag.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b377bab29e6a241db42f27541e7fb63713ee178",
      "tree": "e56ee3359156dd2d01ebd6dac3aaf04cbc311bec",
      "parents": [
        "2ae80c43d480548dd32591664c93ef011ac34b21"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 04 10:47:59 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 04 10:47:59 2013 -0500"
      },
      "message": "make do_mremap() static\n\nThe extern in sys_sparc_64.c was a rudiment of time when do_mremap()\nused to exist in MMU case (it doesn\u0027t anymore).  As for !MMU one,\nnothing uses it outside of mm/nommu.c...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8fd5e7a2d9574b3cac1c9264ad1aed3b613ed6fe",
      "tree": "5696f5d31c6c75b71bfc4852fb234b773e266cfe",
      "parents": [
        "529e5fbcd8d3cb48cf824ac8fde91cc80a9e985f",
        "c60ac31542e93499b58dcfc1e3f6550ba5b5728e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:06:09 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Mar 03 12:06:09 2013 -0800"
      },
      "message": "Merge tag \u0027metag-v3.9-rc1-v4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag\n\nPull new ImgTec Meta architecture from James Hogan:\n \"This adds core architecture support for Imagination\u0027s Meta processor\n  cores, followed by some later miscellaneous arch/metag cleanups and\n  fixes which I kept separate to ease review:\n\n   - Support for basic Meta 1 (ATP) and Meta 2 (HTP) core architecture\n   - A few fixes all over, particularly for symbol prefixes\n   - A few privilege protection fixes\n   - Several cleanups (setup.c includes, split out a lot of\n     metag_ksyms.c)\n   - Fix some missing exports\n   - Convert hugetlb to use vm_unmapped_area()\n   - Copy device tree to non-init memory\n   - Provide dma_get_sgtable()\"\n\n* tag \u0027metag-v3.9-rc1-v4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag: (61 commits)\n  metag: Provide dma_get_sgtable()\n  metag: prom.h: remove declaration of metag_dt_memblock_reserve()\n  metag: copy devicetree to non-init memory\n  metag: cleanup metag_ksyms.c includes\n  metag: move mm/init.c exports out of metag_ksyms.c\n  metag: move usercopy.c exports out of metag_ksyms.c\n  metag: move setup.c exports out of metag_ksyms.c\n  metag: move kick.c exports out of metag_ksyms.c\n  metag: move traps.c exports out of metag_ksyms.c\n  metag: move irq enable out of irqflags.h on SMP\n  genksyms: fix metag symbol prefix on crc symbols\n  metag: hugetlb: convert to vm_unmapped_area()\n  metag: export clear_page and copy_page\n  metag: export metag_code_cache_flush_all\n  metag: protect more non-MMU memory regions\n  metag: make TXPRIVEXT bits explicit\n  metag: kernel/setup.c: sort includes\n  perf: Enable building perf tools for Meta\n  metag: add boot time LNKGET/LNKSET check\n  metag: add __init to metag_cache_probe()\n  ...\n"
    },
    {
      "commit": "9ca52ed979b6b45ae480a5fc56d593efb3bf16e8",
      "tree": "ebf6aa82302ad45b22b95f2e5163897c1b1d4db4",
      "parents": [
        "1e57372eaccdd5959b8ae00bf99aa10d330f207d"
      ],
      "author": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Tue Oct 16 10:16:14 2012 +0100"
      },
      "committer": {
        "name": "James Hogan",
        "email": "james.hogan@imgtec.com",
        "time": "Sat Mar 02 20:09:53 2013 +0000"
      },
      "message": "mm: define VM_GROWSUP for CONFIG_METAG\n\nCommit cc2383ec06be093789469852e1fe96e1148e9a2c (\"mm: introduce\narch-specific vma flag VM_ARCH_1\") merged in v3.7-rc1.\n\nThe above commit combined several arch-specific vma flags into one, and\nin the process it changed the VM_GROWSUP definition to depend on\nspecific architectures rather than CONFIG_STACK_GROWSUP. Therefore add\nan ifdef for CONFIG_METAG to also set VM_GROWSUP.\n\nSigned-off-by: James Hogan \u003cjames.hogan@imgtec.com\u003e\nCc: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: linux-mm@kvack.org\n"
    },
    {
      "commit": "20e6926dcbafa1b361f1c29d967688be14b6ca4b",
      "tree": "c5ea7011124c5c1a476c43484a6072702c178edc",
      "parents": [
        "14cc0b55b70e297a4b5411733d58c6cdc2d7f1be"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri Mar 01 14:51:27 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 02 09:34:39 2013 -0800"
      },
      "message": "x86, ACPI, mm: Revert movablemem_map support\n\nTim found:\n\n  WARNING: at arch/x86/kernel/smpboot.c:324 topology_sane.isra.2+0x6f/0x80()\n  Hardware name: S2600CP\n  sched: CPU #1\u0027s llc-sibling CPU #0 is not on the same node! [node: 1 !\u003d 0]. Ignoring dependency.\n  smpboot: Booting Node   1, Processors  #1\n  Modules linked in:\n  Pid: 0, comm: swapper/1 Not tainted 3.9.0-0-generic #1\n  Call Trace:\n    set_cpu_sibling_map+0x279/0x449\n    start_secondary+0x11d/0x1e5\n\nDon Morris reproduced on a HP z620 workstation, and bisected it to\ncommit e8d195525809 (\"acpi, memory-hotplug: parse SRAT before memblock\nis ready\")\n\nIt turns out movable_map has some problems, and it breaks several things\n\n1. numa_init is called several times, NOT just for srat. so those\n\tnodes_clear(numa_nodes_parsed)\n\tmemset(\u0026numa_meminfo, 0, sizeof(numa_meminfo))\n   can not be just removed.  Need to consider sequence is: numaq, srat, amd, dummy.\n   and make fall back path working.\n\n2. simply split acpi_numa_init to early_parse_srat.\n   a. that early_parse_srat is NOT called for ia64, so you break ia64.\n   b.  for (i \u003d 0; i \u003c MAX_LOCAL_APIC; i++)\n\t     set_apicid_to_node(i, NUMA_NO_NODE)\n     still left in numa_init. So it will just clear result from early_parse_srat.\n     it should be moved before that....\n   c.  it breaks ACPI_TABLE_OVERIDE...as the acpi table scan is moved\n       early before override from INITRD is settled.\n\n3. that patch TITLE is total misleading, there is NO x86 in the title,\n   but it changes critical x86 code. It caused x86 guys did not\n   pay attention to find the problem early. Those patches really should\n   be routed via tip/x86/mm.\n\n4. after that commit, following range can not use movable ram:\n  a. real_mode code.... well..funny, legacy Node0 [0,1M) could be hot-removed?\n  b. initrd... it will be freed after booting, so it could be on movable...\n  c. crashkernel for kdump...: looks like we can not put kdump kernel above 4G\n\tanymore.\n  d. init_mem_mapping: can not put page table high anymore.\n  e. initmem_init: vmemmap can not be high local node anymore. That is\n     not good.\n\nIf node is hotplugable, the mem related range like page table and\nvmemmap could be on the that node without problem and should be on that\nnode.\n\nWe have workaround patch that could fix some problems, but some can not\nbe fixed.\n\nSo just remove that offending commit and related ones including:\n\n f7210e6c4ac7 (\"mm/memblock.c: use CONFIG_HAVE_MEMBLOCK_NODE_MAP to\n    protect movablecore_map in memblock_overlaps_region().\")\n\n 01a178a94e8e (\"acpi, memory-hotplug: support getting hotplug info from\n    SRAT\")\n\n 27168d38fa20 (\"acpi, memory-hotplug: extend movablemem_map ranges to\n    the end of node\")\n\n e8d195525809 (\"acpi, memory-hotplug: parse SRAT before memblock is\n    ready\")\n\n fb06bc8e5f42 (\"page_alloc: bootmem limit with movablecore_map\")\n\n 42f47e27e761 (\"page_alloc: make movablemem_map have higher priority\")\n\n 6981ec31146c (\"page_alloc: introduce zone_movable_limit[] to keep\n    movable limit for nodes\")\n\n 34b71f1e04fc (\"page_alloc: add movable_memmap kernel parameter\")\n\n 4d59a75125d5 (\"x86: get pg_data_t\u0027s memory from other node\")\n\nLater we should have patches that will make sure kernel put page table\nand vmemmap on local node ram instead of push them down to node0.  Also\nneed to find way to put other kernel used ram to local node ram.\n\nReported-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nReported-by: Don Morris \u003cdon.morris@hp.com\u003e\nBisected-by: Don Morris \u003cdon.morris@hp.com\u003e\nTested-by: Don Morris \u003cdon.morris@hp.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5117b3b835f288314a2d4e5512bc1747e3a7c8ed",
      "tree": "c4267d11de7bff025bf15c3557bfa65c346bad38",
      "parents": [
        "bc56620b493496b8a6962080b644ccc537f4d526"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Fri Feb 22 16:36:07 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:23 2013 -0800"
      },
      "message": "mm,ksm: FOLL_MIGRATION do migration_entry_wait\n\nIn \"ksm: remove old stable nodes more thoroughly\" I said that I\u0027d never\nseen its WARN_ON_ONCE(page_mapped(page)).  True at the time of writing,\nbut it soon appeared once I tried fuller tests on the whole series.\n\nIt turned out to be due to the KSM page migration itself: unmerge_and_\nremove_all_rmap_items() failed to locate and replace all the KSM pages,\nbecause of that hiatus in page migration when old pte has been replaced\nby migration entry, but not yet by new pte.  follow_page() finds no page\nat that instant, but a KSM page reappears shortly after, without a\nfault.\n\nAdd FOLL_MIGRATION flag, so follow_page() can do migration_entry_wait()\nfor KSM\u0027s break_cow().  I\u0027d have preferred to avoid another flag, and do\nit every time, in case someone else makes the same easy mistake; but did\nnot find another transgressor (the common get_user_pages() is of course\nsafe), and cannot be sure that every follow_page() caller is prepared to\nsleep - ia64\u0027s xencomm_vtop()? Now, THP\u0027s wait_split_huge_page() can\nalready sleep there, since anon_vma locking was changed to mutex, but\nmaybe that\u0027s somehow excluded.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Petr Holasek \u003cpholasek@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Izik Eidus \u003cizik.eidus@ravellosystems.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "240aadeedc4a89fc44623f8ce4ca46bda73db07e",
      "tree": "e12cc254f2e78560837e5d454fdbe9b5d9e05c5c",
      "parents": [
        "28a35716d317980ae9bc2ff2f84c33a3cda9e884"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:35:56 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:23 2013 -0800"
      },
      "message": "mm: accelerate mm_populate() treatment of THP pages\n\nThis change adds a follow_page_mask function which is equivalent to\nfollow_page, but with an extra page_mask argument.\n\nfollow_page_mask sets *page_mask to HPAGE_PMD_NR - 1 when it encounters\na THP page, and to 0 in other cases.\n\n__get_user_pages() makes use of this in order to accelerate populating\nTHP ranges - that is, when both the pages and vmas arrays are NULL, we\ndon\u0027t need to iterate HPAGE_PMD_NR times to cover a single THP page (and\nwe also avoid taking mm-\u003epage_table_lock that many times).\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "28a35716d317980ae9bc2ff2f84c33a3cda9e884",
      "tree": "a69307192d34334c6869cfe33b6fea4e358de718",
      "parents": [
        "e0fb58152955142f48ed31c8c0541b53e094da6b"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:35:55 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:22 2013 -0800"
      },
      "message": "mm: use long type for page counts in mm_populate() and get_user_pages()\n\nUse long type for page counts in mm_populate() so as to avoid integer\noverflow when running the following test code:\n\nint main(void) {\n  void *p \u003d mmap(NULL, 0x100000000000, PROT_READ,\n                 MAP_PRIVATE | MAP_ANON, -1, 0);\n  printf(\"p: %p\\n\", p);\n  mlockall(MCL_CURRENT);\n  printf(\"done\\n\");\n  return 0;\n}\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9127ab4ff92f0ecd7b4671efa9d0edb21c691e9f",
      "tree": "dbf80a98e775d88378d93c0d20209374d6fac9b2",
      "parents": [
        "4805b02e90187c68d8f4e3305c3482b797e35809"
      ],
      "author": {
        "name": "Cody P Schafer",
        "email": "cody@linux.vnet.ibm.com",
        "time": "Fri Feb 22 16:35:21 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:20 2013 -0800"
      },
      "message": "mm: add SECTION_IN_PAGE_FLAGS\n\nInstead of directly utilizing a combination of config options to determine\nthis, add a macro to specifically address it.\n\nSigned-off-by: Cody P Schafer \u003ccody@linux.vnet.ibm.com\u003e\nCc: David Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "22b751c3d0376e86a377e3a0aa2ddbbe9d2eefc1",
      "tree": "fe946d7d4350b2454d65f88377d264fbc93958ce",
      "parents": [
        "e4715f01be697a3730c78f8ffffb595591d6a88c"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Feb 22 16:34:59 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:18 2013 -0800"
      },
      "message": "mm: rename page struct field helpers\n\nThe function names page_xchg_last_nid(), page_last_nid() and\nreset_page_last_nid() were judged to be inconsistent so rename them to a\nstruct_field_op style pattern.  As it looked jarring to have\nreset_page_mapcount() and page_nid_reset_last() beside each other in\nmemmap_init_zone(), this patch also renames reset_page_mapcount() to\npage_mapcount_reset().  There are others like init_page_count() but as\nit is used throughout the arch code a rename would likely cause more\nconflicts than it is worth.\n\n[akpm@linux-foundation.org: fix zcache]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4468b8f1e2d32ce79ef4bcb8e00d7e88627f1c3a",
      "tree": "a73555b462198c396da08acab928a788f3733b71",
      "parents": [
        "6acc8b02517d7063b25490b26215834bd2f363c8"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Feb 22 16:34:46 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:18 2013 -0800"
      },
      "message": "mm: uninline page_xchg_last_nid()\n\nAndrew Morton pointed out that page_xchg_last_nid() and\nreset_page_last_nid() were \"getting nuttily large\" and asked that it be\ninvestigated.\n\nreset_page_last_nid() is on the page free path and it would be\nunfortunate to make that path more expensive than it needs to be.  Due\nto the internal use of page_xchg_last_nid() it is already too expensive\nbut fortunately, it should also be impossible for the page-\u003eflags to be\nupdated in parallel when we call reset_page_last_nid().  Instead of\nunlining the function, it uses a simplier implementation that assumes no\nparallel updates and should now be sufficiently short for inlining.\n\npage_xchg_last_nid() is called in paths that are already quite expensive\n(splitting huge page, fault handling, migration) and it is reasonable to\nuninline.  There was not really a good place to place the function but\nmm/mmzone.c was the closest fit IMO.\n\nThis patch saved 128 bytes of text in the vmlinux file for the kernel\nconfiguration I used for testing automatic NUMA balancing.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75f7ad8e043d9383337d917584297f7737154bbf",
      "tree": "101f5f2373b615bf83838cd13615fd123dfd765c",
      "parents": [
        "08b52706d505658eac0962d215ff697f898bbc13"
      ],
      "author": {
        "name": "Paul Szabo",
        "email": "psz@maths.usyd.edu.au",
        "time": "Fri Feb 22 16:34:42 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "page-writeback.c: subtract min_free_kbytes from dirtyable memory\n\nWhen calculating amount of dirtyable memory, min_free_kbytes should be\nsubtracted because it is not intended for dirty pages.\n\nAddresses http://bugs.debian.org/695182\n\n[akpm@linux-foundation.org: fix up min_free_kbytes extern declarations]\n[akpm@linux-foundation.org: fix min() warning]\nSigned-off-by: Paul Szabo \u003cpsz@maths.usyd.edu.au\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9800339b5e0f0e24ab3dac349e0de80d2018832e",
      "tree": "7f0cc5d46cbf881729ff3b2d97f425570674c95d",
      "parents": [
        "340ef3902cf20cec43cdcd1e72ae5cb518be7328"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Fri Feb 22 16:34:35 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "mm: don\u0027t inline page_mapping()\n\nAccording to akpm, this saves 1/2k text and makes things simple for the\nnext patch.\n\nNumbers from Minchan:\n\nadd/remove: 1/0 grow/shrink: 6/22 up/down: 92/-516 (-424)\nfunction                                     old     new   delta\npage_mapping                                   -      48     +48\ndo_task_stat                                2292    2308     +16\npage_remove_rmap                             240     248      +8\nload_elf_binary                             4500    4508      +8\nupdate_queue                                 532     536      +4\nscsi_probe_and_add_lun                      2892    2896      +4\nlookup_fast                                  644     648      +4\nvcs_read                                    1040    1036      -4\n__ip_route_output_key                       1904    1900      -4\nip_route_input_noref                        2508    2500      -8\nshmem_file_aio_read                          784     772     -12\n__isolate_lru_page                           272     256     -16\nshmem_replace_page                           708     688     -20\nmark_buffer_dirty                            228     208     -20\n__set_page_dirty_buffers                     240     220     -20\n__remove_mapping                             276     256     -20\nupdate_mmu_cache                             500     476     -24\nset_page_dirty_balance                        92      68     -24\nset_page_dirty                               172     148     -24\npage_evictable                                88      64     -24\npage_cache_pipe_buf_steal                    248     224     -24\nclear_page_dirty_for_io                      340     316     -24\ntest_set_page_writeback                      400     372     -28\ntest_clear_page_writeback                    516     488     -28\ninvalidate_inode_page                        156     128     -28\npage_mkclean                                 432     400     -32\nflush_dcache_page                            360     328     -32\n__set_page_dirty_nobuffers                   324     280     -44\nshrink_page_list                            2412    2356     -56\n\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75980e97daccfc6babbac7e180ff118537955f5d",
      "tree": "b5721bae11eab21a8ee7c2ba4c7f153a59766dd6",
      "parents": [
        "bbeae5b05ef6e40bf54db05ceb8635824153b9e2"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Feb 22 16:34:32 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "mm: fold page-\u003e_last_nid into page-\u003eflags where possible\n\npage-\u003e_last_nid fits into page-\u003eflags on 64-bit.  The unlikely 32-bit\nNUMA configuration with NUMA Balancing will still need an extra page\nfield.  As Peter notes \"Completely dropping 32bit support for\nCONFIG_NUMA_BALANCING would simplify things, but it would also remove\nthe warning if we grow enough 64bit only page-flags to push the last-cpu\nout.\"\n\n[mgorman@suse.de: minor modifications]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Simon Jeons \u003csimon.jeons@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbeae5b05ef6e40bf54db05ceb8635824153b9e2",
      "tree": "293d8b4e4bfc06367908df1915460905a5f8408b",
      "parents": [
        "3c0ff4689630b280704666833e9539d84cddc373"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Feb 22 16:34:30 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:17 2013 -0800"
      },
      "message": "mm: move page flags layout to separate header\n\nThis is a preparation patch for moving page-\u003e_last_nid into page-\u003eflags\nthat moves page flag layout information to a separate header.  This\npatch is necessary because otherwise there would be a circular\ndependency between mm_types.h and mm.h.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Simon Jeons \u003csimon.jeons@gmail.com\u003e\nCc: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "293c07e31ab5a0b8df8c19b2a9e5c6fa30308849",
      "tree": "753affc0e179b7de49c03dc58d7d75f34ffe4e62",
      "parents": [
        "fa8dd8a92dccc1b29cefd7f51334285d6ed35281"
      ],
      "author": {
        "name": "Xishi Qiu",
        "email": "qiuxishi@huawei.com",
        "time": "Fri Feb 22 16:34:02 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:15 2013 -0800"
      },
      "message": "memory-failure: use num_poisoned_pages instead of mce_bad_pages\n\nSince MCE is an x86 concept, and this code is in mm/, it would be better\nto use the name num_poisoned_pages instead of mce_bad_pages.\n\n[akpm@linux-foundation.org: fix mm/sparse.c]\nSigned-off-by: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nSuggested-by: Borislav Petkov \u003cbp@alien8.de\u003e\nReviewed-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01a178a94e8eaec351b29ee49fbb3d1c124cb7fb",
      "tree": "de978b65bf5d4a05c78cb5ce1180dc3fb04bd12d",
      "parents": [
        "27168d38fa209073219abedbe6a9de7ba9acbfad"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:49 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "acpi, memory-hotplug: support getting hotplug info from SRAT\n\nWe now provide an option for users who don\u0027t want to specify physical\nmemory address in kernel commandline.\n\n         /*\n          * For movablemem_map\u003dacpi:\n          *\n          * SRAT:                |_____| |_____| |_________| |_________| ......\n          * node id:                0       1         1           2\n          * hotpluggable:           n       y         y           n\n          * movablemem_map:              |_____| |_________|\n          *\n          * Using movablemem_map, we can prevent memblock from allocating memory\n          * on ZONE_MOVABLE at boot time.\n          */\n\nSo user just specify movablemem_map\u003dacpi, and the kernel will use\nhotpluggable info in SRAT to determine which memory ranges should be set\nas ZONE_MOVABLE.\n\nIf all the memory ranges in SRAT is hotpluggable, then no memory can be\nused by kernel.  But before parsing SRAT, memblock has already reserve\nsome memory ranges for other purposes, such as for kernel image, and so\non.  We cannot prevent kernel from using these memory.  So we need to\nexclude these ranges even if these memory is hotpluggable.\n\nFurthermore, there could be several memory ranges in the single node\nwhich the kernel resides in.  We may skip one range that have memory\nreserved by memblock, but if the rest of memory is too small, then the\nkernel will fail to boot.  So, make the whole node which the kernel\nresides in un-hotpluggable.  Then the kernel has enough memory to use.\n\nNOTE: Using this way will cause NUMA performance down because the\n      whole node will be set as ZONE_MOVABLE, and kernel cannot use memory\n      on it.  If users don\u0027t want to lose NUMA performance, just don\u0027t use\n      it.\n\n[akpm@linux-foundation.org: fix warning]\n[akpm@linux-foundation.org: use strcmp()]\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27168d38fa209073219abedbe6a9de7ba9acbfad",
      "tree": "6c8ff96722ce02b0c01b2ce4078777712e0df339",
      "parents": [
        "e8d1955258091e4c92d5a975ebd7fd8a98f5d30f"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:46 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "acpi, memory-hotplug: extend movablemem_map ranges to the end of node\n\nWhen implementing movablemem_map boot option, we introduced an array\nmovablemem_map.map[] to store the memory ranges to be set as\nZONE_MOVABLE.\n\nSince ZONE_MOVABLE is the latst zone of a node, if user didn\u0027t specify\nthe whole node memory range, we need to extend it to the node end so\nthat we can use it to prevent memblock from allocating memory in the\nranges user didn\u0027t specify.\n\nWe now implement movablemem_map boot option like this:\n\n        /*\n         * For movablemem_map\u003dnn[KMG]@ss[KMG]:\n         *\n         * SRAT:                |_____| |_____| |_________| |_________| ......\n         * node id:                0       1         1           2\n         * user specified:                |__|                 |___|\n         * movablemem_map:                |___| |_________|    |______| ......\n         *\n         * Using movablemem_map, we can prevent memblock from allocating memory\n         * on ZONE_MOVABLE at boot time.\n         *\n         * NOTE: In this case, SRAT info will be ingored.\n         */\n\n[akpm@linux-foundation.org: clean up code, fix build warning]\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34b71f1e04fcba578e719e675b4882eeeb2a1f6f",
      "tree": "beafbed8dce82b108e95baa2c2424ee0f3e94701",
      "parents": [
        "4d59a75125d5a4717e57e9fc62c64b3d346e603e"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:37 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:14 2013 -0800"
      },
      "message": "page_alloc: add movable_memmap kernel parameter\n\nAdd functions to parse movablemem_map boot option.  Since the option\ncould be specified more then once, all the maps will be stored in the\nglobal variable movablemem_map.map array.\n\nAnd also, we keep the array in monotonic increasing order by start_pfn.\nAnd merge all overlapped ranges.\n\n[akpm@linux-foundation.org: improve comment]\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: remove unneeded parens]\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nReviewed-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nTested-by: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0197518cd3672029618a16a57597946a094ac7a8",
      "tree": "64785feea48812285b31d690a167c3c488c8017a",
      "parents": [
        "bbcab8789d4a5b942773aa7496794ceebe2d3f78"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Fri Feb 22 16:33:08 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:12 2013 -0800"
      },
      "message": "memory-hotplug: remove memmap of sparse-vmemmap\n\nIntroduce a new API vmemmap_free() to free and remove vmemmap\npagetables.  Since pagetable implements are different, each architecture\nhas to provide its own version of vmemmap_free(), just like\nvmemmap_populate().\n\nNote: vmemmap_free() is not implemented for ia64, ppc, s390, and sparc.\n\n[mhocko@suse.cz: fix implicit declaration of remove_pagetable]\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46723bfa540f0a1e494476a1734d03626a0bd1e0",
      "tree": "c8d3ef712dd67b45c9334f04edeec4aa981a2e29",
      "parents": [
        "24d335ca3606b610ec69c66a1e42760c96d89470"
      ],
      "author": {
        "name": "Yasuaki Ishimatsu",
        "email": "isimatu.yasuaki@jp.fujitsu.com",
        "time": "Fri Feb 22 16:33:00 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:12 2013 -0800"
      },
      "message": "memory-hotplug: implement register_page_bootmem_info_section of sparse-vmemmap\n\nFor removing memmap region of sparse-vmemmap which is allocated bootmem,\nmemmap region of sparse-vmemmap needs to be registered by\nget_page_bootmem().  So the patch searches pages of virtual mapping and\nregisters the pages by get_page_bootmem().\n\nNOTE: register_page_bootmem_memmap() is not implemented for ia64,\n      ppc, s390, and sparc.  So introduce CONFIG_HAVE_BOOTMEM_INFO_NODE\n      and revert register_page_bootmem_info_node() when platform doesn\u0027t\n      support it.\n\n      It\u0027s implemented by adding a new Kconfig option named\n      CONFIG_HAVE_BOOTMEM_INFO_NODE, which will be automatically selected\n      by memory-hotplug feature fully supported archs(currently only on\n      x86_64).\n\n      Since we have 2 config options called MEMORY_HOTPLUG and\n      MEMORY_HOTREMOVE used for memory hot-add and hot-remove separately,\n      and codes in function register_page_bootmem_info_node() are only\n      used for collecting infomation for hot-remove, so reside it under\n      MEMORY_HOTREMOVE.\n\n      Besides page_isolation.c selected by MEMORY_ISOLATION under\n      MEMORY_HOTPLUG is also such case, move it too.\n\n[mhocko@suse.cz: put register_page_bootmem_memmap inside CONFIG_MEMORY_HOTPLUG_SPARSE]\n[linfeng@cn.fujitsu.com: introduce CONFIG_HAVE_BOOTMEM_INFO_NODE and revert register_page_bootmem_info_node()]\n[mhocko@suse.cz: remove the arch specific functions without any implementation]\n[linfeng@cn.fujitsu.com: mm/Kconfig: move auto selects from MEMORY_HOTPLUG to MEMORY_HOTREMOVE as needed]\n[rientjes@google.com: fix defined but not used warning]\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nReviewed-by: Wu Jianguo \u003cwujianguo@huawei.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Lin Feng \u003clinfeng@cn.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41badc15cbad0350de34408c1b0c690f9df76d4b",
      "tree": "2545134398b99b37259bf6412a0bb56442f120fa",
      "parents": [
        "1869305009857cdeaabe6283bcdc2359c5784543"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:47 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: make do_mmap_pgoff return populate as a size in bytes, not as a bool\n\ndo_mmap_pgoff() rounds up the desired size to the next PAGE_SIZE\nmultiple, however there was no equivalent code in mm_populate(), which\ncaused issues.\n\nThis could be fixed by introduced the same rounding in mm_populate(),\nhowever I think it\u0027s preferable to make do_mmap_pgoff() return populate\nas a size rather than as a boolean, so we don\u0027t have to duplicate the\nsize rounding logic in mm_populate().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1869305009857cdeaabe6283bcdc2359c5784543",
      "tree": "a8a500c71e7aa3a645322635f3d591c16601af27",
      "parents": [
        "cea10a19b7972a1954c4a2d05a7de8db48b444fb"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:46 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: introduce VM_POPULATE flag to better deal with racy userspace programs\n\nThe vm_populate() code populates user mappings without constantly\nholding the mmap_sem.  This makes it susceptible to racy userspace\nprograms: the user mappings may change while vm_populate() is running,\nand in this case vm_populate() may end up populating the new mapping\ninstead of the old one.\n\nIn order to reduce the possibility of userspace getting surprised by\nthis behavior, this change introduces the VM_POPULATE vma flag which\ngets set on vmas we want vm_populate() to work on.  This way\nvm_populate() may still end up populating the new mapping after such a\nrace, but only if the new mapping is also one that the user has\nrequested (using MAP_SHARED, MAP_LOCKED or mlock) to be populated.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cea10a19b7972a1954c4a2d05a7de8db48b444fb",
      "tree": "694b3c906259cfbfc7b7cb1b0eb507ecf0d1d63c",
      "parents": [
        "c22c0d6344c362b1dde5d8e160d3d07536aca120"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:44 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: directly use __mlock_vma_pages_range() in find_extend_vma()\n\nIn find_extend_vma(), we don\u0027t need mlock_vma_pages_range() to verify\nthe vma type - we know we\u0027re working with a stack.  So, we can call\ndirectly into __mlock_vma_pages_range(), and remove the last\nmake_pages_present() call site.\n\nNote that we don\u0027t use mm_populate() here, so we can\u0027t release the\nmmap_sem while allocating new stack pages.  This is deemed acceptable,\nbecause the stack vmas grow by a bounded number of pages at a time, and\nthese are anon pages so we don\u0027t have to read from disk to populate\nthem.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c22c0d6344c362b1dde5d8e160d3d07536aca120",
      "tree": "00350da7f08f8a1b8495294bccc05d768fb1682e",
      "parents": [
        "81909b842107ef8ca499f46ecb9b7afd87c20c52"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:43 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:11 2013 -0800"
      },
      "message": "mm: remove flags argument to mmap_region\n\nAfter the MAP_POPULATE handling has been moved to mmap_region() call\nsites, the only remaining use of the flags argument is to pass the\nMAP_NORESERVE flag.  This can be just as easily handled by\ndo_mmap_pgoff(), so do that and remove the mmap_region() flags\nparameter.\n\n[akpm@linux-foundation.org: remove double parens]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bebeb3d68b24bb4132d452c5707fe321208bcbcd",
      "tree": "6e609cb7323fb1b4b7026fa0e35867145a181094",
      "parents": [
        "940e7da5163029978c2f6b5bbe213607add59062"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Fri Feb 22 16:32:37 2013 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Feb 23 17:50:10 2013 -0800"
      },
      "message": "mm: introduce mm_populate() for populating new vmas\n\nWhen creating new mappings using the MAP_POPULATE / MAP_LOCKED flags (or\nwith MCL_FUTURE in effect), we want to populate the pages within the\nnewly created vmas.  This may take a while as we may have to read pages\nfrom disk, so ideally we want to do this outside of the write-locked\nmmap_sem region.\n\nThis change introduces mm_populate(), which is used to defer populating\nsuch mappings until after the mmap_sem write lock has been released.\nThis is implemented as a generalization of the former do_mlock_pages(),\nwhich accomplished the same task but was using during mlock() /\nmlockall().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReported-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCc: Greg Ungerer \u003cgregungerer@westnet.com.au\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de65d816aa44f9ddd79861ae21d75010cc1fd003",
      "tree": "04a637a43b2e52a733d0dcb7595a47057571e7da",
      "parents": [
        "9710f581bb4c35589ac046b0cfc0deb7f369fc85",
        "5dcd14ecd41ea2b3ae3295a9b30d98769d52165f"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Jan 29 14:59:09 2013 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Jan 29 15:10:15 2013 -0800"
      },
      "message": "Merge remote-tracking branch \u0027origin/x86/boot\u0027 into x86/mm2\n\nComing patches to x86/mm2 require the changes and advanced baseline in\nx86/boot.\n\nResolved Conflicts:\n\tarch/x86/kernel/setup.c\n\tmm/nobootmem.c\n\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "47ecfcb7d01418fcbfbc75183ba5e28e98b667b2",
      "tree": "c3ca70fb0d9a09248d4cdcdf6a006c36359e8665",
      "parents": [
        "254adaa465c40151df11fc1f88f93e6e86eb61d4"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Fri Jan 11 09:27:01 2013 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 11 09:02:00 2013 -0800"
      },
      "message": "mm: compaction: Partially revert capture of suitable high-order page\n\nEric Wong reported on 3.7 and 3.8-rc2 that ppoll() got stuck when\nwaiting for POLLIN on a local TCP socket.  It was easier to trigger if\nthere was disk IO and dirty pages at the same time and he bisected it to\ncommit 1fb3f8ca0e92 (\"mm: compaction: capture a suitable high-order page\nimmediately when it is made available\").\n\nThe intention of that patch was to improve high-order allocations under\nmemory pressure after changes made to reclaim in 3.6 drastically hurt\nTHP allocations but the approach was flawed.  For Eric, the problem was\nthat page-\u003epfmemalloc was not being cleared for captured pages leading\nto a poor interaction with swap-over-NFS support causing the packets to\nbe dropped.  However, I identified a few more problems with the patch\nincluding the fact that it can increase contention on zone-\u003elock in some\ncases which could result in async direct compaction being aborted early.\n\nIn retrospect the capture patch took the wrong approach.  What it should\nhave done is mark the pageblock being migrated as MIGRATE_ISOLATE if it\nwas allocating for THP and avoided races that way.  While the patch was\nshowing to improve allocation success rates at the time, the benefit is\nmarginal given the relative complexity and it should be revisited from\nscratch in the context of the other reclaim-related changes that have\ntaken place since the patch was first written and tested.  This patch\npartially reverts commit 1fb3f8ca \"mm: compaction: capture a suitable\nhigh-order page immediately when it is made available\".\n\nReported-and-tested-by: Eric Wong \u003cnormalperson@yhbt.net\u003e\nTested-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7898575fc81bd707ce0844cb06874d48e39bbe09",
      "tree": "ab30305f0d957854497fababde6caff644b2bfca",
      "parents": [
        "d30357f2f0ec0bfb67fd39f8f76d22d02d78631e"
      ],
      "author": {
        "name": "Marco Stornelli",
        "email": "marco.stornelli@gmail.com",
        "time": "Sat Dec 15 12:00:02 2012 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:46:29 2012 -0500"
      },
      "message": "mm: drop vmtruncate\n\nRemoved vmtruncate\n\nSigned-off-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3d59eebc5e137bd89c6351e4c70e90ba1d0dc234",
      "tree": "b4ddfd0b057454a7437a3b4e3074a3b8b4b03817",
      "parents": [
        "11520e5e7c1855fc3bf202bb3be35a39d9efa034",
        "4fc3f1d66b1ef0d7b8dc11f4ff1cc510f78b37d6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 14:33:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 16 15:18:08 2012 -0800"
      },
      "message": "Merge tag \u0027balancenuma-v11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma\n\nPull Automatic NUMA Balancing bare-bones from Mel Gorman:\n \"There are three implementations for NUMA balancing, this tree\n  (balancenuma), numacore which has been developed in tip/master and\n  autonuma which is in aa.git.\n\n  In almost all respects balancenuma is the dumbest of the three because\n  its main impact is on the VM side with no attempt to be smart about\n  scheduling.  In the interest of getting the ball rolling, it would be\n  desirable to see this much merged for 3.8 with the view to building\n  scheduler smarts on top and adapting the VM where required for 3.9.\n\n  The most recent set of comparisons available from different people are\n\n    mel:    https://lkml.org/lkml/2012/12/9/108\n    mingo:  https://lkml.org/lkml/2012/12/7/331\n    tglx:   https://lkml.org/lkml/2012/12/10/437\n    srikar: https://lkml.org/lkml/2012/12/10/397\n\n  The results are a mixed bag.  In my own tests, balancenuma does\n  reasonably well.  It\u0027s dumb as rocks and does not regress against\n  mainline.  On the other hand, Ingo\u0027s tests shows that balancenuma is\n  incapable of converging for this workloads driven by perf which is bad\n  but is potentially explained by the lack of scheduler smarts.  Thomas\u0027\n  results show balancenuma improves on mainline but falls far short of\n  numacore or autonuma.  Srikar\u0027s results indicate we all suffer on a\n  large machine with imbalanced node sizes.\n\n  My own testing showed that recent numacore results have improved\n  dramatically, particularly in the last week but not universally.\n  We\u0027ve butted heads heavily on system CPU usage and high levels of\n  migration even when it shows that overall performance is better.\n  There are also cases where it regresses.  Of interest is that for\n  specjbb in some configurations it will regress for lower numbers of\n  warehouses and show gains for higher numbers which is not reported by\n  the tool by default and sometimes missed in treports.  Recently I\n  reported for numacore that the JVM was crashing with\n  NullPointerExceptions but currently it\u0027s unclear what the source of\n  this problem is.  Initially I thought it was in how numacore batch\n  handles PTEs but I\u0027m no longer think this is the case.  It\u0027s possible\n  numacore is just able to trigger it due to higher rates of migration.\n\n  These reports were quite late in the cycle so I/we would like to start\n  with this tree as it contains much of the code we can agree on and has\n  not changed significantly over the last 2-3 weeks.\"\n\n* tag \u0027balancenuma-v11\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mel/linux-balancenuma: (50 commits)\n  mm/rmap, migration: Make rmap_walk_anon() and try_to_unmap_anon() more scalable\n  mm/rmap: Convert the struct anon_vma::mutex to an rwsem\n  mm: migrate: Account a transhuge page properly when rate limiting\n  mm: numa: Account for failed allocations and isolations as migration failures\n  mm: numa: Add THP migration for the NUMA working set scanning fault case build fix\n  mm: numa: Add THP migration for the NUMA working set scanning fault case.\n  mm: sched: numa: Delay PTE scanning until a task is scheduled on a new node\n  mm: sched: numa: Control enabling and disabling of NUMA balancing if !SCHED_DEBUG\n  mm: sched: numa: Control enabling and disabling of NUMA balancing\n  mm: sched: Adapt the scanning rate if a NUMA hinting fault does not migrate\n  mm: numa: Use a two-stage filter to restrict pages being migrated for unlikely task\u003c-\u003enode relationships\n  mm: numa: migrate: Set last_nid on newly allocated page\n  mm: numa: split_huge_page: Transfer last_nid on tail page\n  mm: numa: Introduce last_nid to the page frame\n  sched: numa: Slowly increase the scanning period as NUMA faults are handled\n  mm: numa: Rate limit setting of pte_numa if node is saturated\n  mm: numa: Rate limit the amount of memory that is migrated between nodes\n  mm: numa: Structures for Migrate On Fault per NUMA migration rate limiting\n  mm: numa: Migrate pages handled during a pmd_numa hinting fault\n  mm: numa: Migrate on reference policy\n  ...\n"
    },
    {
      "commit": "db4fbfb9523c93583c339e66023506f651c1d54b",
      "tree": "8dfc250bb2249feaafe27c11cc4de5a654815833",
      "parents": [
        "e4c6bfd2d79d063017ab19a18915f0bc759f32d9"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Dec 11 16:01:49 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 11 17:22:25 2012 -0800"
      },
      "message": "mm: vm_unmapped_area() lookup function\n\nImplement vm_unmapped_area() using the rb_subtree_gap and highest_vm_end\ninformation to look up for suitable virtual address space gaps.\n\nstruct vm_unmapped_area_info is used to define the desired allocation\nrequest:\n - lowest or highest possible address matching the remaining constraints\n - desired gap length\n - low/high address limits that the gap must fit into\n - alignment mask and offset\n\nAlso update the generic arch_get_unmapped_area[_topdown] functions to make\nuse of vm_unmapped_area() instead of implementing a brute force search.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "57e0a0309160b1b4ebde9f3c6a867cd96ac368bf",
      "tree": "085278ae65303221b638bf4d5063be0d41d35098",
      "parents": [
        "fb003b80daa0dead5b87f4e2e4fb8da68b110ff2"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Nov 12 09:06:20 2012 +0000"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:52 2012 +0000"
      },
      "message": "mm: numa: Introduce last_nid to the page frame\n\nThis patch introduces a last_nid field to the page struct. This is used\nto build a two-stage filter in the next patch that is aimed at\nmitigating a problem whereby pages migrate to the wrong node when\nreferenced by a process that was running off its home node.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "4b10e7d562c90d0a72f324832c26653947a07381",
      "tree": "733e0fc3ac3fdfe27a312bc72e4ffb07bbf0aa56",
      "parents": [
        "b24f53a0bea38b266d219ee651b22dba727c44ae"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Thu Oct 25 14:16:32 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:44 2012 +0000"
      },
      "message": "mm: mempolicy: Implement change_prot_numa() in terms of change_protection()\n\nThis patch converts change_prot_numa() to use change_protection(). As\npte_numa and friends check the PTE bits directly it is necessary for\nchange_protection() to use pmd_mknuma(). Hence the required\nmodifications to change_protection() are a little clumsy but the\nend result is that most of the numa page table helpers are just one or\ntwo instructions.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\n"
    },
    {
      "commit": "b24f53a0bea38b266d219ee651b22dba727c44ae",
      "tree": "f85431707b44913a412efb5483dc366c310aab5e",
      "parents": [
        "4daae3b4b9e49b7e0935499a352f1c59d90287d2"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Thu Oct 25 14:16:32 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:43 2012 +0000"
      },
      "message": "mm: mempolicy: Add MPOL_MF_LAZY\n\nNOTE: Once again there is a lot of patch stealing and the end result\n\tis sufficiently different that I had to drop the signed-offs.\n\tWill re-add if the original authors are ok with that.\n\nThis patch adds another mbind() flag to request \"lazy migration\".  The\nflag, MPOL_MF_LAZY, modifies MPOL_MF_MOVE* such that the selected\npages are marked PROT_NONE. The pages will be migrated in the fault\npath on \"first touch\", if the policy dictates at that time.\n\n\"Lazy Migration\" will allow testing of migrate-on-fault via mbind().\nAlso allows applications to specify that only subsequently touched\npages be migrated to obey new policy, instead of all pages in range.\nThis can be useful for multi-threaded applications working on a\nlarge shared data area that is initialized by an initial thread\nresulting in all pages on one [or a few, if overflowed] nodes.\nAfter PROT_NONE, the pages in regions assigned to the worker threads\nwill be automatically migrated local to the threads on 1st touch.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "0b9d705297b273657923518dbea2377cd03532ed",
      "tree": "9049d172d6fcd71790a4689c7fed62a912516265",
      "parents": [
        "be3a728427a605990a7a0b6dbf9e29b68e266146"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Fri Oct 05 21:36:27 2012 +0200"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:42:37 2012 +0000"
      },
      "message": "mm: numa: Support NUMA hinting page faults from gup/gup_fast\n\nIntroduce FOLL_NUMA to tell follow_page to check\npte/pmd_numa. get_user_pages must use FOLL_NUMA, and it\u0027s safe to do\nso because it always invokes handle_mm_fault and retries the\nfollow_page later.\n\nKVM secondary MMU page faults will trigger the NUMA hinting page\nfaults through gup_fast -\u003e get_user_pages -\u003e follow_page -\u003e\nhandle_mm_fault.\n\nOther follow_page callers like KSM should not use FOLL_NUMA, or they\nwould fail to get the pages if they use follow_page instead of\nget_user_pages.\n\n[ This patch was picked up from the AutoNUMA tree. ]\n\nOriginally-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\n[ ported to this tree. ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\n"
    },
    {
      "commit": "7da4d641c58d201c3cc1835c05ca1a7fa26f0856",
      "tree": "bf40cc40433383ee94559ea2ef19a282dead358f",
      "parents": [
        "4fd017708c4a067da51a2b5cf8aedddf4e840b1f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Nov 19 03:14:23 2012 +0100"
      },
      "committer": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Dec 11 14:28:34 2012 +0000"
      },
      "message": "mm: Count the number of pages affected in change_protection()\n\nThis will be used for three kinds of purposes:\n\n - to optimize mprotect()\n\n - to speed up working set scanning for working set areas that\n   have not been touched\n\n - to more accurately scan per real working set\n\nNo change in functionality from this patch.\n\nSuggested-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "60a8f428320918458a9a21052777eada68eebfd8",
      "tree": "5d20d88a6a287ad3a17fe20ec414f59912acc2a3",
      "parents": [
        "4e37a890474b89ca49ad6b3651b1709a17d7c216"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri Nov 16 19:39:17 2012 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Sat Nov 17 11:59:45 2012 -0800"
      },
      "message": "x86, mm: Move after_bootmem to mm_internel.h\n\nit is only used in arch/x86/mm/init*.c\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1353123563-3103-41-git-send-email-yinghai@kernel.org\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "5576646f3c1abd60d72d19829de6f5d8c2ca8ecf",
      "tree": "600e8d1df6536bbeb0b15b51f137d37a94f69843",
      "parents": [
        "0f3c42f522dc1ad7e27affc0a4aa8c790bce0a66"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Nov 16 14:15:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Nov 16 14:33:04 2012 -0800"
      },
      "message": "revert \"mm: fix-up zone present pages\"\n\nRevert commit 7f1290f2f2a4 (\"mm: fix-up zone present pages\")\n\nThat patch tried to fix a issue when calculating zone-\u003epresent_pages,\nbut it caused a regression on 32bit systems with HIGHMEM.  With that\nchange, reset_zone_present_pages() resets all zone-\u003epresent_pages to\nzero, and fixup_zone_present_pages() is called to recalculate\nzone-\u003epresent_pages when the boot allocator frees core memory pages into\nbuddy allocator.  Because highmem pages are not freed by bootmem\nallocator, all highmem zones\u0027 present_pages becomes zero.\n\nVarious options for improving the situation are being discussed but for\nnow, let\u0027s return to the 3.6 code.\n\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nCc: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nCc: Petr Tesarik \u003cptesarik@suse.cz\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nTested-by: Chris Clayton \u003cchris2553@googlemail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f1290f2f2a4d2c3f1b7ce8e87256e052ca23125",
      "tree": "10328fcb468647ba678e022911d5c2005080f309",
      "parents": [
        "05106e6a54aed321191b4bb5c9ee09538cbad3b1"
      ],
      "author": {
        "name": "Jianguo Wu",
        "email": "wujianguo@huawei.com",
        "time": "Mon Oct 08 16:33:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:54 2012 +0900"
      },
      "message": "mm: fix-up zone present pages\n\nI think zone-\u003epresent_pages indicates pages that buddy system can management,\nit should be:\n\n\tzone-\u003epresent_pages \u003d spanned pages - absent pages - bootmem pages,\n\nbut is now:\n\tzone-\u003epresent_pages \u003d spanned pages - absent pages - memmap pages.\n\nspanned pages: total size, including holes.\nabsent pages: holes.\nbootmem pages: pages used in system boot, managed by bootmem allocator.\nmemmap pages: pages used by page structs.\n\nThis may cause zone-\u003epresent_pages less than it should be.  For example,\nnuma node 1 has ZONE_NORMAL and ZONE_MOVABLE, it\u0027s memmap and other\nbootmem will be allocated from ZONE_MOVABLE, so ZONE_NORMAL\u0027s\npresent_pages should be spanned pages - absent pages, but now it also\nminus memmap pages(free_area_init_core), which are actually allocated from\nZONE_MOVABLE.  When offlining all memory of a zone, this will cause\nzone-\u003epresent_pages less than 0, because present_pages is unsigned long\ntype, it is actually a very large integer, it indirectly caused\nzone-\u003ewatermark[WMARK_MIN] becomes a large\ninteger(setup_per_zone_wmarks()), than cause totalreserve_pages become a\nlarge integer(calculate_totalreserve_pages()), and finally cause memory\nallocating failure when fork process(__vm_enough_memory()).\n\n[root@localhost ~]# dmesg\n-bash: fork: Cannot allocate memory\n\nI think the bug described in\n\n  http://marc.info/?l\u003dlinux-mm\u0026m\u003d134502182714186\u0026w\u003d2\n\nis also caused by wrong zone present pages.\n\nThis patch intends to fix-up zone-\u003epresent_pages when memory are freed to\nbuddy system on x86_64 and IA64 platforms.\n\nSigned-off-by: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nReported-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nTested-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45cac65b0fcd287ebb877b141d40ba9bbe8e5da7",
      "tree": "30ed25c91aaeed153de51a78d171cb14582e383f",
      "parents": [
        "e79bee24fd6134f90af4228cfebd010136d67631"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Mon Oct 08 16:32:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:47 2012 +0900"
      },
      "message": "readahead: fault retry breaks mmap file read random detection\n\n.fault now can retry.  The retry can break state machine of .fault.  In\nfilemap_fault, if page is miss, ra-\u003emmap_miss is increased.  In the second\ntry, since the page is in page cache now, ra-\u003emmap_miss is decreased.  And\nthese are done in one fault, so we can\u0027t detect random mmap file access.\n\nAdd a new flag to indicate .fault is tried once.  In the second try, skip\nra-\u003emmap_miss decreasing.  The filemap_fault state machine is ok with it.\n\nI only tested x86, didn\u0027t test other archs, but looks the change for other\narchs is obvious, but who knows :)\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@fusionio.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95e3441248053fc06bbb1dbbd34409a84211619e",
      "tree": "8c8312184b515826ca4343fa81b77d703d291398",
      "parents": [
        "b12c4ad14ee0232ad47c2bef404b6d42a3578332"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:32:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:45 2012 +0900"
      },
      "message": "mm: remain migratetype in freed page\n\nThe page allocator caches the pageblock information in page-\u003eprivate while\nit is in the PCP freelists but this is overwritten with the order of the\npage when freed to the buddy allocator.  This patch stores the migratetype\nof the page in the page-\u003eindex field so that it is available at all times\nwhen the page remain in free_list.\n\nThis patch adds a new call site in __free_pages_ok so it might be overhead\na bit but it\u0027s for high order allocation.  So I believe damage isn\u0027t hurt.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b12c4ad14ee0232ad47c2bef404b6d42a3578332",
      "tree": "9fc0d3fa799b7aef83f824eb538f0b75c3af0683",
      "parents": [
        "d95ea5d18e699515468368415c93ed49b1a3221b"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:32:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:45 2012 +0900"
      },
      "message": "mm: page_alloc: use get_freepage_migratetype() instead of page_private()\n\nThe page allocator uses set_page_private and page_private for handling\nmigratetype when it frees page.  Let\u0027s replace them with [set|get]\n_freepage_migratetype to make it more clear.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38a76013ad809beb0b52f60d365c960d035bd83c",
      "tree": "c63ba707ab17dd1ff1e90650faf74570daa3cf9f",
      "parents": [
        "523d4e2008fd4a68b1a164e63e8c75b7b20f07e0"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:42 2012 +0900"
      },
      "message": "mm: avoid taking rmap locks in move_ptes()\n\nDuring mremap(), the destination VMA is generally placed after the\noriginal vma in rmap traversal order: in move_vma(), we always have\nnew_pgoff \u003e\u003d vma-\u003evm_pgoff, and as a result new_vma-\u003evm_pgoff \u003e\u003d\nvma-\u003evm_pgoff unless vma_merge() merged the new vma with an adjacent one.\n\nWhen the destination VMA is placed after the original in rmap traversal\norder, we can avoid taking the rmap locks in move_ptes().\n\nEssentially, this reintroduces the optimization that had been disabled in\n\"mm anon rmap: remove anon_vma_moveto_tail\".  The difference is that we\ndon\u0027t try to impose the rmap traversal order; instead we just rely on\nthings being in the desired order in the common case and fall back to\ntaking locks in the uncommon case.  Also we skip the i_mmap_mutex in\naddition to the anon_vma lock: in both cases, the vmas are traversed in\nincreasing vm_pgoff order with ties resolved in tree insertion order.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ed8ea8150182f8d715fceb3b175ef0a9ebacd872",
      "tree": "3af48f3a947df4dc5a0df660988f61d454a88cf2",
      "parents": [
        "86c2ad19956f84f2191e062fcb979367b6365871"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:42 2012 +0900"
      },
      "message": "mm: add CONFIG_DEBUG_VM_RB build option\n\nAdd a CONFIG_DEBUG_VM_RB build option for the previously existing\nDEBUG_MM_RB code.  Now that Andi Kleen modified it to avoid using\nrecursive algorithms, we can expose it a bit more.\n\nAlso extend this code to validate_mm() after stack expansion, and to check\nthat the vma\u0027s start and last pgoffs have not changed since the nodes were\ninserted on the anon vma interval tree (as it is important that the nodes\nbe reindexed after each such update).\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf181b9f9d8dfbba58b23441ad60d0bc33806d64",
      "tree": "7ad0caaf8998f31c5d910dcbb768f5a1d381b5f4",
      "parents": [
        "108d6642ad81bb1d62b401490a334d2c12397517"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:41 2012 +0900"
      },
      "message": "mm anon rmap: replace same_anon_vma linked list with an interval tree.\n\nWhen a large VMA (anon or private file mapping) is first touched, which\nwill populate its anon_vma field, and then split into many regions through\nthe use of mprotect(), the original anon_vma ends up linking all of the\nvmas on a linked list.  This can cause rmap to become inefficient, as we\nhave to walk potentially thousands of irrelevent vmas before finding the\none a given anon page might fall into.\n\nBy replacing the same_anon_vma linked list with an interval tree (where\neach avc\u0027s interval is determined by its vma\u0027s start and last pgoffs), we\ncan make rmap efficient for this use case again.\n\nWhile the change is large, all of its pieces are fairly simple.\n\nMost places that were walking the same_anon_vma list were looking for a\nknown pgoff, so they can just use the anon_vma_interval_tree_foreach()\ninterval tree iterator instead.  The exception here is ksm, where the\npage\u0027s index is not known.  It would probably be possible to rework ksm so\nthat the index would be known, but for now I have decided to keep things\nsimple and just walk the entirety of the interval tree there.\n\nWhen updating vma\u0027s that already have an anon_vma assigned, we must take\ncare to re-index the corresponding avc\u0027s on their interval tree.  This is\ndone through the use of anon_vma_interval_tree_pre_update_vma() and\nanon_vma_interval_tree_post_update_vma(), which remove the avc\u0027s from\ntheir interval tree before the update and re-insert them after the update.\n The anon_vma stays locked during the update, so there is no chance that\nrmap would miss the vmas that are being updated.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9826a516ff77c5820e591211e4f3e58ff36f46be",
      "tree": "bdec1e2fe5ff95569795069bac73977faba17d57",
      "parents": [
        "9c079add0d0f45220f4bb37febf0621137ec2d38"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "mm: interval tree updates\n\nUpdate the generic interval tree code that was introduced in \"mm: replace\nvma prio_tree with an interval tree\".\n\nChanges:\n\n- fixed \u0027endpoing\u0027 typo noticed by Andrew Morton\n\n- replaced include/linux/interval_tree_tmpl.h, which was used as a\n  template (including it automatically defined the interval tree\n  functions) with include/linux/interval_tree_generic.h, which only\n  defines a preprocessor macro INTERVAL_TREE_DEFINE(), which itself\n  defines the interval tree functions when invoked. Now that is a very\n  long macro which is unfortunate, but it does make the usage sites\n  (lib/interval_tree.c and mm/interval_tree.c) a bit nicer than previously.\n\n- make use of RB_DECLARE_CALLBACKS() in the INTERVAL_TREE_DEFINE() macro,\n  instead of duplicating that code in the interval tree template.\n\n- replaced vma_interval_tree_add(), which was actually handling the\n  nonlinear and interval tree cases, with vma_interval_tree_insert_after()\n  which handles only the interval tree case and has an API that is more\n  consistent with the other interval tree handling functions.\n  The nonlinear case is now handled explicitly in kernel/fork.c dup_mmap().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b2dbba8b6ac4df26f72eda1e5ea7bab9f950e08",
      "tree": "422ed8d7ac2fe45069f20cfba84a9a097bf444af",
      "parents": [
        "fff3fd8a1210a165252cd7cd01206da7a90d3a06"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:39 2012 +0900"
      },
      "message": "mm: replace vma prio_tree with an interval tree\n\nImplement an interval tree as a replacement for the VMA prio_tree.  The\nalgorithms are similar to lib/interval_tree.c; however that code can\u0027t be\ndirectly reused as the interval endpoints are not explicitly stored in the\nVMA.  So instead, the common algorithm is moved into a template and the\ndetails (node type, how to get interval endpoints from the node, etc) are\nfilled in using the C preprocessor.\n\nOnce the interval tree functions are available, using them as a\nreplacement to the VMA prio tree is a relatively simple, mechanical job.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1fb3f8ca0e9222535a39b884cb67a34628411b9f",
      "tree": "5e72498f44d4fcae18f29eb87dd05a849a7a23c9",
      "parents": [
        "83fde0f22872aa8c1d46f775cc7bdfa864499e65"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 08 16:29:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:21 2012 +0900"
      },
      "message": "mm: compaction: capture a suitable high-order page immediately when it is made available\n\nWhile compaction is migrating pages to free up large contiguous blocks\nfor allocation it races with other allocation requests that may steal\nthese blocks or break them up.  This patch alters direct compaction to\ncapture a suitable free page as soon as it becomes available to reduce\nthis race.  It uses similar logic to split_free_page() to ensure that\nwatermarks are still obeyed.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "314e51b9851b4f4e8ab302243ff5a6fc6147f379",
      "tree": "f757b89206355fd129830782566768693eed23ce",
      "parents": [
        "0103bd16fb90bc741c7a03fd1ea4e8a505abad23"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:29:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:19 2012 +0900"
      },
      "message": "mm: kill vma flag VM_RESERVED and mm-\u003ereserved_vm counter\n\nA long time ago, in v2.4, VM_RESERVED kept swapout process off VMA,\ncurrently it lost original meaning but still has some effects:\n\n | effect                 | alternative flags\n-+------------------------+---------------------------------------------\n1| account as reserved_vm | VM_IO\n2| skip in core dump      | VM_IO, VM_DONTDUMP\n3| do not merge or expand | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP\n4| do not mlock           | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP\n\nThis patch removes reserved_vm counter from mm_struct.  Seems like nobody\ncares about it, it does not exported into userspace directly, it only\nreduces total_vm showed in proc.\n\nThus VM_RESERVED can be replaced with VM_IO or pair VM_DONTEXPAND | VM_DONTDUMP.\n\nremap_pfn_range() and io_remap_pfn_range() set VM_IO|VM_DONTEXPAND|VM_DONTDUMP.\nremap_vmalloc_range() set VM_DONTEXPAND | VM_DONTDUMP.\n\n[akpm@linux-foundation.org: drivers/vfio/pci/vfio_pci.c fixup]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0103bd16fb90bc741c7a03fd1ea4e8a505abad23",
      "tree": "720cb5bf0734fcae36d9af584023c086de0a7ea2",
      "parents": [
        "e9714acf8c439688884234dcac2bfc38bb607d38"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:18 2012 +0900"
      },
      "message": "mm: prepare VM_DONTDUMP for using in drivers\n\nRename VM_NODUMP into VM_DONTDUMP: this name matches other negative flags:\nVM_DONTEXPAND, VM_DONTCOPY.  Currently this flag used only for\nsys_madvise.  The next patch will use it for replacing the outdated flag\nVM_RESERVED.\n\nAlso forbid madvise(MADV_DODUMP) for special kernel mappings VM_SPECIAL\n(VM_IO | VM_DONTEXPAND | VM_RESERVED | VM_PFNMAP)\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9714acf8c439688884234dcac2bfc38bb607d38",
      "tree": "2e21c88f855a9f5168a143fa9948141140ff02a2",
      "parents": [
        "2dd8ad81e31d0d36a5d448329c646ab43eb17788"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:18 2012 +0900"
      },
      "message": "mm: kill vma flag VM_EXECUTABLE and mm-\u003enum_exe_file_vmas\n\nCurrently the kernel sets mm-\u003eexe_file during sys_execve() and then tracks\nnumber of vmas with VM_EXECUTABLE flag in mm-\u003enum_exe_file_vmas, as soon\nas this counter drops to zero kernel resets mm-\u003eexe_file to NULL.  Plus it\nresets mm-\u003eexe_file at last mmput() when mm-\u003emm_users drops to zero.\n\nVMA with VM_EXECUTABLE flag appears after mapping file with flag\nMAP_EXECUTABLE, such vmas can appears only at sys_execve() or after vma\nsplitting, because sys_mmap ignores this flag.  Usually binfmt module sets\nmm-\u003eexe_file and mmaps executable vmas with this file, they hold\nmm-\u003eexe_file while task is running.\n\ncomment from v2.6.25-6245-g925d1c4 (\"procfs task exe symlink\"),\nwhere all this stuff was introduced:\n\n\u003e The kernel implements readlink of /proc/pid/exe by getting the file from\n\u003e the first executable VMA.  Then the path to the file is reconstructed and\n\u003e reported as the result.\n\u003e\n\u003e Because of the VMA walk the code is slightly different on nommu systems.\n\u003e This patch avoids separate /proc/pid/exe code on nommu systems.  Instead of\n\u003e walking the VMAs to find the first executable file-backed VMA we store a\n\u003e reference to the exec\u0027d file in the mm_struct.\n\u003e\n\u003e That reference would prevent the filesystem holding the executable file\n\u003e from being unmounted even after unmapping the VMAs.  So we track the number\n\u003e of VM_EXECUTABLE VMAs and drop the new reference when the last one is\n\u003e unmapped.  This avoids pinning the mounted filesystem.\n\nexe_file\u0027s vma accounting is hooked into every file mmap/unmmap and vma\nsplit/merge just to fix some hypothetical pinning fs from umounting by mm,\nwhich already unmapped all its executable files, but still alive.\n\nSeems like currently nobody depends on this behaviour.  We can try to\nremove this logic and keep mm-\u003eexe_file until final mmput().\n\nmm-\u003eexe_file is still protected with mm-\u003emmap_sem, because we want to\nchange it via new sys_prctl(PR_SET_MM_EXE_FILE).  Also via this syscall\ntask can change its mm-\u003eexe_file and unpin mountpoint explicitly.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b173bc4daa8f8ec03a85abf5e47b23502ff80af",
      "tree": "173d0523555e02a077e0af4563bd4cadea46cb23",
      "parents": [
        "4b6e1e37026ec7dae9b23d78ffcebdd5ddb1bfa1"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:17 2012 +0900"
      },
      "message": "mm: kill vma flag VM_CAN_NONLINEAR\n\nMove actual pte filling for non-linear file mappings into the new special\nvma operation: -\u003eremap_pages().\n\nFilesystems must implement this method to get non-linear mapping support,\nif it uses filemap_fault() then generic_file_remap_pages() can be used.\n\nNow device drivers can implement this method and obtain nonlinear vma support.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\t#arch/tile\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b6e1e37026ec7dae9b23d78ffcebdd5ddb1bfa1",
      "tree": "10200483a705005f41f543ed433581409cf2bf5f",
      "parents": [
        "cc2383ec06be093789469852e1fe96e1148e9a2c"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:17 2012 +0900"
      },
      "message": "mm: kill vma flag VM_INSERTPAGE\n\nMerge VM_INSERTPAGE into VM_MIXEDMAP.  VM_MIXEDMAP VMA can mix pure-pfn\nptes, special ptes and normal ptes.\n\nNow copy_page_range() always copies VM_MIXEDMAP VMA on fork like\nVM_PFNMAP.  If driver populates whole VMA at mmap() it probably not\nexpects page-faults.\n\nThis patch removes special check from vma_wants_writenotify() which\ndisables pages write tracking for VMA populated via vm_instert_page().\nBDI below mapped file should not use dirty-accounting, moreover\ndo_wp_page() can handle this.\n\nvm_insert_page() still marks vma after first usage.  Usually it is called\nfrom f_op-\u003emmap() handler under mm-\u003emmap_sem write-lock, so it able to\nchange vma-\u003evm_flags.  Caller must set VM_MIXEDMAP at mmap time if it\nwants to call this function from other places, for example from page-fault\nhandler.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc2383ec06be093789469852e1fe96e1148e9a2c",
      "tree": "ea65c486104507000cdc5c2957015f2895dda7a2",
      "parents": [
        "b3b9c2932c32e0692018ed5f12f3fd8c70eea8ce"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:16 2012 +0900"
      },
      "message": "mm: introduce arch-specific vma flag VM_ARCH_1\n\nCombine several arch-specific vma flags into one.\n\nbefore patch:\n\n        0x00000200      0x01000000      0x20000000      0x40000000\nx86     VM_NOHUGEPAGE   VM_HUGEPAGE     -               VM_PAT\npowerpc -               -               VM_SAO          -\nparisc  VM_GROWSUP      -               -               -\nia64    VM_GROWSUP      -               -               -\nnommu   -               VM_MAPPED_COPY  -               -\nothers  -               -               -               -\n\nafter patch:\n\n        0x00000200      0x01000000      0x20000000      0x40000000\nx86     -               VM_PAT          VM_HUGEPAGE     VM_NOHUGEPAGE\npowerpc -               VM_SAO          -               -\nparisc  -               VM_GROWSUP      -               -\nia64    -               VM_GROWSUP      -               -\nnommu   -               VM_MAPPED_COPY  -               -\nothers  -               VM_ARCH_1       -               -\n\nAnd voila! One completely free bit.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3b9c2932c32e0692018ed5f12f3fd8c70eea8ce",
      "tree": "bca2431f0b0bd2d364f041f0344836cd39b1822c",
      "parents": [
        "5180da410db6369d1f95c9014da1c9bc33fb043e"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:16 2012 +0900"
      },
      "message": "mm, x86, pat: rework linear pfn-mmap tracking\n\nReplace the generic vma-flag VM_PFN_AT_MMAP with x86-only VM_PAT.\n\nWe can toss mapping address from remap_pfn_range() into\ntrack_pfn_vma_new(), and collect all PAT-related logic together in\narch/x86/.\n\nThis patch also restores orignal frustration-free is_cow_mapping() check\nin remap_pfn_range(), as it was before commit v2.6.28-rc8-88-g3c8bb73\n(\"x86: PAT: store vm_pgoff for all linear_over_vma_region mappings - v3\")\n\nis_linear_pfn_mapping() checks can be removed from mm/huge_memory.c,\nbecause it already handled by VM_PFNMAP in VM_NO_THP bit-mask.\n\n[suresh.b.siddha@intel.com: Reset the VM_PAT flag as part of untrack_pfn_vma()]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a0e881b7c189fa2bd76c024dbff91e79511c971d",
      "tree": "0c801918565b08921d21aceee5b326f64d998f5f",
      "parents": [
        "eff0d13f3823f35d70228cd151d2a2c89288ff32",
        "dbc6e0222d79e78925fe20733844a796a4b72cf9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 01 10:26:23 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull second vfs pile from Al Viro:\n \"The stuff in there: fsfreeze deadlock fixes by Jan (essentially, the\n  deadlock reproduced by xfstests 068), symlink and hardlink restriction\n  patches, plus assorted cleanups and fixes.\n\n  Note that another fsfreeze deadlock (emergency thaw one) is *not*\n  dealt with - the series by Fernando conflicts a lot with Jan\u0027s, breaks\n  userland ABI (FIFREEZE semantics gets changed) and trades the deadlock\n  for massive vfsmount leak; this is going to be handled next cycle.\n  There probably will be another pull request, but that stuff won\u0027t be\n  in it.\"\n\nFix up trivial conflicts due to unrelated changes next to each other in\ndrivers/{staging/gdm72xx/usb_boot.c, usb/gadget/storage_common.c}\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (54 commits)\n  delousing target_core_file a bit\n  Documentation: Correct s_umount state for freeze_fs/unfreeze_fs\n  fs: Remove old freezing mechanism\n  ext2: Implement freezing\n  btrfs: Convert to new freezing mechanism\n  nilfs2: Convert to new freezing mechanism\n  ntfs: Convert to new freezing mechanism\n  fuse: Convert to new freezing mechanism\n  gfs2: Convert to new freezing mechanism\n  ocfs2: Convert to new freezing mechanism\n  xfs: Convert to new freezing code\n  ext4: Convert to new freezing mechanism\n  fs: Protect write paths by sb_start_write - sb_end_write\n  fs: Skip atime update on frozen filesystem\n  fs: Add freezing handling to mnt_want_write() / mnt_drop_write()\n  fs: Improve filesystem freezing handling\n  switch the protection of percpu_counter list to spinlock\n  nfsd: Push mnt_want_write() outside of i_mutex\n  btrfs: Push mnt_want_write() outside of i_mutex\n  fat: Push mnt_want_write() outside of i_mutex\n  ...\n"
    },
    {
      "commit": "18022c5d8627a7a9ba8097a0f238b513fae6f5b8",
      "tree": "57e0d0ec6a5369c56bd00957eb9c0e1220e62917",
      "parents": [
        "f981c5950fa85916ba49bea5d9a7a5078f47e569"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "mm: add get_kernel_page[s] for pinning of kernel addresses for I/O\n\nThis patch adds two new APIs get_kernel_pages() and get_kernel_page() that\nmay be used to pin a vector of kernel addresses for IO.  The initial user\nis expected to be NFS for allowing pages to be written to swap using\naops-\u003edirect_IO().  Strictly speaking, swap-over-NFS only needs to pin one\npage for IO but it makes sense to express the API in terms of a vector and\nadd a helper for pinning single pages.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nCc: Mark Salter \u003cmsalter@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f981c5950fa85916ba49bea5d9a7a5078f47e569",
      "tree": "e742598755e57e1bbed06dc90b05fe6e13091236",
      "parents": [
        "6290c2c439732727899405f39fb76c2f5585b707"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Tue Jul 31 16:44:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:47 2012 -0700"
      },
      "message": "mm: methods for teaching filesystems about PG_swapcache pages\n\nIn order to teach filesystems to handle swap cache pages, three new page\nfunctions are introduced:\n\n  pgoff_t page_file_index(struct page *);\n  loff_t page_file_offset(struct page *);\n  struct address_space *page_file_mapping(struct page *);\n\npage_file_index() - gives the offset of this page in the file in\nPAGE_CACHE_SIZE blocks.  Like page-\u003eindex is for mapped pages, this\nfunction also gives the correct index for PG_swapcache pages.\n\npage_file_offset() - uses page_file_index(), so that it will give the\nexpected result, even for PG_swapcache pages.\n\npage_file_mapping() - gives the mapping backing the actual page; that is\nfor swap cache pages it will give swap_file-\u003ef_mapping.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Eric B Munson \u003cemunson@mgebm.net\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Sebastian Andrzej Siewior \u003csebastian@breakpoint.cc\u003e\nCc: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: Xiaotian Feng \u003cdfeng@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "340175b7d14d5617559d0c1a54fa0ea204d9edcd",
      "tree": "7b2fb51d5bf1e54bf258a058fea347ee2d75ac7b",
      "parents": [
        "08dff7b7d629807dbb1f398c68dd9cd58dd657a1"
      ],
      "author": {
        "name": "Jiang Liu",
        "email": "jiang.liu@huawei.com",
        "time": "Tue Jul 31 16:43:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:44 2012 -0700"
      },
      "message": "mm/hotplug: free zone-\u003epageset when a zone becomes empty\n\nWhen a zone becomes empty after memory offlining, free zone-\u003epageset.\nOtherwise it will cause memory leak when adding memory to the empty zone\nagain because build_all_zonelists() will allocate zone-\u003epageset for an\nempty zone.\n\nSigned-off-by: Jiang Liu \u003cliuj97@gmail.com\u003e\nSigned-off-by: Wei Wang \u003cBessel.Wang@huawei.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Keping Chen \u003cchenkeping@huawei.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44de9d0cad41f2c51ef26916842be046b582dcc9",
      "tree": "a9ce576f28e5038e9e3ae2e360cadf176dc74898",
      "parents": [
        "df858fa8276f85106f2f5c3cd49c1fa524058070"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Tue Jul 31 16:41:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 31 18:42:39 2012 -0700"
      },
      "message": "mm: account the total_vm in the vm_stat_account()\n\nvm_stat_account() accounts the shared_vm, stack_vm and reserved_vm now.\nBut we can also account for total_vm in the vm_stat_account() which makes\nthe code tidy.\n\nEven for mprotect_fixup(), we can get the right result in the end.\n\nSigned-off-by: Huang Shijie \u003cshijie8@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4fcf1c6205fcfc7a226a144ae4d83b7f5415cab8",
      "tree": "e0a8ee8640c670123e09a8a041a3ed00c89a0d60",
      "parents": [
        "41c4d25f78c01ede13efee1f2e979f3f35dd26f6"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Jun 12 16:20:29 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jul 31 01:02:48 2012 +0400"
      },
      "message": "mm: Make default vm_ops provide -\u003epage_mkwrite handler\n\nMake default vm_ops provide -\u003epage_mkwrite handler. Currently it only updates\nfile\u0027s modification times and gets locked page but later it will also handle\nfilesystem freezing.\n\nBugLink: https://bugs.launchpad.net/bugs/897421\nTested-by: Kamal Mostafa \u003ckamal@canonical.com\u003e\nTested-by: Peter M. Petrakis \u003cpeter.petrakis@canonical.com\u003e\nTested-by: Dann Frazier \u003cdann.frazier@canonical.com\u003e\nTested-by: Massimo Morana \u003cmassimo.morana@canonical.com\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6751ed65dc6642af64f7b8a440a75563c8aab7ae",
      "tree": "8736d4c2b3aa00c6a4f39d2e6cba4805720c2874",
      "parents": [
        "6887a4131da3adaab011613776d865f4bcfb5678"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Wed Jul 11 10:20:47 2012 -0700"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Wed Jul 11 10:20:47 2012 -0700"
      },
      "message": "x86/mce: Fix siginfo_t-\u003esi_addr value for non-recoverable memory faults\n\nIn commit dad1743e5993f1 (\"x86/mce: Only restart instruction after machine\ncheck recovery if it is safe\") we fixed mce_notify_process() to force a\nsignal to the current process if it was not restartable (RIPV bit not\nset in MCG_STATUS). But doing it here means that the process doesn\u0027t\nget told the virtual address of the fault via siginfo_t-\u003esi_addr. This\nwould prevent application level recovery from the fault.\n\nMake a new MF_MUST_KILL flag bit for memory_failure() et al. to use so\nthat we will provide the right information with the signal.\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nAcked-by: Borislav Petkov \u003cborislav.petkov@amd.com\u003e\nCc: stable@kernel.org    # 3.4+\n"
    },
    {
      "commit": "1193755ac6328ad240ba987e6ec41d5e8baf0680",
      "tree": "40bf847d7e3ebaa57b107151d14e6cd1d280cc6d",
      "parents": [
        "4edebed86690eb8db9af3ab85baf4a34e73266cc",
        "0ef97dcfce4179a2eba046b855ee2f91d6f1b414"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:34:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 01 10:34:35 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs changes from Al Viro.\n \"A lot of misc stuff.  The obvious groups:\n   * Miklos\u0027 atomic_open series; kills the damn abuse of\n     -\u003ed_revalidate() by NFS, which was the major stumbling block for\n     all work in that area.\n   * ripping security_file_mmap() and dealing with deadlocks in the\n     area; sanitizing the neighborhood of vm_mmap()/vm_munmap() in\n     general.\n   * -\u003eencode_fh() switched to saner API; insane fake dentry in\n     mm/cleancache.c gone.\n   * assorted annotations in fs (endianness, __user)\n   * parts of Artem\u0027s -\u003es_dirty work (jff2 and reiserfs parts)\n   * -\u003eupdate_time() work from Josef.\n   * other bits and pieces all over the place.\n\n  Normally it would\u0027ve been in two or three pull requests, but\n  signal.git stuff had eaten a lot of time during this cycle ;-/\"\n\nFix up trivial conflicts in Documentation/filesystems/vfs.txt (the\n\u0027truncate_range\u0027 inode method was removed by the VM changes, the VFS\nupdate adds an \u0027update_time()\u0027 method), and in fs/btrfs/ulist.[ch] (due\nto sparse fix added twice, with other changes nearby).\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (95 commits)\n  nfs: don\u0027t open in -\u003ed_revalidate\n  vfs: retry last component if opening stale dentry\n  vfs: nameidata_to_filp(): don\u0027t throw away file on error\n  vfs: nameidata_to_filp(): inline __dentry_open()\n  vfs: do_dentry_open(): don\u0027t put filp\n  vfs: split __dentry_open()\n  vfs: do_last() common post lookup\n  vfs: do_last(): add audit_inode before open\n  vfs: do_last(): only return EISDIR for O_CREAT\n  vfs: do_last(): check LOOKUP_DIRECTORY\n  vfs: do_last(): make ENOENT exit RCU safe\n  vfs: make follow_link check RCU safe\n  vfs: do_last(): use inode variable\n  vfs: do_last(): inline walk_component()\n  vfs: do_last(): make exit RCU safe\n  vfs: split do_lookup()\n  Btrfs: move over to use -\u003eupdate_time\n  fs: introduce inode operation -\u003eupdate_time\n  reiserfs: get rid of resierfs_sync_super\n  reiserfs: mark the superblock as dirty a bit later\n  ...\n"
    },
    {
      "commit": "e3fc629d7bb70848fbf479688a66d4e76dff46ac",
      "tree": "96b6d5ffdb1c643fb28807a635e6ca4e24964034",
      "parents": [
        "98de59bfe4b2ff6344d9ad8e5296f80de5dcc5b6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 30 20:08:42 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 01 10:37:17 2012 -0400"
      },
      "message": "switch aio and shm to do_mmap_pgoff(), make do_mmap() static\n\nafter all, 0 bytes and 0 pages is the same thing...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5bf5f03c271907978489868a4c72aeb42b5127d2",
      "tree": "2d6b283fa5ee83b723fd4b4a8f070ae53c60ebe9",
      "parents": [
        "dbda591d920b4c7692725b13e3f68ecb251e9080"
      ],
      "author": {
        "name": "Pravin B Shelar",
        "email": "pshelar@nicira.com",
        "time": "Tue May 29 15:06:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:24 2012 -0700"
      },
      "message": "mm: fix slab-\u003epage flags corruption\n\nTransparent huge pages can change page-\u003eflags (PG_compound_lock) without\ntaking Slab lock.  Since THP can not break slab pages we can safely access\ncompound page without taking compound lock.\n\nSpecifically this patch fixes a race between compound_unlock() and slab\nfunctions which perform page-flags updates.  This can occur when\nget_page()/put_page() is called on a page from slab.\n\n[akpm@linux-foundation.org: tweak comment text, fix comment layout, fix label indenting]\nReported-by: Amey Bhide \u003cabhide@nicira.com\u003e\nSigned-off-by: Pravin B Shelar \u003cpshelar@nicira.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "17cf28afea2a1112f240a3a2da8af883be024811",
      "tree": "ed9e3eb9b1d44118a12e4ecdf369e3b9b3208be1",
      "parents": [
        "3f31d07571eeea18a7d34db9af21d2285b807a17"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 29 15:06:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 29 16:22:23 2012 -0700"
      },
      "message": "mm/fs: remove truncate_range\n\nRemove vmtruncate_range(), and remove the truncate_range method from\nstruct inode_operations: only tmpfs ever supported it, and tmpfs has now\nconverted over to using the fallocate method of file_operations.\n\nUpdate Documentation accordingly, adding (setlease and) fallocate lines.\nAnd while we\u0027re in mm.h, remove duplicate declarations of shmem_lock() and\nshmem_file_setup(): everyone is now using the ones in shmem_fs.h.\n\nBased-on-patch-by: Cong Wang \u003camwang@redhat.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Cong Wang \u003camwang@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4f74d2c8e827af12596f153a564c868bf6dbe3dd",
      "tree": "6ef2bafd6c23a4c4a9ef716ea530daea824a7721",
      "parents": [
        "7e027b14d53e9729f823ba8652095d1e309aa8e9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 06 13:54:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 06 14:05:17 2012 -0700"
      },
      "message": "vm: remove \u0027nr_accounted\u0027 calculations from the unmap_vmas() interfaces\n\nThe VM accounting makes no sense at this level, and half of the callers\ndidn\u0027t ever actually use the end result.  The only time we want to\nunaccount the memory is when we actually remove the vma, so do the\naccounting at that point instead.\n\nThis simplifies the interfaces (no need to pass down that silly page\ncounter to functions that really don\u0027t care), and also makes it much\nmore obvious what is actually going on: we do vm_[un]acct_memory() when\nadding or removing the vma, not on random page walking.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e027b14d53e9729f823ba8652095d1e309aa8e9",
      "tree": "a706e9f6ac67d92e4df18662cdb0205844a17871",
      "parents": [
        "18b15fcde715a5512671af9d72a76e7f6d7cb6f0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 06 13:43:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 06 13:52:07 2012 -0700"
      },
      "message": "vm: simplify unmap_vmas() calling convention\n\nNone of the callers want to pass in \u0027zap_details\u0027, and it doesn\u0027t even\nmake sense for the case of actually unmapping vma\u0027s.  So remove the\nargument, and clean up the interface.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bfce281c287a427d0841fadf5d59242757b4e620",
      "tree": "abca9ebeef4c668021e85e4d54e6e779121e92cc",
      "parents": [
        "9f3a4afb276e4d8b3be7f3e678d4dbd11470416f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Apr 20 21:57:04 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Apr 21 01:58:20 2012 -0400"
      },
      "message": "kill mm argument of vm_munmap()\n\nit\u0027s always current-\u003emm\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6be5ceb02e98eaf6cfc4f8b12a896d04023f340d",
      "tree": "f34de1392300bbf63549f4eeb20f7606d6f7b1f9",
      "parents": [
        "a46ef99d80817a167477ed1c8b4d90ee0c2e726f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:13:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:29:13 2012 -0700"
      },
      "message": "VM: add \"vm_mmap()\" helper function\n\nThis continues the theme started with vm_brk() and vm_munmap():\nvm_mmap() does the same thing as do_mmap(), but additionally does the\nrequired VM locking.\n\nThis uninlines (and rewrites it to be clearer) do_mmap(), which sadly\nduplicates it in mm/mmap.c and mm/nommu.c.  But that way we don\u0027t have\nto export our internal do_mmap_pgoff() function.\n\nSome day we hopefully don\u0027t have to export do_mmap() either, if all\nmodular users can become the simpler vm_mmap() instead.  We\u0027re actually\nvery close to that already, with the notable exception of the (broken)\nuse in i810, and a couple of stragglers in binfmt_elf.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a46ef99d80817a167477ed1c8b4d90ee0c2e726f",
      "tree": "3d8c980c627e8b9c009dbf63628a9be8b8d1069f",
      "parents": [
        "e4eb1ff61b323d6141614e5458a1f53c7046ff8e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 16:20:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:29:13 2012 -0700"
      },
      "message": "VM: add \"vm_munmap()\" helper function\n\nLike the vm_brk() function, this is the same as \"do_munmap()\", except it\ndoes the VM locking for the caller.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4eb1ff61b323d6141614e5458a1f53c7046ff8e",
      "tree": "7a0251509c169b0df1a6bf4bc47c5bca709e06da",
      "parents": [
        "3b422e9c2c020a1137349c614da7f9c9761a0922"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 15:35:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 20 17:28:17 2012 -0700"
      },
      "message": "VM: add \"vm_brk()\" helper function\n\nIt does the same thing as \"do_brk()\", except it handles the VM locking\ntoo.\n\nIt turns out that all external callers want that anyway, so we can make\ndo_brk() static to just mm/mmap.c while at it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "532bfc851a7475fb6a36c1e953aa395798a7cca7"
}
