)]}'
{
  "log": [
    {
      "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": "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"
    },
    {
      "commit": "532bfc851a7475fb6a36c1e953aa395798a7cca7",
      "tree": "a7892e5a31330dd59f31959efbe9fda1803784fd",
      "parents": [
        "0195c00244dc2e9f522475868fa278c473ba7339",
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:28 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge third batch of patches from Andrew Morton:\n - Some MM stragglers\n - core SMP library cleanups (on_each_cpu_mask)\n - Some IPI optimisations\n - kexec\n - kdump\n - IPMI\n - the radix-tree iterator work\n - various other misc bits.\n\n \"That\u0027ll do for -rc1.  I still have ~10 patches for 3.4, will send\n  those along when they\u0027ve baked a little more.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  backlight: fix typo in tosa_lcd.c\n  crc32: add help text for the algorithm select option\n  mm: move hugepage test examples to tools/testing/selftests/vm\n  mm: move slabinfo.c to tools/vm\n  mm: move page-types.c from Documentation to tools/vm\n  selftests/Makefile: make `run_tests\u0027 depend on `all\u0027\n  selftests: launch individual selftests from the main Makefile\n  radix-tree: use iterators in find_get_pages* functions\n  radix-tree: rewrite gang lookup using iterator\n  radix-tree: introduce bit-optimized iterator\n  fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n  nbd: rename the nbd_device variable from lo to nbd\n  pidns: add reboot_pid_ns() to handle the reboot syscall\n  sysctl: use bitmap library functions\n  ipmi: use locks on watchdog timeout set on reboot\n  ipmi: simplify locking\n  ipmi: fix message handling during panics\n  ipmi: use a tasklet for handling received messages\n  ipmi: increase KCS timeouts\n  ipmi: decrease the IPMI message transaction time in interrupt mode\n  ...\n"
    },
    {
      "commit": "623e3db9f9b7d6e7b2a99180f9cf0825c936ab7a",
      "tree": "d8eaa8f1665a048c4318ccd0759775e057792823",
      "parents": [
        "3748b2f15b06ea1861df39d5e9693dcd6e9542b1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Mar 28 14:42:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "mm for fs: add truncate_pagecache_range()\n\nHolepunching filesystems ext4 and xfs are using truncate_inode_pages_range\nbut forgetting to unmap pages first (ocfs2 remembers).  This is not really\na bug, since races already require truncate_inode_page() to handle that\ncase once the page is locked; but it can be very inefficient if the file\nbeing punched happens to be mapped into many vmas.\n\nProvide a drop-in replacement truncate_pagecache_range() which does the\nunmapping pass first, handling the awkward mismatch between arguments to\ntruncate_inode_pages_range() and arguments to unmap_mapping_range().\n\nNote that holepunching does not unmap privately COWed pages in the range:\nPOSIX requires that we do so when truncating, but it\u0027s hard to justify,\ndifficult to implement without an i_size cutoff, and no filesystem is\nattempting to implement it.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: \"Theodore Ts\u0027o\" \u003ctytso@mit.edu\u003e\nCc: Andreas Dilger \u003cadilger.kernel@dilger.ca\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjlbec@evilplan.org\u003e\nCc: Ben Myers \u003cbpm@sgi.com\u003e\nCc: Alex Elder \u003celder@kernel.org\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.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": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "49a7f04a4b9d45cd794741ce3d5d66524b37bdd0",
      "tree": "74f7df3f508691bd73597119a537f810cf43d2ef",
      "parents": [
        "705f4502bb9592ad0e8fb1cd2ba5ae4ce955ff8b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Move all declarations of free_initmem() to linux/mm.h\n\nMove all declarations of free_initmem() to linux/mm.h so that there\u0027s only one\nand it\u0027s used by everything.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\ncc: linux-c6x-dev@linux-c6x.org\ncc: microblaze-uclinux@itee.uq.edu.au\ncc: linux-sh@vger.kernel.org\ncc: sparclinux@vger.kernel.org\ncc: x86@kernel.org\ncc: linux-mm@kvack.org\n"
    },
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "accb61fe7bb0f5c2a4102239e4981650f9048519",
      "tree": "5e7120b80944d9719684b94e0c419761ba2d59e1",
      "parents": [
        "909af768e88867016f427264ae39d27a57b6a8ed"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: add VM_NODUMP, MADV_NODUMP, MADV_CLEAR_NODUMP\n\nSince we no longer need the VM_ALWAYSDUMP flag, let\u0027s use the freed bit\nfor \u0027VM_NODUMP\u0027 flag.  The idea is is to add a new madvise() flag:\nMADV_DONTDUMP, which can be set by applications to specifically request\nmemory regions which should not dump core.\n\nThe specific application I have in mind is qemu: we can add a flag there\nthat wouldn\u0027t dump all of guest memory when qemu dumps core.  This flag\nmight also be useful for security sensitive apps that want to absolutely\nmake sure that parts of memory are not dumped.  To clear the flag use:\nMADV_DODUMP.\n\n[akpm@linux-foundation.org: s/MADV_NODUMP/MADV_DONTDUMP/, s/MADV_CLEAR_NODUMP/MADV_DODUMP/, per Roland]\n[akpm@linux-foundation.org: fix up the architectures which broke]\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "909af768e88867016f427264ae39d27a57b6a8ed",
      "tree": "5068b4d98e4bedecde89d9113dc7ef8c69633f45",
      "parents": [
        "1cc684ab75123efe7ff446eb821d44375ba8fa30"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Fri Mar 23 15:02:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "coredump: remove VM_ALWAYSDUMP flag\n\nThe motivation for this patchset was that I was looking at a way for a\nqemu-kvm process, to exclude the guest memory from its core dump, which\ncan be quite large.  There are already a number of filter flags in\n/proc/\u003cpid\u003e/coredump_filter, however, these allow one to specify \u0027types\u0027\nof kernel memory, not specific address ranges (which is needed in this\ncase).\n\nSince there are no more vma flags available, the first patch eliminates\nthe need for the \u0027VM_ALWAYSDUMP\u0027 flag.  The flag is used internally by\nthe kernel to mark vdso and vsyscall pages.  However, it is simple\nenough to check if a vma covers a vdso or vsyscall page without the need\nfor this flag.\n\nThe second patch then replaces the \u0027VM_ALWAYSDUMP\u0027 flag with a new\n\u0027VM_NODUMP\u0027 flag, which can be set by userspace using new madvise flags:\n\u0027MADV_DONTDUMP\u0027, and unset via \u0027MADV_DODUMP\u0027.  The core dump filters\ncontinue to work the same as before unless \u0027MADV_DONTDUMP\u0027 is set on the\nregion.\n\nThe qemu code which implements this features is at:\n\n  http://people.redhat.com/~jbaron/qemu-dump/qemu-dump.patch\n\nIn my testing the qemu core dump shrunk from 383MB -\u003e 13MB with this\npatch.\n\nI also believe that the \u0027MADV_DONTDUMP\u0027 flag might be useful for\nsecurity sensitive apps, which might want to select which areas are\ndumped.\n\nThis patch:\n\nThe VM_ALWAYSDUMP flag is currently used by the coredump code to\nindicate that a vma is part of a vsyscall or vdso section.  However, we\ncan determine if a vma is in one these sections by checking it against\nthe gate_vma and checking for a non-NULL return value from\narch_vma_name().  Thus, freeing a valuable vma bit.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@hack.frob.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Avi Kivity \u003cavi@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": "754b9800779402924fffe456b49d557e15260cbf",
      "tree": "0e0441eca766616fccd8fc37a3885397efc6063a",
      "parents": [
        "35cb8d9e18c0bb33b90d7e574abadbe23b65427d",
        "ea281a9ebaba3287130dbe15bb0aad6f798bb06b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:42:04 2012 -0700"
      },
      "message": "Merge branch \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull MCE changes from Ingo Molnar.\n\n* \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/mce: Fix return value of mce_chrdev_read() when erst is disabled\n  x86/mce: Convert static array of pointers to per-cpu variables\n  x86/mce: Replace hard coded hex constants with symbolic defines\n  x86/mce: Recognise machine check bank signature for data path error\n  x86/mce: Handle \"action required\" errors\n  x86/mce: Add mechanism to safely save information in MCE handler\n  x86/mce: Create helper function to save addr/misc when needed\n  HWPOISON: Add code to handle \"action required\" errors.\n  HWPOISON: Clean up memory_failure() vs. __memory_failure()\n"
    },
    {
      "commit": "95211279c5ad00a317c98221d7e4365e02f20836",
      "tree": "2ddc8625378d2915b8c96392f3cf6663b705ed55",
      "parents": [
        "5375871d432ae9fc581014ac117b96aaee3cd0c7",
        "12724850e8064f64b6223d26d78c0597c742c65a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 09:04:48 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge first batch of patches from Andrew Morton:\n \"A few misc things and all the MM queue\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (92 commits)\n  memcg: avoid THP split in task migration\n  thp: add HPAGE_PMD_* definitions for !CONFIG_TRANSPARENT_HUGEPAGE\n  memcg: clean up existing move charge code\n  mm/memcontrol.c: remove unnecessary \u0027break\u0027 in mem_cgroup_read()\n  mm/memcontrol.c: remove redundant BUG_ON() in mem_cgroup_usage_unregister_event()\n  mm/memcontrol.c: s/stealed/stolen/\n  memcg: fix performance of mem_cgroup_begin_update_page_stat()\n  memcg: remove PCG_FILE_MAPPED\n  memcg: use new logic for page stat accounting\n  memcg: remove PCG_MOVE_LOCK flag from page_cgroup\n  memcg: simplify move_account() check\n  memcg: remove EXPORT_SYMBOL(mem_cgroup_update_page_stat)\n  memcg: kill dead prev_priority stubs\n  memcg: remove PCG_CACHE page_cgroup flag\n  memcg: let css_get_next() rely upon rcu_read_lock()\n  cgroup: revert ss_id_lock to spinlock\n  idr: make idr_get_next() good for rcu_read_lock()\n  memcg: remove unnecessary thp check in page stat accounting\n  memcg: remove redundant returns\n  memcg: enum lru_list lru\n  ...\n"
    },
    {
      "commit": "8d13bddd11c10db40e2c81b4b224c11126691fc0",
      "tree": "bec31e54cbc43bf6b49c391d81893203b903b5ec",
      "parents": [
        "d1d5e05ffdc110021ae7937802e88ae0d223dcdc"
      ],
      "author": {
        "name": "Kautuk Consul",
        "email": "consul.kautuk@gmail.com",
        "time": "Wed Mar 21 16:34:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:55:00 2012 -0700"
      },
      "message": "page_alloc.c: remove add_from_early_node_map()\n\nadd_from_early_node_map() is unused.\n\nSigned-off-by: Kautuk Consul \u003cconsul.kautuk@gmail.com\u003e\nAcked-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": "05af2e104a0c282dcd9303431e1360750ba76de6",
      "tree": "cdd5876f2d17b26cc3ded7ef85d04d0e853e9b7e",
      "parents": [
        "90481622d75715bfcb68501280a917dbfe516029"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:34:13 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:59 2012 -0700"
      },
      "message": "mm, counters: remove task argument to sync_mm_rss() and __sync_task_rss_stat()\n\nsync_mm_rss() can only be used for current to avoid race conditions in\niterating and clearing its per-task counters.  Remove the task argument\nfor it and its helper function, __sync_task_rss_stat(), to avoid thinking\nit can be used safely for anything other than current.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b76437579d1344b612cf1851ae610c636cec7db0",
      "tree": "37c31c957f1159635258168e27e49b90347e37aa",
      "parents": [
        "9e81130b7ce23050335b1197bb51743517b5b9d0"
      ],
      "author": {
        "name": "Siddhesh Poyarekar",
        "email": "siddhesh.poyarekar@gmail.com",
        "time": "Wed Mar 21 16:34:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "procfs: mark thread stack correctly in proc/\u003cpid\u003e/maps\n\nStack for a new thread is mapped by userspace code and passed via\nsys_clone.  This memory is currently seen as anonymous in\n/proc/\u003cpid\u003e/maps, which makes it difficult to ascertain which mappings\nare being used for thread stacks.  This patch uses the individual task\nstack pointers to determine which vmas are actually thread stacks.\n\nFor a multithreaded program like the following:\n\n\t#include \u003cpthread.h\u003e\n\n\tvoid *thread_main(void *foo)\n\t{\n\t\twhile(1);\n\t}\n\n\tint main()\n\t{\n\t\tpthread_t t;\n\t\tpthread_create(\u0026t, NULL, thread_main, NULL);\n\t\tpthread_join(t, NULL);\n\t}\n\nproc/PID/maps looks like the following:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nHere, one could guess that 7f8a44492000-7f8a44c92000 is a stack since\nthe earlier vma that has no permissions (7f8a44e3d000-7f8a4503d000) but\nthat is not always a reliable way to find out which vma is a thread\nstack.  Also, /proc/PID/maps and /proc/PID/task/TID/maps has the same\ncontent.\n\nWith this patch in place, /proc/PID/task/TID/maps are treated as \u0027maps\nas the task would see it\u0027 and hence, only the vma that that task uses as\nstack is marked as [stack].  All other \u0027stack\u0027 vmas are marked as\nanonymous memory.  /proc/PID/maps acts as a thread group level view,\nwhere all thread stack vmas are marked as [stack:TID] where TID is the\nprocess ID of the task that uses that vma as stack, while the process\nstack is marked as [stack].\n\nSo /proc/PID/maps will look like this:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack:1442]\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nThus marking all vmas that are used as stacks by the threads in the\nthread group along with the process stack.  The task level maps will\nhowever like this:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack]\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nwhere only the vma that is being used as a stack by *that* task is\nmarked as [stack].\n\nAnalogous changes have been made to /proc/PID/smaps,\n/proc/PID/numa_maps, /proc/PID/task/TID/smaps and\n/proc/PID/task/TID/numa_maps. Relevant snippets from smaps and\nnuma_maps:\n\n    [siddhesh@localhost ~ ]$ pgrep a.out\n    1441\n    [siddhesh@localhost ~ ]$ cat /proc/1441/smaps | grep \"\\[stack\"\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack:1442]\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/smaps | grep \"\\[stack\"\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/smaps | grep \"\\[stack\"\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/numa_maps | grep \"stack\"\n    7f8a44492000 default stack:1442 anon\u003d2 dirty\u003d2 N0\u003d2\n    7fff6273a000 default stack anon\u003d3 dirty\u003d3 N0\u003d3\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/numa_maps | grep \"stack\"\n    7f8a44492000 default stack anon\u003d2 dirty\u003d2 N0\u003d2\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/numa_maps | grep \"stack\"\n    7fff6273a000 default stack anon\u003d3 dirty\u003d3 N0\u003d3\n\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Siddhesh Poyarekar \u003csiddhesh.poyarekar@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Oleg Nesterov \u003coleg@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": "69c978232aaa99476f9bd002c2a29a84fa3779b5",
      "tree": "7edb0da034b8824040f4f7327dd31ad260532167",
      "parents": [
        "6131728914810a6c02e08750e13e45870101e862"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:33:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm: make get_mm_counter static-inline\n\nMake get_mm_counter() always static inline, it is simple enough for that.\nAnd remove unused set_mm_counter()\n\nbloat-o-meter:\n\nadd/remove: 0/1 grow/shrink: 4/12 up/down: 99/-341 (-242)\nfunction                                     old     new   delta\ntry_to_unmap_one                             886     952     +66\nsys_remap_file_pages                        1214    1230     +16\ndup_mm                                      1684    1700     +16\ndo_exit                                     2277    2278      +1\nzap_page_range                               208     205      -3\nunmap_region                                 304     296      -8\nstatic.oom_kill_process                      554     546      -8\ntry_to_unmap_file                           1716    1700     -16\ngetrusage                                    925     909     -16\nflush_old_exec                              1704    1688     -16\nstatic.dump_header                           416     390     -26\nacct_update_integrals                        218     187     -31\ndo_task_stat                                2986    2954     -32\nget_mm_counter                                34       -     -34\nxacct_add_tsk                                371     334     -37\ntask_statm                                   172     118     -54\ntask_mem                                     383     323     -60\n\ntry_to_unmap_one() grows because update_hiwater_rss() now completely inline.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6e8bb0193af3f308ef22817a5560422d33e58b90",
      "tree": "6001421c8d389bd00b18e0510e3f6c9130f9f80b",
      "parents": [
        "853f5e264018113b1f96f05551b07a74b836c7fc"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 05 13:41:15 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:39:51 2012 -0400"
      },
      "message": "VM: make unmap_vmas() return void\n\nsame story - nobody uses it and it\u0027s been pointless since\n\"mm: Remove i_mmap_lock lockbreak\" went in.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "14f5ff5df37a8fabe2d25b1e64df7e010cc87db9",
      "tree": "10f46ad8429790de35ebad33631d435f74aaff0e",
      "parents": [
        "8b2a12382ccc9df31b27dac37fe04dffe088b57c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Mar 05 13:38:09 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:39:50 2012 -0400"
      },
      "message": "VM: make zap_page_range() return void\n\n... since all callers ignore its return value and it\u0027s been\nuseless since commit 97a894136f29802da19a15541de3c019e1ca147e\n(mm: Remove i_mmap_lock lockbreak) anyway.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "187f1882b5b0748b3c4c22274663fdb372ac0452",
      "tree": "36283f258cf65f03599a045d48bb05d0ec27f3f9",
      "parents": [
        "50af5ead3b44ccf8bd2b4d2a50c1b610f557c480"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Nov 23 20:12:59 2011 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Mar 04 17:54:34 2012 -0500"
      },
      "message": "BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n\nIf a header file is making use of BUG, BUG_ON, BUILD_BUG_ON, or any\nother BUG variant in a static inline (i.e. not in a #define) then\nthat header really should be including \u003clinux/bug.h\u003e and not just\nexpecting it to be implicitly present.\n\nWe can make this change risk-free, since if the files using these\nheaders didn\u0027t have exposure to linux/bug.h already, they would have\nbeen causing compile failures/warnings.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "4e9f44ba29f20484615a461244bfd3a419391490",
      "tree": "490dd38bb8d14765327cee0be2f9731254e9c402",
      "parents": [
        "87f71ae2dd7471c1b4c94100be1f218e91dc64c3",
        "5f7b88d51e89771f64c15903b96b5933dd0bc6d8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 26 11:40:13 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jan 26 11:40:13 2012 +0100"
      },
      "message": "Merge tag \u0027mce-recovery-for-tip\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras into x86/mce\n\nImplement MCE recovery for the data load error path and assorted cleanups.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d0b9706c20ebb4ba181dc26e52ac9a6861abf425",
      "tree": "436e89246fd5ebcf737cae27e135a1995155329b",
      "parents": [
        "02d929502ce7b57f4835d8bb7c828d36e6d9e8ce",
        "54eed6cb16ec315565aaaf8e34252ca253a68b7b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 11 19:12:10 2012 -0800"
      },
      "message": "Merge branch \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027x86-mm-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/numa: Add constraints check for nid parameters\n  mm, x86: Remove debug_pagealloc_enabled\n  x86/mm: Initialize high mem before free_all_bootmem()\n  arch/x86/kernel/e820.c: quiet sparse noise about plain integer as NULL pointer\n  arch/x86/kernel/e820.c: Eliminate bubble sort from sanitize_e820_map()\n  x86: Fix mmap random address range\n  x86, mm: Unify zone_sizes_init()\n  x86, mm: Prepare zone_sizes_init() for unification\n  x86, mm: Use max_low_pfn for ZONE_NORMAL on 64-bit\n  x86, mm: Wrap ZONE_DMA32 with CONFIG_ZONE_DMA32\n  x86, mm: Use max_pfn instead of highend_pfn\n  x86, mm: Move zone init from paging_init() on 64-bit\n  x86, mm: Use MAX_DMA_PFN for ZONE_DMA on 32-bit\n"
    },
    {
      "commit": "640708a2cff7f81e246243b0073c66e6ece7e53e",
      "tree": "8cc00ae2b374bf6750ad9ca20da3566e28cfc9ff",
      "parents": [
        "7773fbc54182a90cd248656619c7d33859e5f91d"
      ],
      "author": {
        "name": "Pavel Emelyanov",
        "email": "xemul@parallels.com",
        "time": "Tue Jan 10 15:11:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:54 2012 -0800"
      },
      "message": "procfs: introduce the /proc/\u003cpid\u003e/map_files/ directory\n\nThis one behaves similarly to the /proc/\u003cpid\u003e/fd/ one - it contains\nsymlinks one for each mapping with file, the name of a symlink is\n\"vma-\u003evm_start-vma-\u003evm_end\", the target is the file.  Opening a symlink\nresults in a file that point exactly to the same inode as them vma\u0027s one.\n\nFor example the ls -l of some arbitrary /proc/\u003cpid\u003e/map_files/\n\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80403000-7f8f80404000 -\u003e /lib64/libc-2.5.so\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f8061e000-7f8f80620000 -\u003e /lib64/libselinux.so.1\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80826000-7f8f80827000 -\u003e /lib64/libacl.so.1.1.0\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80a2f000-7f8f80a30000 -\u003e /lib64/librt-2.5.so\n | lr-x------ 1 root root 64 Aug 26 06:40 7f8f80a30000-7f8f80a4c000 -\u003e /lib64/ld-2.5.so\n\nThis *helps* checkpointing process in three ways:\n\n1. When dumping a task mappings we do know exact file that is mapped\n   by particular region.  We do this by opening\n   /proc/$pid/map_files/$address symlink the way we do with file\n   descriptors.\n\n2. This also helps in determining which anonymous shared mappings are\n   shared with each other by comparing the inodes of them.\n\n3. When restoring a set of processes in case two of them has a mapping\n   shared, we map the memory by the 1st one and then open its\n   /proc/$pid/map_files/$address file and map it by the 2nd task.\n\nUsing /proc/$pid/maps for this is quite inconvenient since it brings\nrepeatable re-reading and reparsing for this text file which slows down\nrestore procedure significantly.  Also as being pointed in (3) it is a way\neasier to use top level shared mapping in children as\n/proc/$pid/map_files/$address when needed.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[gorcunov@openvz.org: make map_files depend on CHECKPOINT_RESTORE]\nSigned-off-by: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nReviewed-by: Vasiliy Kulikov \u003csegoon@openwall.com\u003e\nReviewed-by: \"Kirill A. Shutemov\" \u003ckirill@shutemov.name\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c0a32fc5a2e470d0b02597b23ad79a317735253e",
      "tree": "2d164edae0062918ca2088772c00b0615781353b",
      "parents": [
        "1399ff86f2a2bbacbbe68fa00c5f8c752b344723"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Jan 10 15:07:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 10 16:30:42 2012 -0800"
      },
      "message": "mm: more intensive memory corruption debugging\n\nWith CONFIG_DEBUG_PAGEALLOC configured, the CPU will generate an exception\non access (read,write) to an unallocated page, which permits us to catch\ncode which corrupts memory.  However the kernel is trying to maximise\nmemory usage, hence there are usually few free pages in the system and\nbuggy code usually corrupts some crucial data.\n\nThis patch changes the buddy allocator to keep more free/protected pages\nand to interlace free/protected and allocated pages to increase the\nprobability of catching corruption.\n\nWhen the kernel is compiled with CONFIG_DEBUG_PAGEALLOC,\ndebug_guardpage_minorder defines the minimum order used by the page\nallocator to grant a request.  The requested size will be returned with\nthe remaining pages used as guard pages.\n\nThe default value of debug_guardpage_minorder is zero: no change from\ncurrent behaviour.\n\n[akpm@linux-foundation.org: tweak documentation, s/flg/flag/]\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\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": "7329bbeb92740f35d64a8860ae7837ff4db27fe0",
      "tree": "df4decab54463fd2dee4979f1aa38615f1ef2f3c",
      "parents": [
        "cd42f4a3b2b1c4cbd997363dc57821953d73fd87"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Tue Dec 13 09:27:58 2011 -0800"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Tue Jan 03 12:06:38 2012 -0800"
      },
      "message": "HWPOISON: Add code to handle \"action required\" errors.\n\nAdd new flag bit \"MF_ACTION_REQUIRED\" to be used by machine check\ncode to force a signal with si_code \u003d BUS_MCEERR_AR in the case\nwhere the error occurs in processor execution context. Pass the\nflags argument along call chain:\n\tmemory_failure()\n\t  hwpoison_user_mappings()\n\t    kill_procs()\n\t      kill_proc()\n\nDrop the \"_ao\" suffix from kill_procs_ao() and kill_proc_ao() since\nthey can now handle \"action required\" as well as \"action optional\" errors.\n\nAcked-by: Borislav Petkov \u003cbp@amd64.org\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "cd42f4a3b2b1c4cbd997363dc57821953d73fd87",
      "tree": "c7db057922def7f742fbcd283324051bdd92b053",
      "parents": [
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Thu Dec 15 10:48:12 2011 -0800"
      },
      "committer": {
        "name": "Tony Luck",
        "email": "tony.luck@intel.com",
        "time": "Tue Jan 03 12:06:32 2012 -0800"
      },
      "message": "HWPOISON: Clean up memory_failure() vs. __memory_failure()\n\nThere is only one caller of memory_failure(), all other users call\n__memory_failure() and pass in the flags argument explicitly. The\nlone user of memory_failure() will soon need to pass flags too.\n\nAdd flags argument to the callsite in mce.c. Delete the old memory_failure()\nfunction, and then rename __memory_failure() without the leading \"__\".\n\nProvide clearer message when action optional memory errors are ignored.\n\nAcked-by: Borislav Petkov \u003cbp@amd64.org\u003e\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\n"
    },
    {
      "commit": "45aa0663cc408617b79a2b53f0a5f50e94688a48",
      "tree": "0a53931c317c3c72a3555bd2fbb70a881ee870f2",
      "parents": [
        "511585a28e5b5fd1cac61e601e42efc4c5dd64b5",
        "7bd0b0f0da3b1ec11cbcc798eb0ef747a1184077"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 20 12:14:26 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 20 12:14:26 2011 +0100"
      },
      "message": "Merge branch \u0027memblock-kill-early_node_map\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc into core/memblock\n"
    },
    {
      "commit": "83aeeada7c69f35e5100b27ec354335597a7a488",
      "tree": "44644e68f303368feba7c8ba3e0e0991d6238ada",
      "parents": [
        "635697c663f38106063d5659f0cf2e45afcd4bb5"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Thu Dec 08 14:33:54 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 09 07:50:27 2011 -0800"
      },
      "message": "vmscan: use atomic-long for shrinker batching\n\nUse atomic-long operations instead of looping around cmpxchg().\n\n[akpm@linux-foundation.org: massage atomic.h inclusions]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ee332c1451869963626bf9cac88f165a90990e1",
      "tree": "a40e6c9c6cfe39ecbca37a08019be3c9e56a4a9b",
      "parents": [
        "a2bf79e7dcc97b4e9654f273453f9264f49e41ff"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:09 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 08 10:22:09 2011 -0800"
      },
      "message": "memblock: Kill early_node_map[]\n\nNow all ARCH_POPULATES_NODE_MAP archs select HAVE_MEBLOCK_NODE_MAP -\nthere\u0027s no user of early_node_map[] left.  Kill early_node_map[] and\nreplace ARCH_POPULATES_NODE_MAP with HAVE_MEMBLOCK_NODE_MAP.  Also,\nrelocate for_each_mem_pfn_range() and helper from mm.h to memblock.h\nas page_alloc.c would no longer host an alternative implementation.\n\nThis change is ultimately one to one mapping and shouldn\u0027t cause any\nobservable difference; however, after the recent changes, there are\nsome functions which now would fit memblock.c better than page_alloc.c\nand dependency on HAVE_MEMBLOCK_NODE_MAP instead of HAVE_MEMBLOCK\ndoesn\u0027t make much sense on some of them.  Further cleanups for\nfunctions inside HAVE_MEMBLOCK_NODE_MAP in mm.h would be nice.\n\n-v2: Fix compile bug introduced by mis-spelling\n CONFIG_HAVE_MEMBLOCK_NODE_MAP to CONFIG_MEMBLOCK_HAVE_NODE_MAP in\n mmzone.h.  Reported by Stephen Rothwell.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Chen Liqin \u003cliqin.chen@sunplusct.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "54c29c635ae91f5d75ced7bffeaa77ba37ca02bb",
      "tree": "cddf131b5e70809ec5c282f619de0635e45c1cfa",
      "parents": [
        "855c743a27bb58a9a521bdc485ef5acfdb69badc"
      ],
      "author": {
        "name": "Stanislaw Gruszka",
        "email": "sgruszka@redhat.com",
        "time": "Tue Nov 29 17:05:11 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:24:07 2011 +0100"
      },
      "message": "mm, x86: Remove debug_pagealloc_enabled\n\nWhen (no)bootmem finish operation, it pass pages to buddy\nallocator. Since debug_pagealloc_enabled is not set, we will do\nnot protect pages, what is not what we want with\nCONFIG_DEBUG_PAGEALLOC\u003dy.\n\nTo fix remove debug_pagealloc_enabled. That variable was\nintroduced by commit 12d6f21e \"x86: do not PSE on\nCONFIG_DEBUG_PAGEALLOC\u003dy\" to get more CPA (change page\nattribude) code testing. But currently we have CONFIG_CPA_DEBUG,\nwhich test CPA.\n\nSigned-off-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: linux-mm@kvack.org\nLink: http://lkml.kernel.org/r/1322582711-14571-1-git-send-email-sgruszka@redhat.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d4bbf7e7759afc172e2bfbc5c416324590049cdd",
      "tree": "7eab5ee5481cd3dcf1162329fec827177640018a",
      "parents": [
        "a150439c4a97db379f0ed6faa46fbbb6e7bf3cb2",
        "401d0069cb344f401bc9d264c31db55876ff78c0"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 28 09:46:22 2011 -0800"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 28 09:46:22 2011 -0800"
      },
      "message": "Merge branch \u0027master\u0027 into x86/memblock\n\nConflicts \u0026 resolutions:\n\n* arch/x86/xen/setup.c\n\n\tdc91c728fd \"xen: allow extra memory to be in multiple regions\"\n\t24aa07882b \"memblock, x86: Replace memblock_x86_reserve/free...\"\n\n\tconflicted on xen_add_extra_mem() updates.  The resolution is\n\ttrivial as the latter just want to replace\n\tmemblock_x86_reserve_range() with memblock_reserve().\n\n* drivers/pci/intel-iommu.c\n\n\t166e9278a3f \"x86/ia64: intel-iommu: move to drivers/iommu/\"\n\t5dfe8660a3d \"bootmem: Replace work_with_active_regions() with...\"\n\n\tconflicted as the former moved the file under drivers/iommu/.\n\tResolved by applying the chnages from the latter on the moved\n\tfile.\n\n* mm/Kconfig\n\n\t6661672053a \"memblock: add NO_BOOTMEM config symbol\"\n\tc378ddd53f9 \"memblock, x86: Make ARCH_DISCARD_MEMBLOCK a config option\"\n\n\tconflicted trivially.  Both added config options.  Just\n\tletting both add their own options resolves the conflict.\n\n* mm/memblock.c\n\n\td1f0ece6cdc \"mm/memblock.c: small function definition fixes\"\n\ted7b56a799c \"memblock: Remove memblock_memory_can_coalesce()\"\n\n\tconfliected.  The former updates function removed by the\n\tlatter.  Resolution is trivial.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "b35a35b556f5e6b7993ad0baf20173e75c09ce8c",
      "tree": "85ea46dde6e97d4c73b724698fd65a403529953e",
      "parents": [
        "e0d85a366c2300efd230ef82a9b22110b0658331"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Nov 02 13:37:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:58 2011 -0700"
      },
      "message": "thp: share get_huge_page_tail()\n\nThis avoids duplicating the function in every arch gup_fast.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "70b50f94f1644e2aa7cb374819cfd93f3c28d725",
      "tree": "79198cd9a92600140827a670d1ed5eefdcd23d79",
      "parents": [
        "994c0e992522c123298b4a91b72f5e67ba2d1123"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Nov 02 13:36:59 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 02 16:06:57 2011 -0700"
      },
      "message": "mm: thp: tail page refcounting fix\n\nMichel while working on the working set estimation code, noticed that\ncalling get_page_unless_zero() on a random pfn_to_page(random_pfn)\nwasn\u0027t safe, if the pfn ended up being a tail page of a transparent\nhugepage under splitting by __split_huge_page_refcount().\n\nHe then found the problem could also theoretically materialize with\npage_cache_get_speculative() during the speculative radix tree lookups\nthat uses get_page_unless_zero() in SMP if the radix tree page is freed\nand reallocated and get_user_pages is called on it before\npage_cache_get_speculative has a chance to call get_page_unless_zero().\n\nSo the best way to fix the problem is to keep page_tail-\u003e_count zero at\nall times.  This will guarantee that get_page_unless_zero() can never\nsucceed on any tail page.  page_tail-\u003e_mapcount is guaranteed zero and\nis unused for all tail pages of a compound page, so we can simply\naccount the tail page references there and transfer them to\ntail_page-\u003e_count in __split_huge_page_refcount() (in addition to the\nhead_page-\u003e_mapcount).\n\nWhile debugging this s/_count/_mapcount/ change I also noticed get_page is\ncalled by direct-io.c on pages returned by get_user_pages.  That wasn\u0027t\nentirely safe because the two atomic_inc in get_page weren\u0027t atomic.  As\nopposed to other get_user_page users like secondary-MMU page fault to\nestablish the shadow pagetables would never call any superflous get_page\nafter get_user_page returns.  It\u0027s safer to make get_page universally safe\nfor tail pages and to use get_page_foll() within follow_page (inside\nget_user_pages()).  get_page_foll() is safe to do the refcounting for tail\npages without taking any locks because it is run within PT lock protected\ncritical sections (PT lock for pte and page_table_lock for\npmd_trans_huge).\n\nThe standard get_page() as invoked by direct-io instead will now take\nthe compound_lock but still only for tail pages.  The direct-io paths\nare usually I/O bound and the compound_lock is per THP so very\nfinegrined, so there\u0027s no risk of scalability issues with it.  A simple\ndirect-io benchmarks with all lockdep prove locking and spinlock\ndebugging infrastructure enabled shows identical performance and no\noverhead.  So it\u0027s worth it.  Ideally direct-io should stop calling\nget_page() on pages returned by get_user_pages().  The spinlock in\nget_page() is already optimized away for no-THP builds but doing\nget_page() on tail pages returned by GUP is generally a rare operation\nand usually only run in I/O paths.\n\nThis new refcounting on page_tail-\u003e_mapcount in addition to avoiding new\nRCU critical sections will also allow the working set estimation code to\nwork without any further complexity associated to the tail page\nrefcounting with THP.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Michel Lespinasse \u003cwalken@google.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003cjweiner@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: \u003cstable@vger.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": "3ee9a4f086716d792219c021e8509f91165a4128",
      "tree": "f85162b8e024624f07909eaba4e85b89df924ebb",
      "parents": [
        "06d5e032adcbc7d50c606a1396f00e2474e4213e"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Mon Oct 31 17:08:35 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 31 17:30:48 2011 -0700"
      },
      "message": "mm: neaten warn_alloc_failed\n\nAdd __attribute__((format (printf...) to the function to validate format\nand arguments.  Use vsprintf extension %pV to avoid any possible message\ninterleaving.  Coalesce format string.  Convert printks/pr_warning to\npr_warn.\n\n[akpm@linux-foundation.org: use the __printf() macro]\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "aa462abe8aaf2198d6aef97da20c874ac694a39f",
      "tree": "f7c1b4e82fe8eeaad8ce61a5e9e4d301accaf32b",
      "parents": [
        "f991879473828f320a714e9494fb37a26ccd6b66"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Wed Aug 17 17:40:33 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 13:00:20 2011 -0700"
      },
      "message": "mm: fix __page_to_pfn for a const struct page argument\n\nThis allows the cast in lowmem_page_address (introduced as a warning\nfixup to 33dd4e0ec911 \"mm: make some struct page\u0027s const\") to be\nremoved.\n\nPropagate const\u0027ness to page_to_section() as well since it is required\nby __page_to_pfn.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f991879473828f320a714e9494fb37a26ccd6b66",
      "tree": "349fee2f3c0d9b10340f2fbdb03fa63c2570dbfa",
      "parents": [
        "72ed62bdc46d76c965fb95aecb5d0bf97c976723"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Wed Aug 17 13:45:09 2011 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Aug 17 13:00:20 2011 -0700"
      },
      "message": "mm: make HASHED_PAGE_VIRTUAL page_address\u0027 struct page argument const.\n\nFollowup to 33dd4e0ec911 \"mm: make some struct page\u0027s const\" which missed the\nHASHED_PAGE_VIRTUAL case.\n\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c723ba5b7886909b2e430f2eae454c33f7fe5c6",
      "tree": "4111bfcba622b375d5dd6955fca5252753f283a1",
      "parents": [
        "2f84dd70916ccadd25e94d28363182a978f569b6"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Wed Jul 27 12:17:11 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 08 12:11:02 2011 -0700"
      },
      "message": "mm: Fix fixup_user_fault() for MMU\u003dn\n\nIn commit 2efaca927f5c (\"mm/futex: fix futex writes on archs with SW\ntracking of dirty \u0026 young\") we forgot about MMU\u003dn.  This patch fixes\nthat.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1311761831.24752.413.camel@twins\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0e323b47057f4492b8fa22345f38d80a469bf8d",
      "tree": "feb760c7e2cdb1e43640417409428ab858910ea3",
      "parents": [
        "c027a474a68065391c8773f6e83ed5412657e369",
        "c3e6088e1036f8084bc7444b38437da136b7588b"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:30:42 2011 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:30:42 2011 -0400"
      },
      "message": "Merge branch \u0027apei\u0027 into apei-release\n\nSome trivial conflicts due to other various merges\nadding to the end of common lists sooner than this one.\n\n\tarch/ia64/Kconfig\n\tarch/powerpc/Kconfig\n\tarch/x86/Kconfig\n\tlib/Kconfig\n\tlib/Makefile\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "ea8f5fb8a71fddaf5f3a17100d3247855701f732",
      "tree": "052c3f7e699745394a35063d2a58c4ef0995f3c5",
      "parents": [
        "152cef40a808d3034e383465b3f7d6783613e458"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:27 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:15:58 2011 -0400"
      },
      "message": "HWPoison: add memory_failure_queue()\n\nmemory_failure() is the entry point for HWPoison memory error\nrecovery.  It must be called in process context.  But commonly\nhardware memory errors are notified via MCE or NMI, so some delayed\nexecution mechanism must be used.  In MCE handler, a work queue + ring\nbuffer mechanism is used.\n\nIn addition to MCE, now APEI (ACPI Platform Error Interface) GHES\n(Generic Hardware Error Source) can be used to report memory errors\ntoo.  To add support to APEI GHES memory recovery, a mechanism similar\nto that of MCE is implemented.  memory_failure_queue() is the new\nentry point that can be called in IRQ context.  The next step is to\nmake MCE handler uses this interface too.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "2efaca927f5cd7ecd0f1554b8f9b6a9a2c329c03",
      "tree": "1bea042a7c712e861d7734db59b3311375c439c3",
      "parents": [
        "72c4783210f77fd743f0a316858d33f27db51e7c"
      ],
      "author": {
        "name": "Benjamin Herrenschmidt",
        "email": "benh@kernel.crashing.org",
        "time": "Mon Jul 25 17:12:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:11 2011 -0700"
      },
      "message": "mm/futex: fix futex writes on archs with SW tracking of dirty \u0026 young\n\nI haven\u0027t reproduced it myself but the fail scenario is that on such\nmachines (notably ARM and some embedded powerpc), if you manage to hit\nthat futex path on a writable page whose dirty bit has gone from the PTE,\nyou\u0027ll livelock inside the kernel from what I can tell.\n\nIt will go in a loop of trying the atomic access, failing, trying gup to\n\"fix it up\", getting succcess from gup, go back to the atomic access,\nfailing again because dirty wasn\u0027t fixed etc...\n\nSo I think you essentially hang in the kernel.\n\nThe scenario is probably rare\u0027ish because affected architecture are\nembedded and tend to not swap much (if at all) so we probably rarely hit\nthe case where dirty is missing or young is missing, but I think Shan has\na piece of SW that can reliably reproduce it using a shared writable\nmapping \u0026 fork or something like that.\n\nOn archs who use SW tracking of dirty \u0026 young, a page without dirty is\neffectively mapped read-only and a page without young unaccessible in the\nPTE.\n\nAdditionally, some architectures might lazily flush the TLB when relaxing\nwrite protection (by doing only a local flush), and expect a fault to\ninvalidate the stale entry if it\u0027s still present on another processor.\n\nThe futex code assumes that if the \"in_atomic()\" access -EFAULT\u0027s, it can\n\"fix it up\" by causing get_user_pages() which would then be equivalent to\ntaking the fault.\n\nHowever that isn\u0027t the case.  get_user_pages() will not call\nhandle_mm_fault() in the case where the PTE seems to have the right\npermissions, regardless of the dirty and young state.  It will eventually\nupdate those bits ...  in the struct page, but not in the PTE.\n\nAdditionally, it will not handle the lazy TLB flushing that can be\nrequired by some architectures in the fault case.\n\nBasically, gup is the wrong interface for the job.  The patch provides a\nmore appropriate one which boils down to just calling handle_mm_fault()\nsince what we are trying to do is simulate a real page fault.\n\nThe futex code currently attempts to write to user memory within a\npagefault disabled section, and if that fails, tries to fix it up using\nget_user_pages().\n\nThis doesn\u0027t work on archs where the dirty and young bits are maintained\nby software, since they will gate access permission in the TLB, and will\nnot be updated by gup().\n\nIn addition, there\u0027s an expectation on some archs that a spurious write\nfault triggers a local TLB flush, and that is missing from the picture as\nwell.\n\nI decided that adding those \"features\" to gup() would be too much for this\nalready too complex function, and instead added a new simpler\nfixup_user_fault() which is essentially a wrapper around handle_mm_fault()\nwhich the futex code can call.\n\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix some nits Darren saw, fiddle comment layout]\nSigned-off-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nReported-by: Shan Hai \u003chaishan.bai@gmail.com\u003e\nTested-by: Shan Hai \u003chaishan.bai@gmail.com\u003e\nCc: David Laight \u003cDavid.Laight@ACULAB.COM\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Darren Hart \u003cdarren.hart@intel.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85821aab39b3403a8b5731812a930b78684d1642",
      "tree": "dfac06b03f57a26146df3013b8fb6eb7a85158c6",
      "parents": [
        "5e5358e7cf48aa079b8761a7d806ad536023745c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Mon Jul 25 17:12:23 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:10 2011 -0700"
      },
      "message": "mm: truncate functions are in truncate.c\n\nCorrect comment on truncate_inode_pages*() in linux/mm.h; and remove\ndeclaration of page_unuse(), it didn\u0027t exist even in 2.2.26 or 2.4.0!\n\nSigned-off-by: 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": "c27fe4c8942d3ca715986f79cc26f44608d7d9fb",
      "tree": "d954d0417c941f5e51cf029608311ef04acd9575",
      "parents": [
        "6c6d5280431544e4036886ea74e3334a98bc5f96"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Jul 25 17:12:10 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:08 2011 -0700"
      },
      "message": "pagewalk: add locking-rule comments\n\nOriginally, walk_hugetlb_range() didn\u0027t require a caller take any lock.\nBut commit d33b9f45bd (\"mm: hugetlb: fix hugepage memory leak in\nwalk_page_range\") changed its rule.  Because it added find_vma() call in\nwalk_hugetlb_range().\n\nAny locking-rule change commit should write a doc too.\n\n[akpm@linux-foundation.org: clarify comment]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Hiroyuki Kamezawa \u003ckamezawa.hiroyuki@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "33dd4e0ec91138c3d80e790c08a3db47426c81f2",
      "tree": "5b244874a004cc8a34033846f4e504c9306bf025",
      "parents": [
        "ee8f248d266ec6966c0ce6b7dec24de43dcc1b58"
      ],
      "author": {
        "name": "Ian Campbell",
        "email": "ian.campbell@citrix.com",
        "time": "Mon Jul 25 17:11:51 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jul 25 20:57:07 2011 -0700"
      },
      "message": "mm: make some struct page\u0027s const\n\nThese uses are read-only and in a subsequent patch I have a const struct\npage in my hand...\n\n[akpm@linux-foundation.org: fix warnings in lowmem_page_address()]\nSigned-off-by: Ian Campbell \u003cian.campbell@citrix.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Michel Lespinasse \u003cwalken@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": "bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff",
      "tree": "12b2bb4202b05f6ae6a43c6ce830a0472043dbe5",
      "parents": [
        "8e204874db000928e37199c2db82b7eb8966cc3c",
        "5a9a43646cf709312d71eca71cef90ad802f28f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 22 19:02:39 2011 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits)\n  vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp\n  isofs: Remove global fs lock\n  jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory\n  fix IN_DELETE_SELF on overwriting rename() on ramfs et.al.\n  mm/truncate.c: fix build for CONFIG_BLOCK not enabled\n  fs:update the NOTE of the file_operations structure\n  Remove dead code in dget_parent()\n  AFS: Fix silly characters in a comment\n  switch d_add_ci() to d_splice_alias() in \"found negative\" case as well\n  simplify gfs2_lookup()\n  jfs_lookup(): don\u0027t bother with . or ..\n  get rid of useless dget_parent() in btrfs rename() and link()\n  get rid of useless dget_parent() in fs/btrfs/ioctl.c\n  fs: push i_mutex and filemap_write_and_wait down into -\u003efsync() handlers\n  drivers: fix up various -\u003ellseek() implementations\n  fs: handle SEEK_HOLE/SEEK_DATA properly in all fs\u0027s that define their own llseek\n  Ext4: handle SEEK_HOLE/SEEK_DATA generically\n  Btrfs: implement our own -\u003ellseek\n  fs: add SEEK_HOLE and SEEK_DATA flags\n  reiserfs: make reiserfs default to barrier\u003dflush\n  ...\n\nFix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new\nshrinker callout for the inode cache, that clashed with the xfs code to\nstart the periodic workers later.\n"
    },
    {
      "commit": "b0d40c92adafde7c2d81203ce7c1c69275f41140",
      "tree": "f75a19dcd1a37aff23dc43323b58f014b1297c6b",
      "parents": [
        "12ad3ab66103e6582ca69c0c9de18b13487eaaef"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Jul 08 14:14:42 2011 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 20:47:10 2011 -0400"
      },
      "message": "superblock: introduce per-sb cache shrinker infrastructure\n\nWith context based shrinkers, we can implement a per-superblock\nshrinker that shrinks the caches attached to the superblock. We\ncurrently have global shrinkers for the inode and dentry caches that\nsplit up into per-superblock operations via a coarse proportioning\nmethod that does not batch very well.  The global shrinkers also\nhave a dependency - dentries pin inodes - so we have to be very\ncareful about how we register the global shrinkers so that the\nimplicit call order is always correct.\n\nWith a per-sb shrinker callout, we can encode this dependency\ndirectly into the per-sb shrinker, hence avoiding the need for\nstrictly ordering shrinker registrations. We also have no need for\nany proportioning code for the shrinker subsystem already provides\nthis functionality across all shrinkers. Allowing the shrinker to\noperate on a single superblock at a time means that we do less\nsuperblock list traversals and locking and reclaim should batch more\neffectively. This should result in less CPU overhead for reclaim and\npotentially faster reclaim of items from each filesystem.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e9299f5058595a655c3b207cda9635e28b9197e6",
      "tree": "b31a4dc5cab98ee1701313f45e92e583c2d76f63",
      "parents": [
        "3567b59aa80ac4417002bf58e35dce5c777d4164"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Fri Jul 08 14:14:37 2011 +1000"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Jul 20 01:44:32 2011 -0400"
      },
      "message": "vmscan: add customisable shrinker batch size\n\nFor shrinkers that have their own cond_resched* calls, having\nshrink_slab break the work down into small batches is not\npaticularly efficient. Add a custom batchsize field to the struct\nshrinker so that shrinkers can use a larger batch size if they\ndesire.\n\nA value of zero (uninitialised) means \"use the default\", so\nbehaviour is unchanged by this patch.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "7c0caeb866b0f648d91bb75b8bc6f86af95bb033",
      "tree": "042804fe716310a4de4effbbaa4461237e2b5d4a",
      "parents": [
        "67e24bcb725cabd15ef577bf301275d03d6086d7"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 14 11:43:42 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:47:43 2011 -0700"
      },
      "message": "memblock: Add optional region-\u003enid\n\nFrom 83103b92f3234ec830852bbc5c45911bd6cbdb20 Mon Sep 17 00:00:00 2001\nFrom: Tejun Heo \u003ctj@kernel.org\u003e\nDate: Thu, 14 Jul 2011 11:22:16 +0200\n\nAdd optional region-\u003enid which can be enabled by arch using\nCONFIG_HAVE_MEMBLOCK_NODE_MAP.  When enabled, memblock also carries\nNUMA node information and replaces early_node_map[].\n\nNewly added memblocks have MAX_NUMNODES as nid.  Arch can then call\nmemblock_set_node() to set node information.  memblock takes care of\nmerging and node affine allocations w.r.t. node information.\n\nWhen MEMBLOCK_NODE_MAP is enabled, early_node_map[], related data\nstructures and functions to manipulate and iterate it are disabled.\nmemblock version of __next_mem_pfn_range() is provided such that\nfor_each_mem_pfn_range() behaves the same and its users don\u0027t have to\nbe updated.\n\n-v2: Yinghai spotted section mismatch caused by missing\n     __init_memblock in memblock_set_node().  Fixed.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110714094342.GF3455@htj.dyndns.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "eb40c4c27f1722f058e4713ccfedebac577d5190",
      "tree": "b471a4451c7cab125b3aafced4c77c7958fd711d",
      "parents": [
        "e64980405cc6aa74ef178d8d9aa4018c867ceed1"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 10:46:35 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:45:35 2011 -0700"
      },
      "message": "memblock, x86: Replace memblock_x86_find_in_range_node() with generic memblock calls\n\nWith the previous changes, generic NUMA aware memblock API has feature\nparity with memblock_x86_find_in_range_node().  There currently are\ntwo users - x86 setup_node_data() and __alloc_memory_core_early() in\nnobootmem.c.\n\nThis patch converts the former to use memblock_alloc_nid() and the\nlatter memblock_find_range_in_node(), and kills\nmemblock_x86_find_in_range_node() and related functions including\nfind_memory_early_core_early() in page_alloc.c.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1310460395-30913-9-git-send-email-tj@kernel.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "5dfe8660a3d7f1ee1265c3536433ee53da3f98a3",
      "tree": "c58232b88741ba1d8cce417b62f3f658369ad9c2",
      "parents": [
        "fc769a8e70a3348d5de49e5f69f6aff810157360"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Jul 14 09:46:10 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Thu Jul 14 11:45:29 2011 -0700"
      },
      "message": "bootmem: Replace work_with_active_regions() with for_each_mem_pfn_range()\n\nCallback based iteration is cumbersome and much less useful than\nfor_each_*() iterator.  This patch implements for_each_mem_pfn_range()\nwhich replaces work_with_active_regions().  All the current users of\nwork_with_active_regions() are converted.\n\nThis simplifies walking over early_node_map and will allow converting\ninternal logics in page_alloc to use iterator instead of walking\nearly_node_map directly, which in turn will enable moving node\ninformation to memblock.\n\npowerpc change is only compile tested.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110714074610.GD3455@htj.dyndns.org\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "1e01979c8f502ac13e3cdece4f38712c5944e6e8",
      "tree": "d47c4700bfdcffc3f7f68b19d50c588c20689b48",
      "parents": [
        "d0ead157387f19801beb1b419568723b2e9b7c79"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jul 12 09:45:34 2011 +0200"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@linux.intel.com",
        "time": "Tue Jul 12 21:58:29 2011 -0700"
      },
      "message": "x86, numa: Implement pfn -\u003e nid mapping granularity check\n\nSPARSEMEM w/o VMEMMAP and DISCONTIGMEM, both used only on 32bit, use\nsections array to map pfn to nid which is limited in granularity.  If\nNUMA nodes are laid out such that the mapping cannot be accurate, boot\nwill fail triggering BUG_ON() in mminit_verify_page_links().\n\nOn 32bit, it\u0027s 512MiB w/ PAE and SPARSEMEM.  This seems to have been\ngranular enough until commit 2706a0bf7b (x86, NUMA: Enable\nCONFIG_AMD_NUMA on 32bit too).  Apparently, there is a machine which\naligns NUMA nodes to 128MiB and has only AMD NUMA but not SRAT.  This\nled to the following BUG_ON().\n\n On node 0 totalpages: 2096615\n   DMA zone: 32 pages used for memmap\n   DMA zone: 0 pages reserved\n   DMA zone: 3927 pages, LIFO batch:0\n   Normal zone: 1740 pages used for memmap\n   Normal zone: 220978 pages, LIFO batch:31\n   HighMem zone: 16405 pages used for memmap\n   HighMem zone: 1853533 pages, LIFO batch:31\n BUG: Int 6: CR2   (null)\n      EDI   (null)  ESI 00000002  EBP 00000002  ESP c1543ecc\n      EBX f2400000  EDX 00000006  ECX   (null)  EAX 00000001\n      err   (null)  EIP c16209aa   CS 00000060  flg 00010002\n Stack: f2400000 00220000 f7200800 c1620613 00220000 01000000 04400000 00238000\n          (null) f7200000 00000002 f7200b58 f7200800 c1620929 000375fe   (null)\n        f7200b80 c16395f0 00200a02 f7200a80   (null) 000375fe 00000002   (null)\n Pid: 0, comm: swapper Not tainted 2.6.39-rc5-00181-g2706a0b #17\n Call Trace:\n  [\u003cc136b1e5\u003e] ? early_fault+0x2e/0x2e\n  [\u003cc16209aa\u003e] ? mminit_verify_page_links+0x12/0x42\n  [\u003cc1620613\u003e] ? memmap_init_zone+0xaf/0x10c\n  [\u003cc1620929\u003e] ? free_area_init_node+0x2b9/0x2e3\n  [\u003cc1607e99\u003e] ? free_area_init_nodes+0x3f2/0x451\n  [\u003cc1601d80\u003e] ? paging_init+0x112/0x118\n  [\u003cc15f578d\u003e] ? setup_arch+0x791/0x82f\n  [\u003cc15f43d9\u003e] ? start_kernel+0x6a/0x257\n\nThis patch implements node_map_pfn_alignment() which determines\nmaximum internode alignment and update numa_register_memblks() to\nreject NUMA configuration if alignment exceeds the pfn -\u003e nid mapping\ngranularity of the memory model as determined by PAGES_PER_SECTION.\n\nThis makes the problematic machine boot w/ flatmem by rejecting the\nNUMA config and provides protection against crazy NUMA configurations.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nLink: http://lkml.kernel.org/r/20110712074534.GB2872@htj.dyndns.org\nLKML-Reference: \u003c20110628174613.GP478@escobedo.osrc.amd.com\u003e\nReported-and-Tested-by: Hans Rosenfeld \u003chans.rosenfeld@amd.com\u003e\nCc: Conny Seidel \u003cconny.seidel@amd.com\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@linux.intel.com\u003e\n"
    },
    {
      "commit": "3864601387cf4196371e3c1897fdffa5228296f9",
      "tree": "1c517a970194f9e49ef98ef434c650771ffa31e1",
      "parents": [
        "63ab25ebbc50f74550bd8d164a34724b498f6fb9"
      ],
      "author": {
        "name": "Jiri Slaby",
        "email": "jslaby@suse.cz",
        "time": "Thu May 26 16:25:46 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 17:12:36 2011 -0700"
      },
      "message": "mm: extract exe_file handling from procfs\n\nSetup and cleanup of mm_struct-\u003eexe_file is currently done in fs/proc/.\nThis was because exe_file was needed only for /proc/\u003cpid\u003e/exe.  Since we\nwill need the exe_file functionality also for core dumps (so core name can\ncontain full binary path), built this functionality always into the\nkernel.\n\nTo achieve that move that out of proc FS to the kernel/ where in fact it\nshould belong.  By doing that we can make dup_mm_exe_file static.  Also we\ncan drop linux/proc_fs.h inclusion in fs/exec.c and kernel/fork.c.\n\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Alexander 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": "ca16d140af91febe25daeb9e032bf8bd46b8c31f",
      "tree": "a093c3f244a1bdfc2a50e271a7e6df3324df0f05",
      "parents": [
        "4db70f73e56961b9bcdfd0c36c62847a18b7dbb5"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu May 26 19:16:19 2011 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 26 09:20:31 2011 -0700"
      },
      "message": "mm: don\u0027t access vm_flags as \u0027int\u0027\n\nThe type of vma-\u003evm_flags is \u0027unsigned long\u0027. Neither \u0027int\u0027 nor\n\u0027unsigned int\u0027. This patch fixes such misuse.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n[ Changed to use a typedef - we\u0027ll extend it to cover more cases\n  later, since there has been discussion about making it a 64-bit\n  type..                      - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c856507f2b2b47a49d8587afb58930b463f6bff4",
      "tree": "496cacf39061febc828cdaf97c11ff08f51e4ab4",
      "parents": [
        "b09e0fa4b4ea66266058eead43350bd7d55fec67"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue May 24 17:12:40 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:31 2011 -0700"
      },
      "message": "mm: remove last trace of shmem_get_unmapped_area\n\nRemove noMMU declaration of shmem_get_unmapped_area() from mm.h: it fell\nout of use in 2.6.21 and ceased to exist in 2.6.29.\n\nSigned-off-by: 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": "172703b08cd05e2d5196ac13e94cc186f629d58b",
      "tree": "d7c3f04008aa3327fb00e49e392bbd97948ff266",
      "parents": [
        "a197b59ae6e8bee56fcef37ea2482dc08414e2ac"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@linux.intel.com",
        "time": "Tue May 24 17:12:36 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:30 2011 -0700"
      },
      "message": "mm: delete non-atomic mm counter implementation\n\nThe problem with having two different types of counters is that developers\nadding new code need to keep in mind whether it\u0027s safe to use both the\natomic and non-atomic implementations.  For example, when adding new\ncallers of the *_mm_counter() functions a developer needs to ensure that\nthose paths are always executed with page_table_lock held, in case we\u0027re\nusing the non-atomic implementation of mm counters.\n\nHugh Dickins introduced the atomic mm counters in commit f412ac08c986\n(\"[PATCH] mm: fix rss and mmlist locking\").  When asked why he left the\nnon-atomic counters around he said,\n\n  | The only reason was to avoid adding costly atomic operations into a\n  | configuration that had no need for them there: the page_table_lock\n  | sufficed.\n  |\n  | Certainly it would be simpler just to delete the non-atomic variant.\n  |\n  | And I think it\u0027s fair to say that any configuration on which we\u0027re\n  | measuring performance to that degree (rather than \"does it boot fast?\"\n  | type measurements), would already be going the split ptlocks route.\n\nRemoving the non-atomic counters eases the maintenance burden because\ndevelopers no longer have to mindful of the two implementations when using\n*_mm_counter().\n\nNote that all architectures provide a means of atomically updating\natomic_long_t variables, even if they have to revert to the generic\nspinlock implementation because they don\u0027t support 64-bit atomic\ninstructions (see lib/atomic64.c).\n\nSigned-off-by: Matt Fleming \u003cmatt.fleming@linux.intel.com\u003e\nAcked-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Lameter \u003ccl@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": "ba93fa81b5f2bf0076407a3a777fff122ce16220",
      "tree": "c859d60816b3815679b45d7e492fbbe03e7e2b19",
      "parents": [
        "e3c40f379a144f35e53864a2cd970e238071afd7"
      ],
      "author": {
        "name": "Daniel Kiper",
        "email": "dkiper@net-space.pl",
        "time": "Tue May 24 17:12:34 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:29 2011 -0700"
      },
      "message": "mm: do not define PFN_SECTION_SHIFT if !CONFIG_SPARSEMEM\n\nDo not define PFN_SECTION_SHIFT if !CONFIG_SPARSEMEM.\n\nSigned-off-by: Daniel Kiper \u003cdkiper@net-space.pl\u003e\nAcked-by: 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": "bf4e8902ee5080f5d2c810b639e7e778c8082b52",
      "tree": "ab60f46992c322d1f440876ac3f444e394628173",
      "parents": [
        "a3bc42f584cf9024580adeb4031d4202dac05858"
      ],
      "author": {
        "name": "Daniel Kiper",
        "email": "dkiper@net-space.pl",
        "time": "Tue May 24 17:12:32 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:28 2011 -0700"
      },
      "message": "mm: enable set_page_section() only if CONFIG_SPARSEMEM and !CONFIG_SPARSEMEM_VMEMMAP\n\nset_page_section() is meaningful only in CONFIG_SPARSEMEM and\n!CONFIG_SPARSEMEM_VMEMMAP context.  Move it to proper place and amend\naccordingly functions which are using it.\n\nSigned-off-by: Daniel Kiper \u003cdkiper@net-space.pl\u003e\nAcked-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nAcked-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": "1495f230fa7750479c79e3656286b9183d662077",
      "tree": "e5e233bb9fe1916ccc7281e7dcc71b1572fb22c5",
      "parents": [
        "a09ed5e00084448453c8bada4dcd31e5fbfc2f21"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:26 2011 -0700"
      },
      "message": "vmscan: change shrinker API by passing shrink_control struct\n\nChange each shrinker\u0027s API by consolidating the existing parameters into\nshrink_control struct.  This will simplify any further features added w/o\ntouching each file of shrinker.\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: fix warning]\n[kosaki.motohiro@jp.fujitsu.com: fix up new shrinker API]\n[akpm@linux-foundation.org: fix xfs warning]\n[akpm@linux-foundation.org: update gfs2]\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@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": "a09ed5e00084448453c8bada4dcd31e5fbfc2f21",
      "tree": "493f5f2a93efb080cdcc28e793cbcfc7999e66eb",
      "parents": [
        "7b1de5868b124d8f399d8791ed30a9b679d64d4d"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:25 2011 -0700"
      },
      "message": "vmscan: change shrink_slab() interfaces by passing shrink_control\n\nConsolidate the existing parameters to shrink_slab() into a new\nshrink_control struct.  This is needed later to pass the same struct to\nshrinkers.\n\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\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": "a238ab5b0239575c179f4976064192c3f7409dad",
      "tree": "bed3d186bee49318e1984eeac489a614ad6acb1b",
      "parents": [
        "de03c72cfce5b263a674d04348b58475ec50163c"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave@linux.vnet.ibm.com",
        "time": "Tue May 24 17:12:16 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:21 2011 -0700"
      },
      "message": "mm: break out page allocation warning code\n\nThis originally started as a simple patch to give vmalloc() some more\nverbose output on failure on top of the plain page allocator messages.\nJohannes suggested that it might be nicer to lead with the vmalloc() info\n_before_ the page allocator messages.\n\nBut, I do think there\u0027s a lot of value in what __alloc_pages_slowpath()\ndoes with its filtering and so forth.\n\nThis patch creates a new function which other allocators can call instead\nof relying on the internal page allocator warnings.  It also gives this\nfunction private rate-limiting which separates it from other\nprintk_ratelimit() users.\n\nSigned-off-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97a894136f29802da19a15541de3c019e1ca147e",
      "tree": "1fd3f92ba92a37d5d8527a1f41458091d0a944dc",
      "parents": [
        "e4c70a6629f9c74c4b0de258a3951890e9047c82"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:04 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:17 2011 -0700"
      },
      "message": "mm: Remove i_mmap_lock lockbreak\n\nHugh says:\n \"The only significant loser, I think, would be page reclaim (when\n  concurrent with truncation): could spin for a long time waiting for\n  the i_mmap_mutex it expects would soon be dropped? \"\n\nCounter points:\n - cpu contention makes the spin stop (need_resched())\n - zap pages should be freeing pages at a higher rate than reclaim\n   ever can\n\nI think the simplification of the truncate code is definitely worth it.\n\nEffectively reverts: 2aa15890f3c (\"mm: prevent concurrent\nunmap_mapping_range() on the same inode\") and takes out the code that\ncaused its problem.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@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": "d16dfc550f5326a4000f3322582a7c05dec91d7a",
      "tree": "8ee963542705cbf2187777f1d3f2b209cbda827a",
      "parents": [
        "d05f3169c0fbca16132ec7c2be71685c6de638b5"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:11:45 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:12 2011 -0700"
      },
      "message": "mm: mmu_gather rework\n\nRework the existing mmu_gather infrastructure.\n\nThe direct purpose of these patches was to allow preemptible mmu_gather,\nbut even without that I think these patches provide an improvement to the\nstatus quo.\n\nThe first 9 patches rework the mmu_gather infrastructure.  For review\npurpose I\u0027ve split them into generic and per-arch patches with the last of\nthose a generic cleanup.\n\nThe next patch provides generic RCU page-table freeing, and the followup\nis a patch converting s390 to use this.  I\u0027ve also got 4 patches from\nDaveM lined up (not included in this series) that uses this to implement\ngup_fast() for sparc64.\n\nThen there is one patch that extends the generic mmu_gather batching.\n\nAfter that follow the mm preemptibility patches, these make part of the mm\na lot more preemptible.  It converts i_mmap_lock and anon_vma-\u003elock to\nmutexes which together with the mmu_gather rework makes mmu_gather\npreemptible as well.\n\nMaking i_mmap_lock a mutex also enables a clean-up of the truncate code.\n\nThis also allows for preemptible mmu_notifiers, something that XPMEM I\nthink wants.\n\nFurthermore, it removes the new and universially detested unmap_mutex.\n\nThis patch:\n\nRemove the first obstacle towards a fully preemptible mmu_gather.\n\nThe current scheme assumes mmu_gather is always done with preemption\ndisabled and uses per-cpu storage for the page batches.  Change this to\ntry and allocate a page for batching and in case of failure, use a small\non-stack array to make some progress.\n\nPreemptible mmu_gather is desired in general and usable once i_mmap_lock\nbecomes a mutex.  Doing it before the mutex conversion saves us from\nhaving to rework the code by moving the mmu_gather bits inside the\npte_lock.\n\nAlso avoid flushing the tlb batches from under the pte lock, this is\nuseful even without the i_mmap_lock conversion as it significantly reduces\npte lock hold times.\n\n[akpm@linux-foundation.org: fix comment tpyo]\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "d05f3169c0fbca16132ec7c2be71685c6de638b5"
}
