)]}'
{
  "log": [
    {
      "commit": "25ca1d6c02fe1c6d90d918867ef670d323725458",
      "tree": "de1709dd1dc7e0b9e9bd91840beb02f12e56b7e0",
      "parents": [
        "e6223a3b19421e3a8df1352d21fd0d71093f44ae"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Tue Oct 26 14:21:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: wrap get_locked_pte() using __cond_lock()\n\nThe get_locked_pte() conditionally grabs \u0027ptl\u0027 in case of returning\nnon-NULL.  This leads sparse to complain about context imbalance.  Rename\nand wrap it using __cond_lock() to make sparse happy.\n\nSigned-off-by: 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": "d065bd810b6deb67d4897a14bfe21f8eb526ba99",
      "tree": "f58c59075732ec4ccba336278c9bdc7ff61bef94",
      "parents": [
        "b522c94da5d9cbc73f708be5e530ebc3bbd4a031"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Tue Oct 26 14:21:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:09 2010 -0700"
      },
      "message": "mm: retry page fault when blocking on disk transfer\n\nThis change reduces mmap_sem hold times that are caused by waiting for\ndisk transfers when accessing file mapped VMAs.\n\nIt introduces the VM_FAULT_ALLOW_RETRY flag, which indicates that the call\nsite wants mmap_sem to be released if blocking on a pending disk transfer.\nIn that case, filemap_fault() returns the VM_FAULT_RETRY status bit and\ndo_page_fault() will then re-acquire mmap_sem and retry the page fault.\n\nIt is expected that the retry will hit the same page which will now be\ncached, and thus it will complete with a low mmap_sem hold time.\n\nTests:\n\n- microbenchmark: thread A mmaps a large file and does random read accesses\n  to the mmaped area - achieves about 55 iterations/s. Thread B does\n  mmap/munmap in a loop at a separate location - achieves 55 iterations/s\n  before, 15000 iterations/s after.\n\n- We are seeing related effects in some applications in house, which show\n  significant performance regressions when running without this change.\n\n[akpm@linux-foundation.org: fix warning \u0026 crash]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \u003clinux-arch@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": "bce54bbfde07e8b300f39dae14756c12a6ceca65",
      "tree": "3256aeb02e34120b65a79bf4118e91969d933fca",
      "parents": [
        "79da826aee6a10902ef411bc65864bd02102fa83"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Tue Oct 26 14:21:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:07 2010 -0700"
      },
      "message": "mm: fix typo in mm.h when NODE_NOT_IN_PAGE_FLAGS\n\nNODE_NOT_IN_PAGE_FLAGS is defined in mm.h when the node information is not\nstored in the page flags bitmap.\n\nUnfortunately, there\u0027s a typo in one of the checks for it.  This patch\nfixes it (s/NODE_NOT_IN_PAGEFLAGS/NODE_NOT_IN_PAGE_FLAGS/).  Since this\nhas been around for ages, I doubt it\u0027s been causing any serious problems.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f629d1c9bd0dbc44a6c4f9a4a67d1646c42bfc6f",
      "tree": "22ac36b494b40e17bfa68e85a094b9cc4b2f6093",
      "parents": [
        "0def08e3acc2c9c934e4671487029aed52202d42"
      ],
      "author": {
        "name": "Michael Rubin",
        "email": "mrubin@google.com",
        "time": "Tue Oct 26 14:21:33 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "mm: add account_page_writeback()\n\nTo help developers and applications gain visibility into writeback\nbehaviour this patch adds two counters to /proc/vmstat.\n\n  # grep nr_dirtied /proc/vmstat\n  nr_dirtied 3747\n  # grep nr_written /proc/vmstat\n  nr_written 3618\n\nThese entries allow user apps to understand writeback behaviour over time\nand learn how it is impacting their performance.  Currently there is no\nway to inspect dirty and writeback speed over time.  It\u0027s not possible for\nnr_dirty/nr_writeback.\n\nThese entries are necessary to give visibility into writeback behaviour.\nWe have /proc/diskstats which lets us understand the io in the block\nlayer.  We have blktrace for more in depth understanding.  We have\ne2fsprogs and debugsfs to give insight into the file systems behaviour,\nbut we don\u0027t offer our users the ability understand what writeback is\ndoing.  There is no way to know how active it is over the whole system, if\nit\u0027s falling behind or to quantify it\u0027s efforts.  With these values\nexported users can easily see how much data applications are sending\nthrough writeback and also at what rates writeback is processing this\ndata.  Comparing the rates of change between the two allow developers to\nsee when writeback is not able to keep up with incoming traffic and the\nrate of dirty memory being sent to the IO back end.  This allows folks to\nunderstand their io workloads and track kernel issues.  Non kernel\nengineers at Google often use these counters to solve puzzling performance\nproblems.\n\nPatch #4 adds a pernode vmstat file with nr_dirtied and nr_written\n\nPatch #5 add writeback thresholds to /proc/vmstat\n\nCurrently these values are in debugfs. But they should be promoted to\n/proc since they are useful for developers who are writing databases\nand file servers and are not debugging the kernel.\n\nThe output is as below:\n\n # grep threshold /proc/vmstat\n nr_pages_dirty_threshold 409111\n nr_pages_dirty_background_threshold 818223\n\nThis patch:\n\nThis allows code outside of the mm core to safely manipulate page\nwriteback state and not worry about the other accounting.  Not using these\nroutines means that some code will lose track of the accounting and we get\nbugs.\n\nModify nilfs2 to use interface.\n\nSigned-off-by: Michael Rubin \u003cmrubin@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: KONISHI Ryusuke \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nCc: Jiro SEKIBA \u003cjir@unicus.jp\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46e387bbd82d438b9131e237e6e2cb55a825da49",
      "tree": "414948afd6b4d63c6ea8cc79ce022128bc1bf2eb",
      "parents": [
        "e9d08567ef72a2d0fb9b14dded386352d3136442",
        "3ef8fd7f720fc4f462fcdcae2fcde6f1c0536bfe"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 22 17:40:48 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 22 17:40:48 2010 +0200"
      },
      "message": "Merge branch \u0027hwpoison-hugepages\u0027 into hwpoison\n\nConflicts:\n\tmm/memory-failure.c\n"
    },
    {
      "commit": "aa50d3a7aa8147b9e14dc9d5972a5d2359db4ef8",
      "tree": "68fae5060333dcc24c17e9dd00a87bd760d883e9",
      "parents": [
        "6f39ce056ab2ab2d29b2fae4aed61ed0b485972f"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Oct 06 21:45:00 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:32:46 2010 +0200"
      },
      "message": "Encode huge page size for VM_FAULT_HWPOISON errors\n\nThis fixes a problem introduced with the hugetlb hwpoison handling\n\nThe user space SIGBUS signalling wants to know the size of the hugepage\nthat caused a HWPOISON fault.\n\nUnfortunately the architecture page fault handlers do not have easy\naccess to the struct page.\n\nPass the information out in the fault error code instead.\n\nI added a separate VM_FAULT_HWPOISON_LARGE bit for this case and encode\nthe hpage index in some free upper bits of the fault code. The small\npage hwpoison keeps stays with the VM_FAULT_HWPOISON name to minimize\nchanges.\n\nAlso add code to hugetlb.h to convert that index into a page shift.\n\nWill be used in a further patch.\n\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: fengguang.wu@intel.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "153db80f8cf74e8700cac96305b6c0b92918f17c",
      "tree": "c2afb28e7b3f4fbf0aacd9edd39d7f895321ca0c",
      "parents": [
        "5fd03ddab7fdbc44bfb2d183a4531c26a8dbca5a",
        "cb655d0f3d57c23db51b981648e452988c0223f9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 08 09:14:51 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 08 09:15:00 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc7\u0027 into core/memblock\n\nMerge reason: Update from -rc3 to -rc7.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "39aa3cb3e8250db9188a6f1e3fb62ffa1a717678",
      "tree": "266640c10436e9bda9bc283fbe5db22761a7cc7c",
      "parents": [
        "26a94e81ded0fcdc0bf96b5fea7343311f1a220b"
      ],
      "author": {
        "name": "Stefan Bader",
        "email": "stefan.bader@canonical.com",
        "time": "Tue Aug 31 15:52:27 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 09 09:05:06 2010 -0700"
      },
      "message": "mm: Move vma_stack_continue into mm.h\n\nSo it can be used by all that need to check for that.\n\nSigned-off-by: Stefan Bader \u003cstefan.bader@canonical.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "daab7fc734a53fdeaf844b7c03053118ad1769da",
      "tree": "575deb3cdcc6dda562acaed6f7c29bc81ae01cf2",
      "parents": [
        "774ea0bcb27f57b6fd521b3b6c43237782fed4b9",
        "2bfc96a127bc1cc94d26bfaa40159966064f9c8c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 31 09:45:21 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Aug 31 09:45:46 2010 +0200"
      },
      "message": "Merge commit \u0027v2.6.36-rc3\u0027 into x86/memblock\n\nConflicts:\n\tarch/x86/kernel/trampoline.c\n\tmm/memblock.c\n\nMerge reason: Resolve the conflicts, update to latest upstream.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bad849b3dc0fae1297c8d47f846f8d202a6145ed",
      "tree": "d3802e46cbda7f6df30a9b0378e15a8343572a19",
      "parents": [
        "0a3b6e452b403f6e0cf3000da87b19e0fd9c4ba3"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Aug 26 16:00:34 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 28 14:01:03 2010 -0700"
      },
      "message": "NOMMU: Stub out vm_get_page_prot() if there\u0027s no MMU\n\nStub out vm_get_page_prot() if there\u0027s no MMU.\n\nThis was added by commit 804af2cf6e7a (\"[AGPGART] remove private page\nprotection map\") and is used in commit c07fbfd17e61 (\"fbmem: VM_IO set,\nbut not propagated\") in the fbmem video driver, but the function doesn\u0027t\nexist on NOMMU, resulting in an undefined symbol at link time.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nReviewed-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edbe7d23b4482e7f33179290bcff3b1feae1c5f3",
      "tree": "2bf55fc2cb94e32fdd79018e9e04b55cbe8d49d9",
      "parents": [
        "88ba088c18457caaf8d2e5f8d36becc731a3d4f6"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Aug 25 13:39:16 2010 -0700"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Aug 27 11:10:54 2010 -0700"
      },
      "message": "memblock: Add find_memory_core_early()\n\nAccording to node range in early_node_map[] with __memblock_find_in_range\nto find free range.\n\nWill be used by memblock_x86_find_in_range_node()\n\nmemblock_x86_find_in_range_node will be used to find right buffer for NODE_DATA\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "8ca3eb08097f6839b2206e2242db4179aee3cfb3",
      "tree": "32b9f033230d615d248fa0bbfa1a0c644a422ed8",
      "parents": [
        "9559fcdbff4f93d29af04478bbc48294519424f5"
      ],
      "author": {
        "name": "Luck, Tony",
        "email": "tony.luck@intel.com",
        "time": "Tue Aug 24 11:44:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 24 12:13:20 2010 -0700"
      },
      "message": "guard page for stacks that grow upwards\n\npa-risc and ia64 have stacks that grow upwards. Check that\nthey do not run into other mappings. By making VM_GROWSUP\n0x0 on architectures that do not ever use it, we can avoid\nsome unpleasant #ifdefs in check_stack_guard_page().\n\nSigned-off-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f248c9c251c60af3403902b26e08de43964ea0b",
      "tree": "6d3328e72a7e4015a64017eb30be18095c6a3c64",
      "parents": [
        "f6cec0ae58c17522a7bc4e2f39dae19f199ab534",
        "dca332528bc69e05f67161e1ed59929633d5e63d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Aug 10 11:26:52 2010 -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: (96 commits)\n  no need for list_for_each_entry_safe()/resetting with superblock list\n  Fix sget() race with failing mount\n  vfs: don\u0027t hold s_umount over close_bdev_exclusive() call\n  sysv: do not mark superblock dirty on remount\n  sysv: do not mark superblock dirty on mount\n  btrfs: remove junk sb_dirt change\n  BFS: clean up the superblock usage\n  AFFS: wait for sb synchronization when needed\n  AFFS: clean up dirty flag usage\n  cifs: truncate fallout\n  mbcache: fix shrinker function return value\n  mbcache: Remove unused features\n  add f_flags to struct statfs(64)\n  pass a struct path to vfs_statfs\n  update VFS documentation for method changes.\n  All filesystems that need invalidate_inode_buffers() are doing that explicitly\n  convert remaining -\u003eclear_inode() to -\u003eevict_inode()\n  Make -\u003edrop_inode() just return whether inode needs to be dropped\n  fs/inode.c:clear_inode() is gone\n  fs/inode.c:evict() doesn\u0027t care about delete vs. non-delete paths now\n  ...\n\nFix up trivial conflicts in fs/nilfs2/super.c\n"
    },
    {
      "commit": "2c27c65ed0696f0b5df2dad2cf6462d72164d547",
      "tree": "7d9036e3dea98938f7fd7074366ee73929e9b2e5",
      "parents": [
        "db78b877f7744bec4a9d9f9e7d10da3931d7cd39"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Fri Jun 04 11:30:04 2010 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Aug 09 16:47:39 2010 -0400"
      },
      "message": "check ATTR_SIZE contraints in inode_change_ok\n\nMake sure we check the truncate constraints early on in -\u003esetattr by adding\nthose checks to inode_change_ok.  Also clean up and document inode_change_ok\nto make this obvious.\n\nAs a fallout we don\u0027t have to call inode_newsize_ok from simple_setsize and\nsimplify it down to a truncate_setsize which doesn\u0027t return an error.  This\nsimplifies a lot of setattr implementations and means we use truncate_setsize\nalmost everywhere.  Get rid of fat_setsize now that it\u0027s trivial and mark\next2_setsize static to make the calling convention obvious.\n\nKeep the inode_newsize_ok in vmtruncate for now as all callers need an\naudit for its removal anyway.\n\nNote: setattr code in ecryptfs doesn\u0027t call inode_change_ok at all and\nneeds a deeper audit, but that is left for later.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bf998156d24bcb127318ad5bf531ac3bdfcd6449",
      "tree": "616c19474d7cb626ff9eebc54f6753563a4322cd",
      "parents": [
        "540ad6b62b3a188a53b51cac81d8a60d40e29fbd"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Mon May 31 14:28:19 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:35:26 2010 +0300"
      },
      "message": "KVM: Avoid killing userspace through guest SRAO MCE on unmapped pages\n\nIn common cases, guest SRAO MCE will cause corresponding poisoned page\nbe un-mapped and SIGBUS be sent to QEMU-KVM, then QEMU-KVM will relay\nthe MCE to guest OS.\n\nBut it is reported that if the poisoned page is accessed in guest\nafter unmapping and before MCE is relayed to guest OS, userspace will\nbe killed.\n\nThe reason is as follows. Because poisoned page has been un-mapped,\nguest access will cause guest exit and kvm_mmu_page_fault will be\ncalled. kvm_mmu_page_fault can not get the poisoned page for fault\naddress, so kernel and user space MMIO processing is tried in turn. In\nuser MMIO processing, poisoned page is accessed again, then userspace\nis killed by force_sig_info.\n\nTo fix the bug, kvm_mmu_page_fault send HWPOISON signal to QEMU-KVM\nand do not try kernel and user space MMIO processing for poisoned\npage.\n\n[xiao: fix warning introduced by avi]\n\nReported-by: Max Asbock \u003cmasbock@linux.vnet.ibm.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@cn.fujitsu.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\u003e\n"
    },
    {
      "commit": "7f8275d0d660c146de6ee3017e1e2e594c49e820",
      "tree": "884db927118b44102750b5168ee36ef4b8b5cb4e",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "committer": {
        "name": "Dave Chinner",
        "email": "david@fromorbit.com",
        "time": "Mon Jul 19 14:56:17 2010 +1000"
      },
      "message": "mm: add context argument to shrinker callback\n\nThe current shrinker implementation requires the registered callback\nto have global state to work from. This makes it difficult to shrink\ncaches that are not global (e.g. per-filesystem caches). Pass the shrinker\nstructure to the callback so that users can embed the shrinker structure\nin the context the shrinker needs to operate on and get back to it in the\ncallback via container_of().\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\n"
    },
    {
      "commit": "c6f6b596a5a73e63e5e930c414375c0c389199ab",
      "tree": "900d4b3a6d198edc2045511b5b8d6001755bcfbf",
      "parents": [
        "4eaf3f64397c3db3c5785eee508270d62a9fabd9"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@tilera.com",
        "time": "Mon May 24 14:32:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:07:02 2010 -0700"
      },
      "message": "mm: make lowmem_page_address() use PFN_PHYS() for improved portability\n\nThis ensures that platforms with lowmem PAs above 32 bits work correctly\nby avoiding truncating the PA during a left shift.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Barry Song \u003c21cnbao@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": "748446bb6b5a9390b546af38ec899c868a9dbcf0",
      "tree": "4c27d0805a5e094b39ff938ad60dd270b953a79f",
      "parents": [
        "c175a0ce7584e5b498fff8cbdb9aa7912aa9fbba"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: compaction: memory compaction core\n\nThis patch is the core of a mechanism which compacts memory in a zone by\nrelocating movable pages towards the end of the zone.\n\nA single compaction run involves a migration scanner and a free scanner.\nBoth scanners operate on pageblock-sized areas in the zone.  The migration\nscanner starts at the bottom of the zone and searches for all movable\npages within each area, isolating them onto a private list called\nmigratelist.  The free scanner starts at the top of the zone and searches\nfor suitable areas and consumes the free pages within making them\navailable for the migration scanner.  The pages isolated for migration are\nthen migrated to the newly isolated free pages.\n\n[aarcange@redhat.com: Fix unsafe optimisation]\n[mel@csn.ul.ie: do not schedule work on other CPUs for compaction]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: 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": "a8bef8ff6ea15fa4c67433cab0f5f3484574ef7c",
      "tree": "3ea9c122e02f523379d4560ee2134124d097895c",
      "parents": [
        "e9e96b39f932a065e14f5d5bab0797ae261d03b5"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Mon May 24 14:32:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue May 25 08:06:59 2010 -0700"
      },
      "message": "mm: migration: avoid race between shift_arg_pages() and rmap_walk() during migration by not migrating temporary stacks\n\nPage migration requires rmap to be able to find all ptes mapping a page\nat all times, otherwise the migration entry can be instantiated, but it\nis possible to leave one behind if the second rmap_walk fails to find\nthe page.  If this page is later faulted, migration_entry_to_page() will\ncall BUG because the page is locked indicating the page was migrated by\nthe migration PTE not cleaned up. For example\n\n  kernel BUG at include/linux/swapops.h:105!\n  invalid opcode: 0000 [#1] PREEMPT SMP\n  ...\n  Call Trace:\n   [\u003cffffffff810e951a\u003e] handle_mm_fault+0x3f8/0x76a\n   [\u003cffffffff8130c7a2\u003e] do_page_fault+0x44a/0x46e\n   [\u003cffffffff813099b5\u003e] page_fault+0x25/0x30\n   [\u003cffffffff8114de33\u003e] load_elf_binary+0x152a/0x192b\n   [\u003cffffffff8111329b\u003e] search_binary_handler+0x173/0x313\n   [\u003cffffffff81114896\u003e] do_execve+0x219/0x30a\n   [\u003cffffffff8100a5c6\u003e] sys_execve+0x43/0x5e\n   [\u003cffffffff8100320a\u003e] stub_execve+0x6a/0xc0\n  RIP  [\u003cffffffff811094ff\u003e] migration_entry_wait+0xc1/0x129\n\nThere is a race between shift_arg_pages and migration that triggers this\nbug.  A temporary stack is setup during exec and later moved.  If\nmigration moves a page in the temporary stack and the VMA is then removed\nbefore migration completes, the migration PTE may not be found leading to\na BUG when the stack is faulted.\n\nThis patch causes pages within the temporary stack during exec to be\nskipped by migration.  It does this by marking the VMA covering the\ntemporary stack with an otherwise impossible combination of VMA flags.\nThese flags are cleared when the temporary stack is moved to its final\nlocation.\n\n[kamezawa.hiroyu@jp.fujitsu.com: idea for having migration skip temporary stacks]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ca7e0c612005937a4a5a75d3fed90459993de65c",
      "tree": "b574fc0f0189b52ffc87ba20c418228db556faa1",
      "parents": [
        "8141d0050d76e5695011b5ab577ec66fb51a998c",
        "f5284e7635787224dda1a2bf82a4c56b1c75671f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 13:36:36 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Apr 08 13:37:18 2010 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/core\n\nSemantic conflict: arch/x86/kernel/cpu/perf_event_intel_ds.c\n\nMerge reason: pick up latest fixes, fix the conflict\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "116354d177ba2da37e91cf884e3d11e67f825efd",
      "tree": "150227e8a5c9ce8b6dd9333593ed513c8c012686",
      "parents": [
        "57119c34e53bbb8d244c3ff1335ef5145768538f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Tue Apr 06 14:35:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 07 08:38:04 2010 -0700"
      },
      "message": "pagemap: fix pfn calculation for hugepage\n\nWhen we look into pagemap using page-types with option -p, the value of\npfn for hugepages looks wrong (see below.) This is because pte was\nevaluated only once for one vma although it should be updated for each\nhugepage.  This patch fixes it.\n\n  $ page-types -p 3277 -Nl -b huge\n  voffset   offset  len     flags\n  7f21e8a00 11e400  1       ___U___________H_G________________\n  7f21e8a01 11e401  1ff     ________________TG________________\n               ^^^\n  7f21e8c00 11e400  1       ___U___________H_G________________\n  7f21e8c01 11e401  1ff     ________________TG________________\n               ^^^\n\nOne hugepage contains 1 head page and 511 tail pages in x86_64 and each\ntwo lines represent each hugepage.  Voffset and offset mean virtual\naddress and physical address in the page unit, respectively.  The\ndifferent hugepages should not have the same offset value.\n\nWith this patch applied:\n\n  $ page-types -p 3386 -Nl -b huge\n  voffset   offset   len    flags\n  7fec7a600 112c00   1      ___UD__________H_G________________\n  7fec7a601 112c01   1ff    ________________TG________________\n               ^^^\n  7fec7a800 113200   1      ___UD__________H_G________________\n  7fec7a801 113201   1ff    ________________TG________________\n               ^^^\n               OK\n\nMore info:\n\n- This patch modifies walk_page_range()\u0027s hugepage walker.  But the\n  change only affects pagemap_read(), which is the only caller of hugepage\n  callback.\n\n- Without this patch, hugetlb_entry() callback is called per vma, that\n  doesn\u0027t match the natural expectation from its name.\n\n- With this patch, hugetlb_entry() is called per hugepte entry and the\n  callback can become much simpler.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: 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": "faa4602e47690fb11221e00f9b9697c8dc0d4b19",
      "tree": "af667d1cdff7dc63b6893ee3f27a1f2503229ed1",
      "parents": [
        "7c5ecaf7666617889f337296c610815b519abfa9"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Mar 25 14:51:50 2010 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 26 11:33:55 2010 +0100"
      },
      "message": "x86, perf, bts, mm: Delete the never used BTS-ptrace code\n\nSupport for the PMU\u0027s BTS features has been upstreamed in\nv2.6.32, but we still have the old and disabled ptrace-BTS,\nas Linus noticed it not so long ago.\n\nIt\u0027s buggy: TIF_DEBUGCTLMSR is trampling all over that MSR without\nregard for other uses (perf) and doesn\u0027t provide the flexibility\nneeded for perf either.\n\nIts users are ptrace-block-step and ptrace-bts, since ptrace-bts\nwas never used and ptrace-block-step can be implemented using a\nmuch simpler approach.\n\nSo axe all 3000 lines of it. That includes the *locked_memory*()\nAPIs in mm/mlock.c as well.\n\nReported-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c20100325135413.938004390@chello.nl\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "718a38211bf4375c0a1efad3afbc5dbaef5d33f9",
      "tree": "ade6815c619705f0342f98cc8bb39fa3309c81a6",
      "parents": [
        "9b3a6549b2602ca30f58715a0071e29f9898cae9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Mar 10 15:20:43 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:28 2010 -0800"
      },
      "message": "mm: introduce dump_page() and print symbolic flag names\n\n- introduce dump_page() to print the page info for debugging some error\n  condition.\n\n- convert three mm users: bad_page(), print_bad_pte() and memory offline\n  failure.\n\n- print an extra field: the symbolic names of page-\u003eflags\n\nExample dump_page() output:\n\n[  157.521694] page:ffffea0000a7cba8 count:2 mapcount:1 mapping:ffff88001c901791 index:0x147\n[  157.525570] page flags: 0x100000000100068(uptodate|lru|active|swapbacked)\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Alex Chiang \u003cachiang@hp.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Mel Gorman \u003cmel@linux.vnet.ibm.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53bddb4e9f3f53df02a783751984ddeade71b085",
      "tree": "74b9dfa0b61d6455a006beb2de20310aee0bc28b",
      "parents": [
        "936ed49a540e2dce645da27e7e4032b24310a8e4"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Mar 10 15:20:38 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 12 15:52:28 2010 -0800"
      },
      "message": "nommu: fix build breakage\n\nCommit 34e55232e59f7b19050267a05ff1226e5cd122a5 (\"mm: avoid false sharing\nof mm_counter\") added sync_mm_rss() for syncing loosely accounted rss\ncounters.  It\u0027s for CONFIG_MMU but sync_mm_rss is called even in NOMMU\nenviroment (kerne/exit.c, fs/exec.c).  Above commit doesn\u0027t handle it\nwell.\n\nThis patch changes\n  SPLIT_RSS_COUNTING depends on SPLIT_PTLOCKS \u0026\u0026 CONFIG_MMU\n\nAnd for avoid unnecessary function calls, sync_mm_rss changed to be inlined\nnoop function in header file.\n\nReported-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Mike Frysinger \u003cvapier@gentoo.org\u003e\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc148a5f7e0532750c312385c7ee9fa3e9311f34",
      "tree": "dfd132ed225a113f73c61f5e2018e5644bb3f677",
      "parents": [
        "c44b674323f4a2480dbeb65d4b487fa5f06f49e0"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:10 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: remove VM_LOCK_RMAP code\n\nWhen a VMA is in an inconsistent state during setup or teardown, the worst\nthat can happen is that the rmap code will not be able to find the page.\n\nThe mapping is in the process of being torn down (PTEs just got\ninvalidated by munmap), or set up (no PTEs have been instantiated yet).\n\nIt is also impossible for the rmap code to follow a pointer to an already\nfreed VMA, because the rmap code holds the anon_vma-\u003elock, which the VMA\nteardown code needs to take before the VMA is removed from the anon_vma\nchain.\n\nHence, we should not need the VM_LOCK_RMAP locking at all.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Andrea Arcangeli \u003caarcange@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": "5beb49305251e5669852ed541e8e2f2f7696c53e",
      "tree": "46457450a22f23938b24904aeba5d4ada2f53b20",
      "parents": [
        "648bcc771145172a14bc35eeb849ed08f6aa4f1e"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Fri Mar 05 13:42:07 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:26 2010 -0800"
      },
      "message": "mm: change anon_vma linking to fix multi-process server scalability issue\n\nThe old anon_vma code can lead to scalability issues with heavily forking\nworkloads.  Specifically, each anon_vma will be shared between the parent\nprocess and all its child processes.\n\nIn a workload with 1000 child processes and a VMA with 1000 anonymous\npages per process that get COWed, this leads to a system with a million\nanonymous pages in the same anon_vma, each of which is mapped in just one\nof the 1000 processes.  However, the current rmap code needs to walk them\nall, leading to O(N) scanning complexity for each page.\n\nThis can result in systems where one CPU is walking the page tables of\n1000 processes in page_referenced_one, while all other CPUs are stuck on\nthe anon_vma lock.  This leads to catastrophic failure for a benchmark\nlike AIM7, where the total number of processes can reach in the tens of\nthousands.  Real workloads are still a factor 10 less process intensive\nthan AIM7, but they are catching up.\n\nThis patch changes the way anon_vmas and VMAs are linked, which allows us\nto associate multiple anon_vmas with a VMA.  At fork time, each child\nprocess gets its own anon_vmas, in which its COWed pages will be\ninstantiated.  The parents\u0027 anon_vma is also linked to the VMA, because\nnon-COWed pages could be present in any of the children.\n\nThis reduces rmap scanning complexity to O(1) for the pages of the 1000\nchild processes, with O(N) complexity for at most 1/N pages in the system.\n This reduces the average scanning cost in heavily forking workloads from\nO(N) to 2.\n\nThe only real complexity in this patch stems from the fact that linking a\nVMA to anon_vmas now involves memory allocations.  This means vma_adjust\ncan fail, if it needs to attach a VMA to anon_vma structures.  This in\nturn means error handling needs to be added to the calling functions.\n\nA second source of complexity is that, because there can be multiple\nanon_vmas, the anon_vma linking in vma_adjust can no longer be done under\n\"the\" anon_vma lock.  To prevent the rmap code from walking up an\nincomplete VMA, this patch introduces the VM_LOCK_RMAP VMA flag.  This bit\nflag uses the same slot as the NOMMU VM_MAPPED_COPY, with an ifdef in mm.h\nto make sure it is impossible to compile a kernel that needs both symbolic\nvalues for the same bitflag.\n\nSome test results:\n\nWithout the anon_vma changes, when AIM7 hits around 9.7k users (on a test\nbox with 16GB RAM and not quite enough IO), the system ends up running\n\u003e99% in system time, with every CPU on the same anon_vma lock in the\npageout code.\n\nWith these changes, AIM7 hits the cross-over point around 29.7k users.\nThis happens with ~99% IO wait time, there never seems to be any spike in\nsystem time.  The anon_vma lock contention appears to be resolved.\n\n[akpm@linux-foundation.org: cleanups]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Larry Woodman \u003clwoodman@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34e55232e59f7b19050267a05ff1226e5cd122a5",
      "tree": "6b94e776e87d2a2fe1ceca7c5606901575323900",
      "parents": [
        "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:40 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:24 2010 -0800"
      },
      "message": "mm: avoid false sharing of mm_counter\n\nConsidering the nature of per mm stats, it\u0027s the shared object among\nthreads and can be a cache-miss point in the page fault path.\n\nThis patch adds per-thread cache for mm_counter.  RSS value will be\ncounted into a struct in task_struct and synchronized with mm\u0027s one at\nevents.\n\nNow, in this patch, the event is the number of calls to handle_mm_fault.\nPer-thread value is added to mm at each 64 calls.\n\n rough estimation with small benchmark on parallel thread (2threads) shows\n [before]\n     4.5 cache-miss/faults\n [after]\n     4.0 cache-miss/faults\n Anyway, the most contended object is mmap_sem if the number of threads grows.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\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": "d559db086ff5be9bcc259e5aa50bf3d881eaf1d1",
      "tree": "aa968c8a4093234e4623a34c0415bf9d8683671c",
      "parents": [
        "19b629f581320999ddb9f6597051b79cdb53459c"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 05 13:41:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 06 11:26:23 2010 -0800"
      },
      "message": "mm: clean up mm_counter\n\nPresently, per-mm statistics counter is defined by macro in sched.h\n\nThis patch modifies it to\n  - defined in mm.h as inlinf functions\n  - use array instead of macro\u0027s name creation.\n\nThis patch is for reducing patch size in future patch to modify\nimplementation of per-mm counter.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\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": "a626b46e17d0762d664ce471d40bc506b6e721ab",
      "tree": "445f6ac655ea9247d2e27529f23ba02d0991fec0",
      "parents": [
        "c1dcb4bb1e3e16e9baee578d9bb040e5fba1063e",
        "dce46a04d55d6358d2d4ab44a4946a19f9425fe2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 08:15:05 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 08:15:05 2010 -0800"
      },
      "message": "Merge branch \u0027x86-bootmem-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-bootmem-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)\n  early_res: Need to save the allocation name in drop_range_partial()\n  sparsemem: Fix compilation on PowerPC\n  early_res: Add free_early_partial()\n  x86: Fix non-bootmem compilation on PowerPC\n  core: Move early_res from arch/x86 to kernel/\n  x86: Add find_fw_memmap_area\n  Move round_up/down to kernel.h\n  x86: Make 32bit support NO_BOOTMEM\n  early_res: Enhance check_and_double_early_res\n  x86: Move back find_e820_area to e820.c\n  x86: Add find_early_area_size\n  x86: Separate early_res related code from e820.c\n  x86: Move bios page reserve early to head32/64.c\n  sparsemem: Put mem map for one node together.\n  sparsemem: Put usemap for one node together\n  x86: Make 64 bit use early_res instead of bootmem before slab\n  x86: Only call dma32_reserve_bootmem 64bit !CONFIG_NUMA\n  x86: Make early_node_mem get mem \u003e 4 GB if possible\n  x86: Dynamically increase early_res array size\n  x86: Introduce max_early_res and early_res_count\n  ...\n"
    },
    {
      "commit": "0a135ba14d71fb84c691a5386aff5049691fe6d7",
      "tree": "adb1de887dd6839d69d2fc16ffa2a10ff63298fa",
      "parents": [
        "4850f524b2c4c8a4e9f8ef4dd9c7c4afde2f2b2c",
        "a29d8b8e2d811a24bbe49215a0f0c536b72ebc18"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 07:34:18 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 03 07:34:18 2010 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:\n  percpu: add __percpu sparse annotations to what\u0027s left\n  percpu: add __percpu sparse annotations to fs\n  percpu: add __percpu sparse annotations to core kernel subsystems\n  local_t: Remove leftover local.h\n  this_cpu: Remove pageset_notifier\n  this_cpu: Page allocator conversion\n  percpu, x86: Generic inc / dec percpu instructions\n  local_t: Move local.h include to ringbuffer.c and ring_buffer_benchmark.c\n  module: Use this_cpu_xx to dynamically allocate counters\n  local_t: Remove cpu_local_xx macros\n  percpu: refactor the code in pcpu_[de]populate_chunk()\n  percpu: remove compile warnings caused by __verify_pcpu_ptr()\n  percpu: make accessors check for percpu pointer in sparse\n  percpu: add __percpu for sparse.\n  percpu: make access macros universal\n  percpu: remove per_cpu__ prefix.\n"
    },
    {
      "commit": "b7e56edba4b02f2079042c326a8cd72a44635817",
      "tree": "b5042002e9747cd8fb1278d61f86d8b92a74c018",
      "parents": [
        "13ca0fcaa33f6b1984c4111b6ec5df42689fea6f",
        "b0483e78e5c4c9871fc5541875b3bc006846d46b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 17 18:27:37 2010 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 17 18:28:05 2010 +0100"
      },
      "message": "Merge branch \u0027linus\u0027 into x86/mm\n\nx86/mm is on 32-rc4 and missing the spinlock namespace changes which\nare needed for further commits into this topic.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "9bdac914240759457175ac0d6529a37d2820bc4d",
      "tree": "8fb7d26a351d2cd526835f1494ebeb818e988abb",
      "parents": [
        "a4322e1bad91fbca27056fc38d2cbca3f1eae0cf"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:22 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Feb 12 09:42:38 2010 -0800"
      },
      "message": "sparsemem: Put mem map for one node together.\n\nAdd vmemmap_alloc_block_buf for mem map only.\n\nIt will fallback to the old way if it cannot get a block that big.\n\nBefore this patch, when a node have 128g ram installed, memmap are\nsplit into two parts or more.\n[    0.000000]  [ffffea0000000000-ffffea003fffffff] PMD -\u003e [ffff880100600000-ffff88013e9fffff] on node 1\n[    0.000000]  [ffffea0040000000-ffffea006fffffff] PMD -\u003e [ffff88013ec00000-ffff88016ebfffff] on node 1\n[    0.000000]  [ffffea0070000000-ffffea007fffffff] PMD -\u003e [ffff882000600000-ffff8820105fffff] on node 0\n[    0.000000]  [ffffea0080000000-ffffea00bfffffff] PMD -\u003e [ffff882010800000-ffff8820507fffff] on node 0\n[    0.000000]  [ffffea00c0000000-ffffea00dfffffff] PMD -\u003e [ffff882050a00000-ffff8820709fffff] on node 0\n[    0.000000]  [ffffea00e0000000-ffffea00ffffffff] PMD -\u003e [ffff884000600000-ffff8840205fffff] on node 2\n[    0.000000]  [ffffea0100000000-ffffea013fffffff] PMD -\u003e [ffff884020800000-ffff8840607fffff] on node 2\n[    0.000000]  [ffffea0140000000-ffffea014fffffff] PMD -\u003e [ffff884060a00000-ffff8840709fffff] on node 2\n[    0.000000]  [ffffea0150000000-ffffea017fffffff] PMD -\u003e [ffff886000600000-ffff8860305fffff] on node 3\n[    0.000000]  [ffffea0180000000-ffffea01bfffffff] PMD -\u003e [ffff886030800000-ffff8860707fffff] on node 3\n[    0.000000]  [ffffea01c0000000-ffffea01ffffffff] PMD -\u003e [ffff888000600000-ffff8880405fffff] on node 4\n[    0.000000]  [ffffea0200000000-ffffea022fffffff] PMD -\u003e [ffff888040800000-ffff8880707fffff] on node 4\n[    0.000000]  [ffffea0230000000-ffffea023fffffff] PMD -\u003e [ffff88a000600000-ffff88a0105fffff] on node 5\n[    0.000000]  [ffffea0240000000-ffffea027fffffff] PMD -\u003e [ffff88a010800000-ffff88a0507fffff] on node 5\n[    0.000000]  [ffffea0280000000-ffffea029fffffff] PMD -\u003e [ffff88a050a00000-ffff88a0709fffff] on node 5\n[    0.000000]  [ffffea02a0000000-ffffea02bfffffff] PMD -\u003e [ffff88c000600000-ffff88c0205fffff] on node 6\n[    0.000000]  [ffffea02c0000000-ffffea02ffffffff] PMD -\u003e [ffff88c020800000-ffff88c0607fffff] on node 6\n[    0.000000]  [ffffea0300000000-ffffea030fffffff] PMD -\u003e [ffff88c060a00000-ffff88c0709fffff] on node 6\n[    0.000000]  [ffffea0310000000-ffffea033fffffff] PMD -\u003e [ffff88e000600000-ffff88e0305fffff] on node 7\n[    0.000000]  [ffffea0340000000-ffffea037fffffff] PMD -\u003e [ffff88e030800000-ffff88e0707fffff] on node 7\n\nafter patch will get\n[    0.000000]  [ffffea0000000000-ffffea006fffffff] PMD -\u003e [ffff880100200000-ffff88016e5fffff] on node 0\n[    0.000000]  [ffffea0070000000-ffffea00dfffffff] PMD -\u003e [ffff882000200000-ffff8820701fffff] on node 1\n[    0.000000]  [ffffea00e0000000-ffffea014fffffff] PMD -\u003e [ffff884000200000-ffff8840701fffff] on node 2\n[    0.000000]  [ffffea0150000000-ffffea01bfffffff] PMD -\u003e [ffff886000200000-ffff8860701fffff] on node 3\n[    0.000000]  [ffffea01c0000000-ffffea022fffffff] PMD -\u003e [ffff888000200000-ffff8880701fffff] on node 4\n[    0.000000]  [ffffea0230000000-ffffea029fffffff] PMD -\u003e [ffff88a000200000-ffff88a0701fffff] on node 5\n[    0.000000]  [ffffea02a0000000-ffffea030fffffff] PMD -\u003e [ffff88c000200000-ffff88c0701fffff] on node 6\n[    0.000000]  [ffffea0310000000-ffffea037fffffff] PMD -\u003e [ffff88e000200000-ffff88e0701fffff] on node 7\n\n-v2: change buf to vmemmap_buf instead according to Ingo\n     also add CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER according to Ingo\n-v3: according to Andrew, use sizeof(name) instead of hard coded 15\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c1265793639-15071-19-git-send-email-yinghai@kernel.org\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "08677214e318297f228237be0042aac754f48f1d",
      "tree": "6d03424f7e287fcf66136b44512328afb1aeee49",
      "parents": [
        "c252a5bb1f57afb1e336d68085217727ca7b2134"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Wed Feb 10 01:20:20 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Feb 12 09:41:59 2010 -0800"
      },
      "message": "x86: Make 64 bit use early_res instead of bootmem before slab\n\nFinally we can use early_res to replace bootmem for x86_64 now.\n\nStill can use CONFIG_NO_BOOTMEM to enable it or not.\n\n-v2: fix 32bit compiling about MAX_DMA32_PFN\n-v3: folded bug fix from LKML message below\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c4B747239.4070907@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "84abd88a70090cf00f9e45c3a81680874f17626e",
      "tree": "4f58b80057f6e1f5817af1dc33a5458b3dfc9a99",
      "parents": [
        "13ca0fcaa33f6b1984c4111b6ec5df42689fea6f",
        "e28cab42f384745c8a947a9ccd51e4aae52f5d51"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Feb 10 16:55:28 2010 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Feb 10 16:55:28 2010 -0800"
      },
      "message": "Merge remote branch \u0027linus/master\u0027 into x86/bootmem\n"
    },
    {
      "commit": "ab386128f20c44c458a90039ab1bdc265ac474c9",
      "tree": "2ad188744922b1bb951fd10ff50dc04c83acce22",
      "parents": [
        "dbfc196a3cc1a2514ad0737a82f764de23bd65e6",
        "ab658321f32770b903a4426e2a6fae0392757755"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Feb 02 14:38:15 2010 +0900"
      },
      "message": "Merge branch \u0027master\u0027 into percpu\n"
    },
    {
      "commit": "53df8fdc15fb646b0219e43c989c2cdab1ab100c",
      "tree": "fad5e7e19d5d928c14f15fff912941e300a53aad",
      "parents": [
        "e52730071567ec5b6f57e21d6693b112e01e1d0e"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Jan 27 11:06:39 2010 +0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Mon Feb 01 16:58:17 2010 -0800"
      },
      "message": "Move page_is_ram() declaration to mm.h\n\nMove page_is_ram() declaration to mm.h, it makes no sense in \u003clinux/ioport.h\u003e.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nLKML-Reference: \u003c20100127030639.GD8132@localhost\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "7e6608724c640924aad1d556d17df33ebaa6124d",
      "tree": "b2d90646f5ee52f5b7807bbc0abe09db9adbe478",
      "parents": [
        "81759b5b221107488bda99fe7beeb7b734f61133"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Jan 15 17:01:39 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 16 12:15:40 2010 -0800"
      },
      "message": "nommu: fix shared mmap after truncate shrinkage problems\n\nFix a problem in NOMMU mmap with ramfs whereby a shared mmap can happen\nover the end of a truncation.  The problem is that\nramfs_nommu_check_mappings() checks that the reduced file size against the\nVMA tree, but not the vm_region tree.\n\nThe following sequence of events can cause the problem:\n\n\tfd \u003d open(\"/tmp/x\", O_RDWR|O_TRUNC|O_CREAT, 0600);\n\tftruncate(fd, 32 * 1024);\n\ta \u003d mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\tb \u003d mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\tmunmap(a, 32 * 1024);\n\tftruncate(fd, 16 * 1024);\n\tc \u003d mmap(NULL, 32 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\nMapping \u0027a\u0027 creates a vm_region covering 32KB of the file.  Mapping \u0027b\u0027\nsees that the vm_region from \u0027a\u0027 is covering the region it wants and so\nshares it, pinning it in memory.\n\nMapping \u0027a\u0027 then goes away and the file is truncated to the end of VMA\n\u0027b\u0027.  However, the region allocated by \u0027a\u0027 is still in effect, and has\n_not_ been reduced.\n\nMapping \u0027c\u0027 is then created, and because there\u0027s a vm_region covering the\ndesired region, get_unmapped_area() is _not_ called to repeat the check,\nand the mapping is granted, even though the pages from the latter half of\nthe mapping have been discarded.\n\nHowever:\n\n\td \u003d mmap(NULL, 16 * 1024, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);\n\nMapping \u0027d\u0027 should work, and should end up sharing the region allocated by\n\u0027a\u0027.\n\nTo deal with this, we shrink the vm_region struct during the truncation,\nlest do_mmap_pgoff() take it as licence to share the full region\nautomatically without calling the get_unmapped_area() file op again.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99dcc3e5a94ed491fbef402831d8c0bbb267f995",
      "tree": "dd4d2b9e10ab0d4502e4b2a22dfc0a02a3300d7e",
      "parents": [
        "5917dae83cb02dfe74c9167b79e86e6d65183fa3"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Tue Jan 05 15:34:51 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Jan 05 15:34:51 2010 +0900"
      },
      "message": "this_cpu: Page allocator conversion\n\nUse the per cpu allocator functionality to avoid per cpu arrays in struct zone.\n\nThis drastically reduces the size of struct zone for systems with large\namounts of processors and allows placement of critical variables of struct\nzone in one cacheline even on very large systems.\n\nAnother effect is that the pagesets of one processor are placed near one\nanother. If multiple pagesets from different zones fit into one cacheline\nthen additional cacheline fetches can be avoided on the hot paths when\nallocating memory from multiple zones.\n\nBootstrap becomes simpler if we use the same scheme for UP, SMP, NUMA. #ifdefs\nare reduced and we can drop the zone_pcp macro.\n\nHotplug handling is also simplified since cpu alloc can bring up and\nshut down cpu areas for a specific cpu as a whole. So there is no need to\nallocate or free individual pagesets.\n\nV7-V8:\n- Explain chicken egg dilemmna with percpu allocator.\n\nV4-V5:\n- Fix up cases where per_cpu_ptr is called before irq disable\n- Integrate the bootstrap logic that was separate before.\n\ntj: Build failure in pageset_cpuup_callback() due to missing ret\n    variable fixed.\n\nReviewed-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "3981e152864fcc1dbbb564e1f4c0ae11a09639d2",
      "tree": "76c767a9b25e294c3cc8edd9870304b845cabdd9",
      "parents": [
        "aac3d39693529ca538e37ebdb6ed5d6432a697c7",
        "18374d89e5fe96772102f44f535efb1198d9be08"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 19 09:48:14 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Dec 19 09:48:14 2009 -0800"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, irq: Allow 0xff for /proc/irq/[n]/smp_affinity on an 8-cpu system\n  Makefile: Unexport LC_ALL instead of clearing it\n  x86: Fix objdump version check in arch/x86/tools/chkobjdump.awk\n  x86: Reenable TSC sync check at boot, even with NONSTOP_TSC\n  x86: Don\u0027t use POSIX character classes in gen-insn-attr-x86.awk\n  Makefile: set LC_CTYPE, LC_COLLATE, LC_NUMERIC to C\n  x86: Increase MAX_EARLY_RES; insufficient on 32-bit NUMA\n  x86: Fix checking of SRAT when node 0 ram is not from 0\n  x86, cpuid: Add \"volatile\" to asm in native_cpuid()\n  x86, msr: msrs_alloc/free for CONFIG_SMP\u003dn\n  x86, amd: Get multi-node CPU info from NodeId MSR instead of PCI config space\n  x86: Add IA32_TSC_AUX MSR and use it\n  x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers\n  initramfs: add missing decompressor error check\n  bzip2: Add missing checks for malloc returning NULL\n  bzip2/lzma/gzip: pre-boot malloc doesn\u0027t return NULL on failure\n"
    },
    {
      "commit": "329962503692b42d8088f31584e42d52db179d52",
      "tree": "fe8aa709fcbf6154e25c291ec569885a23e2eba1",
      "parents": [
        "45a94d7cd45ed991914011919e7d40eb6d2546d1"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Tue Dec 15 17:59:02 2009 -0800"
      },
      "committer": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Wed Dec 16 16:43:37 2009 -0800"
      },
      "message": "x86: Fix checking of SRAT when node 0 ram is not from 0\n\nFound one system that boot from socket1 instead of socket0, SRAT get rejected...\n\n[    0.000000] SRAT: Node 1 PXM 0 0-a0000\n[    0.000000] SRAT: Node 1 PXM 0 100000-80000000\n[    0.000000] SRAT: Node 1 PXM 0 100000000-2080000000\n[    0.000000] SRAT: Node 0 PXM 1 2080000000-4080000000\n[    0.000000] SRAT: Node 2 PXM 2 4080000000-6080000000\n[    0.000000] SRAT: Node 3 PXM 3 6080000000-8080000000\n[    0.000000] SRAT: Node 4 PXM 4 8080000000-a080000000\n[    0.000000] SRAT: Node 5 PXM 5 a080000000-c080000000\n[    0.000000] SRAT: Node 6 PXM 6 c080000000-e080000000\n[    0.000000] SRAT: Node 7 PXM 7 e080000000-10080000000\n...\n[    0.000000] NUMA: Allocated memnodemap from 500000 - 701040\n[    0.000000] NUMA: Using 20 for the hash shift.\n[    0.000000] Adding active range (0, 0x2080000, 0x4080000) 0 entries of 3200 used\n[    0.000000] Adding active range (1, 0x0, 0x96) 1 entries of 3200 used\n[    0.000000] Adding active range (1, 0x100, 0x7f750) 2 entries of 3200 used\n[    0.000000] Adding active range (1, 0x100000, 0x2080000) 3 entries of 3200 used\n[    0.000000] Adding active range (2, 0x4080000, 0x6080000) 4 entries of 3200 used\n[    0.000000] Adding active range (3, 0x6080000, 0x8080000) 5 entries of 3200 used\n[    0.000000] Adding active range (4, 0x8080000, 0xa080000) 6 entries of 3200 used\n[    0.000000] Adding active range (5, 0xa080000, 0xc080000) 7 entries of 3200 used\n[    0.000000] Adding active range (6, 0xc080000, 0xe080000) 8 entries of 3200 used\n[    0.000000] Adding active range (7, 0xe080000, 0x10080000) 9 entries of 3200 used\n[    0.000000] SRAT: PXMs only cover 917504MB of your 1048566MB e820 RAM. Not used.\n[    0.000000] SRAT: SRAT not used.\n\nthe early_node_map is not sorted because node0 with non zero start come first.\n\nso try to sort it right away after all regions are registered.\n\nalso fixs refression by 8716273c (x86: Export srat physical topology)\n\n-v2: make it more solid to handle cross node case like node0 [0,4g), [8,12g) and node1 [4g, 8g), [12g, 16g)\n-v3: update comments.\n\nReported-and-tested-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nLKML-Reference: \u003c4B2579D2.3010201@kernel.org\u003e\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\n"
    },
    {
      "commit": "facb6011f3993947283fa15d039dacb4ad140230",
      "tree": "c317e401fa7c867e1652879627163331f43085ef",
      "parents": [
        "2326c467df4ff814dc07cf1bdaa1e6e0a9c9f21c"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Dec 16 12:20:00 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:20:00 2009 +0100"
      },
      "message": "HWPOISON: Add soft page offline support\n\nThis is a simpler, gentler variant of memory_failure() for soft page\nofflining controlled from user space.  It doesn\u0027t kill anything, just\ntries to invalidate and if that doesn\u0027t work migrate the\npage away.\n\nThis is useful for predictive failure analysis, where a page has\na high rate of corrected errors, but hasn\u0027t gone bad yet. Instead\nit can be offlined early and avoided.\n\nThe offlining is controlled from sysfs, including a new generic\nentry point for hard page offlining for symmetry too.\n\nWe use the page isolate facility to prevent re-allocation\nrace. Normally this is only used by memory hotplug. To avoid\nraces with memory allocation I am using lock_system_sleep().\nThis avoids the situation where memory hotplug is about\nto isolate a page range and then hwpoison undoes that work.\nThis is a big hammer currently, but the simplest solution\ncurrently.\n\nWhen the page is not free or LRU we try to free pages\nfrom slab and other caches. The slab freeing is currently\nquite dumb and does not try to focus on the specific slab\ncache which might own the page. This could be potentially\nimproved later.\n\nThanks to Fengguang Wu and Haicheng Li for some fixes.\n\n[Added fix from Andrew Morton to adapt to new migrate_pages prototype]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "847ce401df392b0704369fd3f75df614ac1414b4",
      "tree": "7c5021386dedea0d12f8a05b00c5267c4d28e426",
      "parents": [
        "8d22ba1b74aa9420b6032d856446564fb21f8090"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Dec 16 12:19:58 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:58 2009 +0100"
      },
      "message": "HWPOISON: Add unpoisoning support\n\nThe unpoisoning interface is useful for stress testing tools to\nreclaim poisoned pages (to prevent OOM)\n\nThere is no hardware level unpoisioning, so this\ncannot be used for real memory errors, only for software injected errors.\n\nNote that it may leak pages silently - those who have been removed from\nLRU cache, but not isolated from page cache/swap cache at hwpoison time.\nEspecially the stress test of dirty swap cache pages shall reboot system\nbefore exhausting memory.\n\nAK: Fix comments, add documentation, add printks, rename symbol\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "82ba011b9041dd31c15e4f63797b08aa0a288e61",
      "tree": "7fd48d31ab507007c37f89a9dc41256b8585d8db",
      "parents": [
        "bd1ce5f91f545730df4af492f774d9d32f5da3cb"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Dec 16 12:19:57 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:57 2009 +0100"
      },
      "message": "HWPOISON: Turn ref argument into flags argument\n\nNow that \"ref\" is just a boolean turn it into\na flags argument. First step is only a single flag\nthat makes the code\u0027s intention more clear, but more\nmay follow.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "588f9ce6ca61ecb4663ee6ef2f75d2d96c73151e",
      "tree": "4f68c55642c51312bdf6e49818b9889ec37a1ac3",
      "parents": [
        "7bc98b97ed5dfe710025414de771baa674998892"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Dec 16 12:19:57 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:57 2009 +0100"
      },
      "message": "HWPOISON: Be more aggressive at freeing non LRU caches\n\nshake_page handles more types of page caches than lru_drain_all()\n\n- per cpu page allocator pages\n- per CPU LRU\n\nStops early when the page became free.\n\nUsed in followon patches.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "5dc37642cbce34619e4588a9f0bdad1d2f870956",
      "tree": "00165a3a0b3d768abaf83cf44642f09398b989cc",
      "parents": [
        "d33b9f45bd24a6391bc05e2b5a13c1b5787ca9c2"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Mon Dec 14 18:00:01 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:24 2009 -0800"
      },
      "message": "mm hugetlb: add hugepage support to pagemap\n\nThis patch enables extraction of the pfn of a hugepage from\n/proc/pid/pagemap in an architecture independent manner.\n\nDetails\n-------\nMy test program (leak_pagemap) works as follows:\n - creat() and mmap() a file on hugetlbfs (file size is 200MB \u003d\u003d 100 hugepages,)\n - read()/write() something on it,\n - call page-types with option -p,\n - munmap() and unlink() the file on hugetlbfs\n\nWithout my patches\n------------------\n$ ./leak_pagemap\n             flags page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          1        0  __________________________________\n0x0000000000000804          1        0  __R________M______________________ referenced,mmap\n0x000000000000086c         81        0  __RU_lA____M______________________ referenced,uptodate,lru,active,mmap\n0x0000000000005808          5        0  ___U_______Ma_b___________________ uptodate,mmap,anonymous,swapbacked\n0x0000000000005868         12        0  ___U_lA____Ma_b___________________ uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c          1        0  __RU_lA____Ma_b___________________ referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total        101        0\n\nThe output of page-types don\u0027t show any hugepage.\n\nWith my patches\n---------------\n$ ./leak_pagemap\n             flags page-count       MB  symbolic-flags                     long-symbolic-flags\n0x0000000000000000          1        0  __________________________________\n0x0000000000030000      51100      199  ________________TG________________ compound_tail,huge\n0x0000000000028018        100        0  ___UD__________H_G________________ uptodate,dirty,compound_head,huge\n0x0000000000000804          1        0  __R________M______________________ referenced,mmap\n0x000000000000080c          1        0  __RU_______M______________________ referenced,uptodate,mmap\n0x000000000000086c         80        0  __RU_lA____M______________________ referenced,uptodate,lru,active,mmap\n0x0000000000005808          4        0  ___U_______Ma_b___________________ uptodate,mmap,anonymous,swapbacked\n0x0000000000005868         12        0  ___U_lA____Ma_b___________________ uptodate,lru,active,mmap,anonymous,swapbacked\n0x000000000000586c          1        0  __RU_lA____Ma_b___________________ referenced,uptodate,lru,active,mmap,anonymous,swapbacked\n             total      51300      200\n\nThe output of page-types shows 51200 pages contributing to hugepages,\ncontaining 100 head pages and 51100 tail pages as expected.\n\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Andy Whitcroft \u003capw@canonical.com\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": "f096e59e844ba3c5d5a7b54b3deafd2aeeebf921",
      "tree": "8d48bf8456ba98a1f9fe372b7550b2996162da3b",
      "parents": [
        "c9d0bf241451a3ab7d02e1652c22b80cd7d93e8f"
      ],
      "author": {
        "name": "Huang Shijie",
        "email": "shijie8@gmail.com",
        "time": "Mon Dec 14 17:59:51 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:22 2009 -0800"
      },
      "message": "include/linux/mm.h: remove unneeded ifdef\n\nThe check code for CONFIG_SWAP is redundant, because there is a\nnon-CONFIG_SWAP version for PageSwapCache() which just returns 0.\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": "3ca7b3c5b64d35fe02c35b5d44c2c58b49499fee",
      "tree": "bb6af24d3683788ef658282f8794af19d2232663",
      "parents": [
        "bb3ab596832b920c703d1aea1ce76d69c0f71fb7"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Dec 14 17:58:57 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:17 2009 -0800"
      },
      "message": "mm: define PAGE_MAPPING_FLAGS\n\nAt present we define PageAnon(page) by the low PAGE_MAPPING_ANON bit set\nin page-\u003emapping, with the higher bits a pointer to the anon_vma; and have\ndefined PageKsm(page) as that with NULL anon_vma.\n\nBut KSM swapping will need to store a pointer there: so in preparation for\nthat, now define PAGE_MAPPING_FLAGS as the low two bits, including\nPAGE_MAPPING_KSM (always set along with PAGE_MAPPING_ANON, until some\nother use for the bit emerges).\n\nDeclare page_rmapping(page) to return the pointer part of page-\u003emapping,\nand page_anon_vma(page) to return the anon_vma pointer when that\u0027s what it\nis.  Use these in a few appropriate places: notably, unuse_vma() has been\ntesting page-\u003emapping, but is better to be testing page_anon_vma() (cases\nmay be added in which flag bits are set without any pointer).\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "934831d060ccd5471ecbc562804a8d3ccd6e562c",
      "tree": "cfa123da33934e86e997a0a12a8709ac892b450d",
      "parents": [
        "645d83c5db970a1c57225e155113b4aa2451e920"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Sep 24 12:33:32 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 17:20:20 2009 -0700"
      },
      "message": "NOMMU: Fallback for is_vmalloc_or_module_addr() should be inline\n\nThe NOMMU fallback for is_vmalloc_or_module_addr() should be static inline,\nnot just static, in linux/mm.h.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6c5daf012c9155aafd2c7973e4278766c30dfad0",
      "tree": "33959d7b36d03e1610615641a2940cb2de5e8603",
      "parents": [
        "6d39b27f0ac7e805ae3bd9efa51d7da04bec0360",
        "c08d3b0e33edce28e9cfa7b64f7fe5bdeeb29248"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:32:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 08:32:11 2009 -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:\n  truncate: use new helpers\n  truncate: new helpers\n  fs: fix overflow in sys_mount() for in-kernel calls\n  fs: Make unload_nls() NULL pointer safe\n  freeze_bdev: grab active reference to frozen superblocks\n  freeze_bdev: kill bd_mount_sem\n  exofs: remove BKL from super operations\n  fs/romfs: correct error-handling code\n  vfs: seq_file: add helpers for data filling\n  vfs: remove redundant position check in do_sendfile\n  vfs: change sb-\u003es_maxbytes to a loff_t\n  vfs: explicitly cast s_maxbytes in fiemap_check_ranges\n  libfs: return error code on failed attr set\n  seq_file: return a negative error code when seq_path_root() fails.\n  vfs: optimize touch_time() too\n  vfs: optimization for touch_atime()\n  vfs: split generic_forget_inode() so that hugetlbfs does not have to copy it\n  fs/inode.c: add dev-id and inode number for debugging in init_special_inode()\n  libfs: make simple_read_from_buffer conventional\n"
    },
    {
      "commit": "db16826367fefcb0ddb93d76b66adc52eb4e6339",
      "tree": "626224c1eb1eb79c522714591f208b4fdbdcd9d4",
      "parents": [
        "cd6045138ed1bb5d8773e940d51c34318eef3ef2",
        "465fdd97cbe16ef8727221857e96ef62dd352017"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:53:22 2009 -0700"
      },
      "message": "Merge branch \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6\n\n* \u0027hwpoison\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-mce-2.6: (21 commits)\n  HWPOISON: Enable error_remove_page on btrfs\n  HWPOISON: Add simple debugfs interface to inject hwpoison on arbitary PFNs\n  HWPOISON: Add madvise() based injector for hardware poisoned pages v4\n  HWPOISON: Enable error_remove_page for NFS\n  HWPOISON: Enable .remove_error_page for migration aware file systems\n  HWPOISON: The high level memory error handler in the VM v7\n  HWPOISON: Add PR_MCE_KILL prctl to control early kill behaviour per process\n  HWPOISON: shmem: call set_page_dirty() with locked page\n  HWPOISON: Define a new error_remove_page address space op for async truncation\n  HWPOISON: Add invalidate_inode_page\n  HWPOISON: Refactor truncate to allow direct truncating of page v2\n  HWPOISON: check and isolate corrupted free pages v2\n  HWPOISON: Handle hardware poisoned pages in try_to_unmap\n  HWPOISON: Use bitmask/action code for try_to_unmap behaviour\n  HWPOISON: x86: Add VM_FAULT_HWPOISON handling to x86 page fault handler v2\n  HWPOISON: Add poison check to page fault handling\n  HWPOISON: Add basic support for poisoned pages in fault handler v3\n  HWPOISON: Add new SIGBUS error codes for hardware poison signals\n  HWPOISON: Add support for poison swap entries v2\n  HWPOISON: Export some rmap vma locking to outside world\n  ...\n"
    },
    {
      "commit": "8d65af789f3e2cf4cfbdbf71a0f7a61ebcd41d38",
      "tree": "121df3bfffc7853ac6d2c514ad514d4a748a0933",
      "parents": [
        "c0d0787b6d47d9f4d5e8bd321921104e854a9135"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Wed Sep 23 15:57:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Sep 24 07:21:04 2009 -0700"
      },
      "message": "sysctl: remove \"struct file *\" argument of -\u003eproc_handler\n\nIt\u0027s unused.\n\nIt isn\u0027t needed -- read or write flag is already passed and sysctl\nshouldn\u0027t care about the rest.\n\nIt _was_ used in two places at arch/frv for some reason.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25d9e2d15286281ec834b829a4aaf8969011f1cd",
      "tree": "e4329a481ca197afae30f04335e023c7d04f7d67",
      "parents": [
        "eca6f534e61919b28fb21aafbd1c2983deae75be"
      ],
      "author": {
        "name": "npiggin@suse.de",
        "email": "npiggin@suse.de",
        "time": "Fri Aug 21 02:35:05 2009 +1000"
      },
      "committer": {
        "name": "al",
        "email": "al@dizzy.pdmi.ras.ru",
        "time": "Thu Sep 24 08:41:47 2009 -0400"
      },
      "message": "truncate: new helpers\n\nIntroduce new truncate helpers truncate_pagecache and inode_newsize_ok.\nvmtruncate is also consolidated from mm/memory.c and mm/nommu.c and\ninto mm/truncate.c.\n\nReviewed-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "81ac3ad9061dd9cd490ee92f0c5316a14d77ce18",
      "tree": "1787b8c307b5e70e2763c4e7c0767c2b7e108dc4",
      "parents": [
        "26562c59fa9111ae3ea7b78045889662aac9e5ac"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Sep 22 16:45:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 23 07:39:42 2009 -0700"
      },
      "message": "kcore: register module area in generic way\n\nSome archs define MODULED_VADDR/MODULES_END which is not in VMALLOC area.\nThis is handled only in x86-64.  This patch make it more generic.  And we\ncan use vread/vwrite to access the area.  Fix it.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jiri Slaby \u003cjirislaby@gmail.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: WANG Cong \u003cxiyou.wangcong@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": "3f96b79ad96263cc0ece7bb340cddf9b2ddfb1b3",
      "tree": "0da9828c16543164f1b055fd927ea3e222ca05e5",
      "parents": [
        "cdf7b3418ad5a8783efe8f9124023d9b869fec0f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:37 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:41 2009 -0700"
      },
      "message": "tmpfs: depend on shmem\n\nCONFIG_SHMEM off gives you (ramfs masquerading as) tmpfs, even when\nCONFIG_TMPFS is off: that\u0027s a little anomalous, and I\u0027d intended to make\nmore sense of it by removing CONFIG_TMPFS altogether, always enabling its\ncode when CONFIG_SHMEM; but so many defconfigs have CONFIG_SHMEM on\nCONFIG_TMPFS off that we\u0027d better leave that as is.\n\nBut there is no point in asking for CONFIG_TMPFS if CONFIG_SHMEM is off:\nmake TMPFS depend on SHMEM, which also prevents TMPFS_POSIX_ACL\nshmem_acl.o being pointlessly built into the kernel when SHMEM is off.\n\nAnd a selfish change, to prevent the world from being rebuilt when I\nswitch between CONFIG_SHMEM on and off: the only CONFIG_SHMEM in the\nheader files is mm.h shmem_lock() - give that a shmem.c stub instead.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: 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": "58fa879e1e640a1856f736b418984ebeccee1c95",
      "tree": "dc37bce8379e29c46e79f105cc71d137b14965cf",
      "parents": [
        "a13ea5b759645a0779edc6dbfec9abfd83220844"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: FOLL flags for GUP flags\n\n__get_user_pages() has been taking its own GUP flags, then processing\nthem into FOLL flags for follow_page().  Though oddly named, the FOLL\nflags are more widely used, so pass them to __get_user_pages() now.\nSorry, VM flags, VM_FAULT flags and FAULT_FLAGs are still distinct.\n\n(The patch to __get_user_pages() looks peculiar, with both gup_flags\nand foll_flags: the gup_flags remain constant; but as before there\u0027s\nan exceptional case, out of scope of the patch, in which foll_flags\nper page have FOLL_WRITE masked off.)\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e4b9a60718970bbc02dfd3abd0b956ab65af231",
      "tree": "4c19152cea19882071a74f92c0cf6a16d5711f41",
      "parents": [
        "f3e8fccd06d27773186a0094371daf2d84c79469"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:26 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: FOLL_DUMP replace FOLL_ANON\n\nThe \"FOLL_ANON optimization\" and its use_zero_page() test have caused\nconfusion and bugs: why does it test VM_SHARED? for the very good but\nunsatisfying reason that VMware crashed without.  As we look to maybe\nreinstating anonymous use of the ZERO_PAGE, we need to sort this out.\n\nEasily done: it\u0027s silly for __get_user_pages() and follow_page() to\nbe guessing whether it\u0027s safe to assume that they\u0027re being used for\na coredump (which can take a shortcut snapshot where other uses must\nhandle a fault) - just tell them with GUP_FLAGS_DUMP and FOLL_DUMP.\n\nget_dump_page() doesn\u0027t even want a ZERO_PAGE: an error suits fine.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f3e8fccd06d27773186a0094371daf2d84c79469",
      "tree": "46e652e6ac3588a26c6d3e38ea10274eb3fc2ea8",
      "parents": [
        "1c3aff1ceec2cc86810e2690e67873ff0c505862"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:03:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:40 2009 -0700"
      },
      "message": "mm: add get_dump_page\n\nIn preparation for the next patch, add a simple get_dump_page(addr)\ninterface for the CONFIG_ELF_CORE dumpers to use, instead of calling\nget_user_pages() directly.  They\u0027re not interested in errors: they\njust want to use holes as much as possible, to save space and make\nsure that the data is aligned where the headers said it would be.\n\nOh, and don\u0027t use that horrid DUMP_SEEK(off) macro!\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4481374ce88ba8f460c8b89f2572027bd27057d0",
      "tree": "6896601b6a1da0e3e932ffa75fcff966c834c02c",
      "parents": [
        "4738e1b9cf8f9e28d7de080a5e6ce5d0095ea18f"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "JBeulich@novell.com",
        "time": "Mon Sep 21 17:03:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:38 2009 -0700"
      },
      "message": "mm: replace various uses of num_physpages by totalram_pages\n\nSizing of memory allocations shouldn\u0027t depend on the number of physical\npages found in a system, as that generally includes (perhaps a huge amount\nof) non-RAM pages.  The amount of what actually is usable as storage\nshould instead be used as a basis here.\n\nSome of the calculations (i.e.  those not intending to use high memory)\nshould likely even use (totalram_pages - totalhigh_pages).\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Dave Airlie \u003cairlied@linux.ie\u003e\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\nCc: Jeremy Fitzhardinge \u003cjeremy@goop.org\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f8af4da3b4c14e7267c4ffb952079af3912c51c5",
      "tree": "17b0cfbd2d3d9abf9008f69e7fee5369cec7afa5",
      "parents": [
        "d19f352484467a5e518639ddff0554669c10ffab"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Sep 21 17:01:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:31 2009 -0700"
      },
      "message": "ksm: the mm interface to ksm\n\nThis patch presents the mm interface to a dummy version of ksm.c, for\nbetter scrutiny of that interface: the real ksm.c follows later.\n\nWhen CONFIG_KSM is not set, madvise(2) reject MADV_MERGEABLE and\nMADV_UNMERGEABLE with EINVAL, since that seems more helpful than\npretending that they can be serviced.  But when CONFIG_KSM\u003dy, accept them\neven if KSM is not currently running, and even on areas which KSM will not\ntouch (e.g.  hugetlb or shared file or special driver mappings).\n\nLike other madvices, report ENOMEM despite success if any area in the\nrange is unmapped, and use EAGAIN to report out of memory.\n\nDefine vma flag VM_MERGEABLE to identify an area on which KSM may try\nmerging pages: leave it to ksm_madvise() to decide whether to set it.\nDefine mm flag MMF_VM_MERGEABLE to identify an mm which might contain\nVM_MERGEABLE areas, to minimize callouts when forking or exiting.\n\nBased upon earlier patches by Chris Wright and Izik Eidus.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Chris Wright \u003cchrisw@redhat.com\u003e\nSigned-off-by: Izik Eidus \u003cieidus@redhat.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "112067f0905b2de862c607ee62411cf47d2fe5c4",
      "tree": "55575b100292b764f945e4d9395989e8a734f883",
      "parents": [
        "478b81fd84a299adb401dbbae296f3767e552999"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Sep 21 17:01:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 22 07:17:25 2009 -0700"
      },
      "message": "memory hotplug: update zone pcp at memory online\n\nIn my test, 128M memory is hot added, but zone\u0027s pcp batch is 0, which is\nan obvious error.  When pages are onlined, zone pcp should be updated\naccordingly.\n\n[akpm@linux-foundation.org: fix warnings]\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Yakui Zhao \u003cyakui.zhao@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": "6a46079cf57a7f7758e8b926980a4f852f89b34d",
      "tree": "efd72e830201370d6273bd436dda5a3c4cd6ed9b",
      "parents": [
        "4db96cf077aa938b11fe7ac79ecc9b29ec00fbab"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:15 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:15 2009 +0200"
      },
      "message": "HWPOISON: The high level memory error handler in the VM v7\n\nAdd the high level memory handler that poisons pages\nthat got corrupted by hardware (typically by a two bit flip in a DIMM\nor a cache) on the Linux level. The goal is to prevent everyone\nfrom accessing these pages in the future.\n\nThis done at the VM level by marking a page hwpoisoned\nand doing the appropriate action based on the type of page\nit is.\n\nThe code that does this is portable and lives in mm/memory-failure.c\n\nTo quote the overview comment:\n\nHigh level machine check handler. Handles pages reported by the\nhardware as being corrupted usually due to a 2bit ECC memory or cache\nfailure.\n\nThis focuses on pages detected as corrupted in the background.\nWhen the current CPU tries to consume corruption the currently\nrunning process can just be killed directly instead. This implies\nthat if the error cannot be handled for some reason it\u0027s safe to\njust ignore it because no corruption has been consumed yet. Instead\nwhen that happens another machine check will happen.\n\nHandles page cache pages in various states. The tricky part\nhere is that we can access any page asynchronous to other VM\nusers, because memory failures could happen anytime and anywhere,\npossibly violating some of their assumptions. This is why this code\nhas to be extremely careful. Generally it tries to use normal locking\nrules, as in get the standard locks, even if that means the\nerror handling takes potentially a long time.\n\nSome of the operations here are somewhat inefficient and have non\nlinear algorithmic complexity, because the data structures have not\nbeen optimized for this case. This is in particular the case\nfor the mapping from a vma to a process. Since this case is expected\nto be rare we hope we can get away with this.\n\nThere are in principle two strategies to kill processes on poison:\n- just unmap the data and wait for an actual reference before\nkilling\n- kill as soon as corruption is detected.\nBoth have advantages and disadvantages and should be used\nin different situations. Right now both are implemented and can\nbe switched with a new sysctl vm.memory_failure_early_kill\nThe default is early kill.\n\nThe patch does some rmap data structure walking on its own to collect\nprocesses to kill. This is unusual because normally all rmap data structure\nknowledge is in rmap.c only. I put it here for now to keep\neverything together and rmap knowledge has been seeping out anyways\n\nIncludes contributions from Johannes Weiner, Chris Mason, Fengguang Wu,\nNick Piggin (who did a lot of great work) and others.\n\nCc: npiggin@suse.de\nCc: riel@redhat.com\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Hidehiro Kawai \u003chidehiro.kawai.ez@hitachi.com\u003e\n"
    },
    {
      "commit": "257187362123f15d9d1e09918cf87cebbea4e786",
      "tree": "92b768ad3f2afeda13a2acadc6d5766090ebcc60",
      "parents": [
        "83f786680aec8d030184f7ced1a0a3dd8ac81764"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:13 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:13 2009 +0200"
      },
      "message": "HWPOISON: Define a new error_remove_page address space op for async truncation\n\nTruncating metadata pages is not safe right now before\nwe haven\u0027t audited all file systems.\n\nTo enable truncation only for data address space define\na new address_space callback error_remove_page.\n\nThis is used for memory_failure.c memory error handling.\n\nThis can be then set to truncate_inode_page()\n\nThis patch just defines the new operation and adds documentation.\n\nCallers and users come in followon patches.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "83f786680aec8d030184f7ced1a0a3dd8ac81764",
      "tree": "c519509ce47883936bc4759343b1b3a01749153f",
      "parents": [
        "750b4987b0cd4d408e54cb83a80a067cbe690feb"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Sep 16 11:50:13 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:13 2009 +0200"
      },
      "message": "HWPOISON: Add invalidate_inode_page\n\nAdd a simple way to invalidate a single page\nThis is just a refactoring of the truncate.c code.\nOriginally from Fengguang, modified by Andi Kleen.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "750b4987b0cd4d408e54cb83a80a067cbe690feb",
      "tree": "1372d0f64da3575eb93bac284c73e548e23b9ea6",
      "parents": [
        "2a7684a23e9c263c2a1e8b2c0027ad1836a0f9df"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Sep 16 11:50:12 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:12 2009 +0200"
      },
      "message": "HWPOISON: Refactor truncate to allow direct truncating of page v2\n\nExtract out truncate_inode_page() out of the truncate path so that\nit can be used by memory-failure.c\n\n[AK: description, headers, fix typos]\nv2: Some white space changes from Fengguang Wu\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "d1737fdbec7f90edc52dd0c5c3767457f28e78d8",
      "tree": "8699aabdff713a70665a9f60106ce21012376733",
      "parents": [
        "ad5fa913991e9e0f122b021e882b0d50051fbdbc"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Sep 16 11:50:06 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Sep 16 11:50:06 2009 +0200"
      },
      "message": "HWPOISON: Add basic support for poisoned pages in fault handler v3\n\n- Add a new VM_FAULT_HWPOISON error code to handle_mm_fault. Right now\narchitectures have to explicitely enable poison page support, so\nthis is forward compatible to all architectures. They only need\nto add it when they enable poison page support.\n- Add poison page handling in swap in fault code\n\nv2: Add missing delayacct_clear_flag (Hidehiro Kawai)\nv3: Really use delayacct_clear_flag (Hidehiro Kawai)\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "788084aba2ab7348257597496befcbccabdc98a3",
      "tree": "2da42d746d67b16ef705229a1b5a3528ec19c725",
      "parents": [
        "8cf948e744e0218af604c32edecde10006dc8e9e"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Fri Jul 31 12:54:11 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Mon Aug 17 15:09:11 2009 +1000"
      },
      "message": "Security/SELinux: seperate lsm specific mmap_min_addr\n\nCurrently SELinux enforcement of controls on the ability to map low memory\nis determined by the mmap_min_addr tunable.  This patch causes SELinux to\nignore the tunable and instead use a seperate Kconfig option specific to how\nmuch space the LSM should protect.\n\nThe tunable will now only control the need for CAP_SYS_RAWIO and SELinux\npermissions will always protect the amount of low memory designated by\nCONFIG_LSM_MMAP_MIN_ADDR.\n\nThis allows users who need to disable the mmap_min_addr controls (usual reason\nbeing they run WINE as a non-root user) to do so and still have SELinux\ncontrols preventing confined domains (like a web server) from being able to\nmap some area of low memory.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "9d73777e500929b71dcfed16eec05f6760e345a6",
      "tree": "7b2d0e7a619b4a5c994ca8789e680f6e7642849c",
      "parents": [
        "ab420e6d9c2511b862d753b70efb4e979faa0714"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 25 11:58:55 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 25 11:22:13 2009 -0700"
      },
      "message": "clarify get_user_pages() prototype\n\nCurrently the 4th parameter of get_user_pages() is called len, but its\nin pages, not bytes. Rename the thing to nr_pages to avoid future\nconfusion.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d06063cc221fdefcab86589e79ddfdb7c0e14b63",
      "tree": "00ccaf8c1992b57a4445d78b9eae25fde0b3ab31",
      "parents": [
        "30c9f3a9fae79517bca595826a19c6855fbb6d32"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 10 09:01:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jun 21 13:08:22 2009 -0700"
      },
      "message": "Move FAULT_FLAG_xyz into handle_mm_fault() callers\n\nThis allows the callers to now pass down the full set of FAULT_FLAG_xyz\nflags to handle_mm_fault().  All callers have been (mechanically)\nconverted to the new calling convention, there\u0027s almost certainly room\nfor architectures to clean up their code and then add FAULT_FLAG_RETRY\nwhen that support is added.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3d06cc6aa3e765dc2bf98626f87272dcf641dca",
      "tree": "aa3e49b58f08d6c0ea55cdca4fb5e6c8ba6ae333",
      "parents": [
        "0990b1c65729012a63e0eeca93aaaafea4e9a064",
        "65795efbd380a832ae508b04dba8f8e53f0b84d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 13:06:17 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Jun 17 13:06:17 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perfcounters/core\n\nConflicts:\n\tarch/x86/include/asm/kmap_types.h\n\tinclude/linux/mm.h\n\n\tinclude/asm-generic/kmap_types.h\n\nMerge reason: We crossed changes with kmap_types.h cleanups in mainline.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "168f5ac668f63dfb64439766e3ef9e866b83719d",
      "tree": "ddefb5678ffc15ac6ddec66e281d3f9c8a75fa0b",
      "parents": [
        "aca8bf323edd31ad462dc98c107c23a5c6022ca2"
      ],
      "author": {
        "name": "Sergei Trofimovich",
        "email": "slyfox@inbox.ru",
        "time": "Tue Jun 16 15:33:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:44 2009 -0700"
      },
      "message": "mm cleanup: shmem_file_setup: \u0027char *\u0027 -\u003e \u0027const char *\u0027 for name argument\n\nAs function shmem_file_setup does not modify/allocate/free/pass given\nfilename - mark it as const.\n\nSigned-off-by: Sergei Trofimovich \u003cslyfox@inbox.ru\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96cb4df5ddf5e6d5785b5acd4003e3689b87f896",
      "tree": "e6bd74df480e9065617aebec29b4285fa021c919",
      "parents": [
        "bc75d33f0fc1d56e734db1f56d3cfc8097b8e0cf"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Jun 16 15:32:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:42 2009 -0700"
      },
      "message": "page-allocator: add inactive ratio calculation function of each zone\n\nFactor the per-zone arithemetic inside setup_per_zone_inactive_ratio()\u0027s\nloop into a a separate function, calculate_zone_inactive_ratio().  This\nfunction will be used in a later patch\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bc75d33f0fc1d56e734db1f56d3cfc8097b8e0cf",
      "tree": "4dc5054afdff491d8378dee2a235da64d6ad3de6",
      "parents": [
        "b70d94ee438b3fd9c15c7691d7a932a135c18101"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Jun 16 15:32:48 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:41 2009 -0700"
      },
      "message": "page-allocator: clean up functions related to pages_min\n\nChange the names of two functions. It doesn\u0027t affect behavior.\n\nPresently, setup_per_zone_pages_min() changes low, high of zone as well as\nmin.  So a better name is setup_per_zone_wmarks().  That\u0027s because Mel\nchanged zone-\u003epages_[hig/low/min] to zone-\u003ewatermark array in \"page\nallocator: replace the watermark-related union in struct zone with a\nwatermark[] array\".\n\n * setup_per_zone_pages_min \u003d\u003e setup_per_zone_wmarks\n\nOf course, we have to change init_per_zone_pages_min, too.  There are not\npages_min any more.\n\n * init_per_zone_pages_min \u003d\u003e init_per_zone_wmark_min\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b6748e2dd69906af3835db4dc9d1c8a3ee4c68c",
      "tree": "5d5476844f8e29e31684ce8ccf7e163ab3182ad6",
      "parents": [
        "03668a4debf4f50de55c34b6e66dae63e1c73716"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Tue Jun 16 15:32:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:40 2009 -0700"
      },
      "message": "mm: introduce follow_pfn()\n\nAnaloguous to follow_phys(), add a helper that looks up the PFN at a\nuser virtual address in an IO mapping or a raw PFN mapping.\n\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Magnus Damm \u003cmagnus.damm@gmail.com\u003e\nCc: Hans Verkuil \u003chverkuil@xs4all.nl\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6484eb3e2a81807722c5f28efef94d8338b7b996",
      "tree": "10ce36f412c2ff0c7eb399af1a189f8e354f56db",
      "parents": [
        "b3c466ce512923298ae8c0121d3e9f397a3f1210"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Jun 16 15:31:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:32 2009 -0700"
      },
      "message": "page allocator: do not check NUMA node ID when the caller knows the node is valid\n\nCallers of alloc_pages_node() can optionally specify -1 as a node to mean\n\"allocate from the current node\".  However, a number of the callers in\nfast paths know for a fact their node is valid.  To avoid a comparison and\nbranch, this patch adds alloc_pages_exact_node() that only checks the nid\nwith VM_BUG_ON().  Callers that know their node is valid are then\nconverted.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\t[for the SLOB NUMA bits]\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d2bf6be8ab63aa84e6149aac934649aadf3828b1",
      "tree": "65e7f74f1ed6fd9516f1615b0f293d2aaeede07b",
      "parents": [
        "7ffc59b4d0bdfa00e882339f85b8a969bb7021e2"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Tue Jun 16 15:31:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:30 2009 -0700"
      },
      "message": "mm: clean up get_user_pages_fast() documentation\n\nMove more documentation for get_user_pages_fast into the new kerneldoc comment.\nAdd some comments for get_user_pages as well.\n\nAlso, move get_user_pages_fast declaration up to get_user_pages. It wasn\u0027t\nthere initially because it was once a static inline function.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Andy Grover \u003candy.grover@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d30a11004e3411909f2448546f036a011978062e",
      "tree": "c1980adb410d9fabd2c2eb8af9f0ed8ee4b656da",
      "parents": [
        "2fad6f5deee5556f511eab58da78737a23ddb35d"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Jun 16 15:31:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 16 19:47:29 2009 -0700"
      },
      "message": "readahead: record mmap read-around states in file_ra_state\n\nMmap read-around now shares the same code style and data structure with\nreadahead code.\n\nThis also removes do_page_cache_readahead().  Its last user, mmap\nread-around, has been changed to call ra_submit().\n\nThe no-readahead-if-congested logic is dumped by the way.  Users will be\npretty sensitive about the slow loading of executables.  So it\u0027s\nunfavorable to disabled mmap read-around on a congested queue.\n\n[akpm@linux-foundation.org: coding-style fixes]\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Fengguang Wu \u003cwfg@mail.ustc.edu.cn\u003e\nCc: Ying Han \u003cyinghan@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": "465a454f254ee2ff7acc4aececbe31f8af046bc0",
      "tree": "459a4ba588c9ccd2320e20d6f9ae66538f2ebfea",
      "parents": [
        "75f937f24bd9c003dcb9d7d5509f23459f1f6000"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon Jun 15 12:31:37 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Jun 15 15:57:51 2009 +0200"
      },
      "message": "x86, mm: Add __get_user_pages_fast()\n\nIntroduce a gup_fast() variant which is usable from IRQ/NMI context.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3296ca27f50ecbd71db1d808c7a72d311027f919",
      "tree": "833eaa58b2013bda86d4bd95faf6efad7a2d5ca4",
      "parents": [
        "e893123c7378192c094747dadec326b7c000c190",
        "73fbad283cfbbcf02939bdbda31fc4a30e729cca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 11 10:01:41 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (44 commits)\n  nommu: Provide mmap_min_addr definition.\n  TOMOYO: Add description of lists and structures.\n  TOMOYO: Remove unused field.\n  integrity: ima audit dentry_open failure\n  TOMOYO: Remove unused parameter.\n  security: use mmap_min_addr indepedently of security models\n  TOMOYO: Simplify policy reader.\n  TOMOYO: Remove redundant markers.\n  SELinux: define audit permissions for audit tree netlink messages\n  TOMOYO: Remove unused mutex.\n  tomoyo: avoid get+put of task_struct\n  smack: Remove redundant initialization.\n  integrity: nfsd imbalance bug fix\n  rootplug: Remove redundant initialization.\n  smack: do not beyond ARRAY_SIZE of data\n  integrity: move ima_counts_get\n  integrity: path_check update\n  IMA: Add __init notation to ima functions\n  IMA: Minimal IMA policy and boot param for TCB IMA policy\n  selinux: remove obsolete read buffer limit from sel_read_bool\n  ...\n"
    },
    {
      "commit": "862366118026a358882eefc70238dbcc3db37aac",
      "tree": "4eb62bc10327a5afac064a95a091ea05ecd2acc1",
      "parents": [
        "57eee9ae7bbcfb692dc96c739a5184adb6349733",
        "511b01bdf64ad8a38414096eab283c7784aebfc4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 10 19:53:40 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (244 commits)\n  Revert \"x86, bts: reenable ptrace branch trace support\"\n  tracing: do not translate event helper macros in print format\n  ftrace/documentation: fix typo in function grapher name\n  tracing/events: convert block trace points to TRACE_EVENT(), fix !CONFIG_BLOCK\n  tracing: add protection around module events unload\n  tracing: add trace_seq_vprint interface\n  tracing: fix the block trace points print size\n  tracing/events: convert block trace points to TRACE_EVENT()\n  ring-buffer: fix ret in rb_add_time_stamp\n  ring-buffer: pass in lockdep class key for reader_lock\n  tracing: add annotation to what type of stack trace is recorded\n  tracing: fix multiple use of __print_flags and __print_symbolic\n  tracing/events: fix output format of user stack\n  tracing/events: fix output format of kernel stack\n  tracing/trace_stack: fix the number of entries in the header\n  ring-buffer: discard timestamps that are at the start of the buffer\n  ring-buffer: try to discard unneeded timestamps\n  ring-buffer: fix bug in ring_buffer_discard_commit\n  ftrace: do not profile functions when disabled\n  tracing: make trace pipe recognize latency format flag\n  ...\n"
    },
    {
      "commit": "73fbad283cfbbcf02939bdbda31fc4a30e729cca",
      "tree": "7c89fe13e1b4a2c7f2d60f4ea6eaf69c14bccab7",
      "parents": [
        "769f3e8c384795cc350e2aae27de2a12374d19d4",
        "35f2c2f6f6ae13ef23c4f68e6d3073753077ca43"
      ],
      "author": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 11 11:03:14 2009 +1000"
      },
      "message": "Merge branch \u0027next\u0027 into for-linus\n"
    },
    {
      "commit": "e0a94c2a63f2644826069044649669b5e7ca75d3",
      "tree": "debf8a9af6ac23dadd116dc1cd1f9dcefe9629c6",
      "parents": [
        "7d2948b1248109dbc7f4aaf9867c54b1912d494c"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux-foundation.org",
        "time": "Wed Jun 03 16:04:31 2009 -0400"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Thu Jun 04 12:07:48 2009 +1000"
      },
      "message": "security: use mmap_min_addr indepedently of security models\n\nThis patch removes the dependency of mmap_min_addr on CONFIG_SECURITY.\nIt also sets a default mmap_min_addr of 4096.\n\nmmapping of addresses below 4096 will only be possible for processes\nwith CAP_SYS_RAWIO.\n\nSigned-off-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nLooks-ok-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "888a589f6be07d624e21e2174d98375e9f95911b",
      "tree": "5c2c210796a114479807f41fc15fe69805d66074",
      "parents": [
        "b286e21868ea1af724a7a4802da2c8e144fa70de"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Fri May 15 13:59:37 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 18 09:13:31 2009 +0200"
      },
      "message": "mm, x86: remove MEMORY_HOTPLUG_RESERVE related code\n\nafter:\n\n | commit b263295dbffd33b0fbff670720fa178c30e3392a\n | Author: Christoph Lameter \u003cclameter@sgi.com\u003e\n | Date:   Wed Jan 30 13:30:47 2008 +0100\n |\n |    x86: 64-bit, make sparsemem vmemmap the only memory model\n\nwe don\u0027t have MEMORY_HOTPLUG_RESERVE anymore.\n\nHistorically, x86-64 had an architecture-specific method for memory hotplug\nwhereby it scanned the SRAT for physical memory ranges that could be\npotentially used for memory hot-add later. By reserving those ranges\nwithout physical memory, the memmap would be allocated and left dormant\nuntil needed. This depended on the DISCONTIG memory model which has been\nremoved so the code implementing HOTPLUG_RESERVE is now dead.\n\nThis patch removes the dead code used by MEMORY_HOTPLUG_RESERVE.\n\n(Changelog authored by Mel.)\n\nv2: updated changelog, and remove hotadd\u003d in doc\n\n[ Impact: remove dead code ]\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nWorkflow-found-OK-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLKML-Reference: \u003c4A0C4910.7090508@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "1cb81b143fa8f0e4629f10690862e2e52ca792ff",
      "tree": "667b9677f8ad1211ca3d094bedabe47a3d4f5ba9",
      "parents": [
        "7e0bfad24d85de7cf2202a7b0ce51de11a077b21"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Fri Apr 24 09:51:43 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 24 10:18:52 2009 +0200"
      },
      "message": "x86, bts, mm: clean up buffer allocation\n\nThe current mm interface is asymetric. One function allocates a locked\nbuffer, another function only refunds the memory.\n\nChange this to have two functions for accounting and refunding locked\nmemory, respectively; and do the actual buffer allocation in ptrace.\n\n[ Impact: refactor BTS buffer allocation code ]\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nAcked-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c20090424095143.A30265@sedona.ch.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a34b50ddc265bae058c66661b096ef6384c5a8b1",
      "tree": "cd37db20405efebdfff8f0601d985717ab770ae2",
      "parents": [
        "44bc9dc729e33a4ec6ebed4d0b6c08e8d20b42cf"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 10:56:54 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 10:57:24 2009 +0200"
      },
      "message": "mm, x86, ptrace, bts: defer branch trace stopping, remove dead code\n\nRemove the unused free_locked_buffer() API.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "44bc9dc729e33a4ec6ebed4d0b6c08e8d20b42cf",
      "tree": "10fd9713406ba588638fff5fe9bc309371fc782e",
      "parents": [
        "017bc617657c928cb9a0c45a7a7e9f4e66695347"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 10:47:17 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Apr 08 10:47:17 2009 +0200"
      },
      "message": "mm, x86, ptrace, bts: defer branch trace stopping, cleanup\n\nAndrew Morton noticed that mm.h needlessly includes sched.h - remove it.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e2b371f00a6f529f6362654239bdec8dcd510760",
      "tree": "36e47cd9fb949fd72893c2d5ddab489fa55b1869",
      "parents": [
        "a26b89f05d194413c7238e0bea071054f6b5d3c8"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Fri Apr 03 16:43:35 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:36:13 2009 +0200"
      },
      "message": "mm, x86, ptrace, bts: defer branch trace stopping\n\nWhen a ptraced task is unlinked, we need to stop branch tracing for\nthat task.\n\nSince the unlink is called with interrupts disabled, and we need\ninterrupts enabled to stop branch tracing, we defer the work.\n\nCollect all branch tracing related stuff in a branch tracing context.\n\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: roland@redhat.com\nCc: eranian@googlemail.com\nCc: juan.villacis@intel.com\nCc: ak@linux.jf.intel.com\nLKML-Reference: \u003c20090403144550.712401000@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "33e5d76979cf01e3834814fe0aea569d1d602c1a",
      "tree": "58a03e5da59db203245da10db144a4f6f61a83ba",
      "parents": [
        "5482415a5ecc0cd791a5d885cc3db8281401078f"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Apr 02 16:56:32 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:48 2009 -0700"
      },
      "message": "nommu: fix a number of issues with the per-MM VMA patch\n\nFix a number of issues with the per-MM VMA patch:\n\n (1) Make mmap_pages_allocated an atomic_long_t, just in case this is used on\n     a NOMMU system with more than 2G pages.  Makes no difference on a 32-bit\n     system.\n\n (2) Report vma-\u003evm_pgoff * PAGE_SIZE as a 64-bit value, not a 32-bit value,\n     lest it overflow.\n\n (3) Move the allocation of the vm_area_struct slab back for fork.c.\n\n (4) Use KMEM_CACHE() for both vm_area_struct and vm_region slabs.\n\n (5) Use BUG_ON() rather than if () BUG().\n\n (6) Make the default validate_nommu_regions() a static inline rather than a\n     #define.\n\n (7) Make free_page_series()\u0027s objection to pages with a refcount !\u003d 1 more\n     informative.\n\n (8) Adjust the __put_nommu_region() banner comment to indicate that the\n     semaphore must be held for writing.\n\n (9) Limit the number of warnings about munmaps of non-mmapped regions.\n\nReported-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Greg Ungerer \u003cgerg@snapgear.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c2ec175c39f62949438354f603f4aa170846aabb",
      "tree": "f2c9bf1bec2deabe2d3a5092405b027637b6ead3",
      "parents": [
        "c2fdf3a9b2d52842808a8e551b53b55dd9b45030"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Mar 31 15:23:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:14 2009 -0700"
      },
      "message": "mm: page_mkwrite change prototype to match fault\n\nChange the page_mkwrite prototype to take a struct vm_fault, and return\nVM_FAULT_xxx flags.  There should be no functional change.\n\nThis makes it possible to return much more detailed error information to\nthe VM (and also can provide more information eg.  virtual_address to the\ndriver, which might be important in some special cases).\n\nThis is required for a subsequent fix.  And will also make it easier to\nmerge page_mkwrite() with fault() in future.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Chris Mason \u003cchris.mason@oracle.com\u003e\nCc: Trond Myklebust \u003ctrond.myklebust@fys.uio.no\u003e\nCc: Miklos Szeredi \u003cmiklos@szeredi.hu\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nCc: Mark Fasheh \u003cmfasheh@suse.com\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nCc: Artem Bityutskiy \u003cdedekind@infradead.org\u003e\nCc: Felix Blyakher \u003cfelixb@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3a7cca1ef4c1af9b0acef9bd66eff6582a737b5",
      "tree": "717097ec82ce0de55e44b2fe3e35fa041e5169b2",
      "parents": [
        "bd2f6199cf9af472aeefa1b642c9f504f19e6008"
      ],
      "author": {
        "name": "Edward Shishkin",
        "email": "edward.shishkin@gmail.com",
        "time": "Tue Mar 31 15:19:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Apr 01 08:59:12 2009 -0700"
      },
      "message": "vfs: add/use account_page_dirtied()\n\nAdd a helper function account_page_dirtied().  Use that from two\ncallsites.  reiser4 adds a function which adds a third callsite.\n\nSigned-off-by: Edward Shishkin\u003cedward.shishkin@gmail.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "895791dac6946d535991edd11341046f8e85ea77",
      "tree": "4ad589460b0d7c039f5d5a42666c6bd572255049",
      "parents": [
        "4bb9c5c02153dfc89a6c73a6f32091413805ad7d"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Fri Mar 13 16:35:44 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sat Mar 14 09:47:44 2009 +0100"
      },
      "message": "VM, x86, PAT: add a new vm flag to track full pfnmap at mmap\n\nImpact: cleanup\n\nAdd a new vm flag VM_PFN_AT_MMAP to identify a PFNMAP that is\nfully mapped with remap_pfn_range. Patch removes the overloading\nof VM_INSERTPAGE from the earlier patch.\n\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nLKML-Reference: \u003c20090313233543.GA19909@linux-os.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "4bb9c5c02153dfc89a6c73a6f32091413805ad7d",
      "tree": "408dee350cab80fbe7884b6640d651ef8ec44601",
      "parents": [
        "6a5c05f002c3e4f24887a5fe8e7df757d339d368"
      ],
      "author": {
        "name": "Pallipadi, Venkatesh",
        "email": "venkatesh.pallipadi@intel.com",
        "time": "Thu Mar 12 17:45:27 2009 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 04:28:50 2009 +0100"
      },
      "message": "VM, x86, PAT: Change is_linear_pfn_mapping to not use vm_pgoff\n\nImpact: fix false positive PAT warnings - also fix VirtalBox hang\n\nUse of vma-\u003evm_pgoff to identify the pfnmaps that are fully\nmapped at mmap time is broken. vm_pgoff is set by generic mmap\ncode even for cases where drivers are setting up the mappings\nat the fault time.\n\nThe problem was originally reported here:\n\n http://marc.info/?l\u003dlinux-kernel\u0026m\u003d123383810628583\u0026w\u003d2\n\nChange is_linear_pfn_mapping logic to overload VM_INSERTPAGE\nflag along with VM_PFNMAP to mean full PFNMAP setup at mmap\ntime.\n\nProblem also tracked at:\n\n http://bugzilla.kernel.org/show_bug.cgi?id\u003d12800\n\nReported-by: Thomas Hellstrom \u003cthellstrom@vmware.com\u003e\nTested-by: Frans Pop \u003celendil@planet.nl\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha\u003e@intel.com\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: \"ebiederm@xmission.com\" \u003cebiederm@xmission.com\u003e\nCc: \u003cstable@kernel.org\u003e # only for 2.6.29.1, not .28\nLKML-Reference: \u003c20090313004527.GA7176@linux-os.sc.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2dbcfa738368c8a40d4a5f0b65dc9879577cb21",
      "tree": "bdea32c637fa572a9c356cddd202a57530b2a45c",
      "parents": [
        "ada723dcd681e2dffd7d73345cc8fda0eb0df9bd"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Wed Feb 18 14:48:32 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:55 2009 -0800"
      },
      "message": "mm: clean up for early_pfn_to_nid()\n\nWhat\u0027s happening is that the assertion in mm/page_alloc.c:move_freepages()\nis triggering:\n\n\tBUG_ON(page_zone(start_page) !\u003d page_zone(end_page));\n\nOnce I knew this is what was happening, I added some annotations:\n\n\tif (unlikely(page_zone(start_page) !\u003d page_zone(end_page))) {\n\t\tprintk(KERN_ERR \"move_freepages: Bogus zones: \"\n\t\t       \"start_page[%p] end_page[%p] zone[%p]\\n\",\n\t\t       start_page, end_page, zone);\n\t\tprintk(KERN_ERR \"move_freepages: \"\n\t\t       \"start_zone[%p] end_zone[%p]\\n\",\n\t\t       page_zone(start_page), page_zone(end_page));\n\t\tprintk(KERN_ERR \"move_freepages: \"\n\t\t       \"start_pfn[0x%lx] end_pfn[0x%lx]\\n\",\n\t\t       page_to_pfn(start_page), page_to_pfn(end_page));\n\t\tprintk(KERN_ERR \"move_freepages: \"\n\t\t       \"start_nid[%d] end_nid[%d]\\n\",\n\t\t       page_to_nid(start_page), page_to_nid(end_page));\n ...\n\nAnd here\u0027s what I got:\n\n\tmove_freepages: Bogus zones: start_page[2207d0000] end_page[2207dffc0] zone[fffff8103effcb00]\n\tmove_freepages: start_zone[fffff8103effcb00] end_zone[fffff8003fffeb00]\n\tmove_freepages: start_pfn[0x81f600] end_pfn[0x81f7ff]\n\tmove_freepages: start_nid[1] end_nid[0]\n\nMy memory layout on this box is:\n\n[    0.000000] Zone PFN ranges:\n[    0.000000]   Normal   0x00000000 -\u003e 0x0081ff5d\n[    0.000000] Movable zone start PFN for each node\n[    0.000000] early_node_map[8] active PFN ranges\n[    0.000000]     0: 0x00000000 -\u003e 0x00020000\n[    0.000000]     1: 0x00800000 -\u003e 0x0081f7ff\n[    0.000000]     1: 0x0081f800 -\u003e 0x0081fe50\n[    0.000000]     1: 0x0081fed1 -\u003e 0x0081fed8\n[    0.000000]     1: 0x0081feda -\u003e 0x0081fedb\n[    0.000000]     1: 0x0081fedd -\u003e 0x0081fee5\n[    0.000000]     1: 0x0081fee7 -\u003e 0x0081ff51\n[    0.000000]     1: 0x0081ff59 -\u003e 0x0081ff5d\n\nSo it\u0027s a block move in that 0x81f600--\u003e0x81f7ff region which triggers\nthe problem.\n\nThis patch:\n\nDeclaration of early_pfn_to_nid() is scattered over per-arch include\nfiles, and it seems it\u0027s complicated to know when the declaration is used.\n I think it makes fix-for-memmap-init not easy.\n\nThis patch moves all declaration to include/linux/mm.h\n\nAfter this,\n  if !CONFIG_NODES_POPULATES_NODE_MAP \u0026\u0026 !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID\n     -\u003e Use static definition in include/linux/mm.h\n  else if !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID\n     -\u003e Use generic definition in mm/page_alloc.c\n  else\n     -\u003e per-arch back end function will be called.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReported-by: David Miller \u003cdavem@davemlloft.net\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1cf6e7d83bf334cc5916137862c920a97aabc018",
      "tree": "6bdbc4a98e9b332919beaeba0649797fff544795",
      "parents": [
        "610d18f4128ebbd88845d0fc60cce67b49af881e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Feb 18 14:48:18 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 18 15:37:54 2009 -0800"
      },
      "message": "mm: task dirty accounting fix\n\nYAMAMOTO-san noticed that task_dirty_inc doesn\u0027t seem to be called properly for\ncases where set_page_dirty is not used to dirty a page (eg. mark_buffer_dirty).\n\nAdditionally, there is some inconsistency about when task_dirty_inc is\ncalled.  It is used for dirty balancing, however it even gets called for\n__set_page_dirty_no_writeback.\n\nSo rather than increment it in a set_page_dirty wrapper, move it down to\nexactly where the dirty page accounting stats are incremented.\n\nCc: YAMAMOTO Takashi \u003cyamamoto@valinux.co.jp\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35010334aa007480a833401b80922299cb1a15ef",
      "tree": "6e318eb89da45d37ea8dceddd1ae6858b74dee1e",
      "parents": [
        "8ce9a75a307e142a8871c649627555e0e4a1eefb",
        "be716615fe596ee117292dc615e95f707fb67fd1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:27:39 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 17 14:27:39 2009 -0800"
      },
      "message": "Merge branch \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, vm86: fix preemption bug\n  x86, olpc: fix model detection without OFW\n  x86, hpet: fix for LS21 + HPET \u003d boot hang\n  x86: CPA avoid repeated lazy mmu flush\n  x86: warn if arch_flush_lazy_mmu_cpu is called in preemptible context\n  x86/paravirt: make arch_flush_lazy_mmu/cpu disable preemption\n  x86, pat: fix warn_on_once() while mapping 0-1MB range with /dev/mem\n  x86/cpa: make sure cpa is safe to call in lazy mmu mode\n  x86, ptrace, mm: fix double-free on race\n"
    },
    {
      "commit": "9f339e7028e2855717af3193c938f9960ad13b38",
      "tree": "76e0e9181f4ee2b324742d517518e837d5c250bf",
      "parents": [
        "06eb23b1ba39c61ee5d5faeb42a097635693e370"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Wed Feb 11 15:10:27 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Feb 11 15:44:20 2009 +0100"
      },
      "message": "x86, ptrace, mm: fix double-free on race\n\nPtrace_detach() races with __ptrace_unlink() if the traced task is\nreaped while detaching. This might cause a double-free of the BTS\nbuffer.\n\nChange the ptrace_detach() path to only do the memory accounting in\nptrace_bts_detach() and leave the buffer free to ptrace_bts_untrace()\nwhich will be called from __ptrace_unlink().\n\nThe fix follows a proposal from Oleg Nesterov.\n\nReported-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a6fe125950676015f5108fb71b2a67441755003",
      "tree": "c985fac46de39392466c4917c497b50bdc9c0757",
      "parents": [
        "4c098bcd55fad34dcf224bf8343db6a9ac58fc68"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Tue Feb 10 14:02:27 2009 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Feb 10 10:48:42 2009 -0800"
      },
      "message": "Do not account for the address space used by hugetlbfs using VM_ACCOUNT\n\nWhen overcommit is disabled, the core VM accounts for pages used by anonymous\nshared, private mappings and special mappings. It keeps track of VMAs that\nshould be accounted for with VM_ACCOUNT and VMAs that never had a reserve\nwith VM_NORESERVE.\n\nOvercommit for hugetlbfs is much riskier than overcommit for base pages\ndue to contiguity requirements. It avoids overcommiting on both shared and\nprivate mappings using reservation counters that are checked and updated\nduring mmap(). This ensures (within limits) that hugepages exist in the\nfuture when faults occurs or it is too easy to applications to be SIGKILLed.\n\nAs hugetlbfs makes its own reservations of a different unit to the base page\nsize, VM_ACCOUNT should never be set. Even if the units were correct, we would\ndouble account for the usage in the core VM and hugetlbfs. VM_NORESERVE may\nbe set because an application can request no reserves be made for hugetlbfs\nat the risk of getting killed later.\n\nWith commit fc8744adc870a8d4366908221508bb113d8b72ee, VM_NORESERVE and\nVM_ACCOUNT are getting unconditionally set for hugetlbfs-backed mappings. This\nbreaks the accounting for both the core VM and hugetlbfs, can trigger an\nOOM storm when hugepage pools are too small lockups and corrupted counters\notherwise are used. This patch brings hugetlbfs more in line with how the\ncore VM treats VM_NORESERVE but prevents VM_ACCOUNT being set.\n\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18e6959c385f3edf3991fa6662a53dac4eb10d5b",
      "tree": "9cb7911e022ce8943bdfb3f6611ce758963abb67",
      "parents": [
        "a6525042bfdfcab128bd91fad264de10fd24a55e"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Wed Jan 14 07:28:16 2009 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jan 14 07:32:44 2009 -0800"
      },
      "message": "mm: fix assertion\n\nThis assertion is incorrect for lockless pagecache.  By definition if we\nhave an unpinned page that we are trying to take a speculative reference\nto, it may become the tail of a compound page at any time (if it is\nfreed, then reallocated as a compound page).\n\nIt was still a valid assertion for the vmscan.c LRU isolation case, but\nit doesn\u0027t seem incredibly helpful...  if somebody wants it, they can\nput it back directly where it applies in the vmscan code.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8feae13110d60cc6287afabc2887366b0eb226c2",
      "tree": "b3188986faab70e753e00ea8670a11ba8ec844c0",
      "parents": [
        "41836382ebb415d68d3ebc4525e78e871fe58baf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Jan 08 12:04:47 2009 +0000"
      },
      "message": "NOMMU: Make VMAs per MM as for MMU-mode linux\n\nMake VMAs per mm_struct as for MMU-mode linux.  This solves two problems:\n\n (1) In SYSV SHM where nattch for a segment does not reflect the number of\n     shmat\u0027s (and forks) done.\n\n (2) In mmap() where the VMA\u0027s vm_mm is set to point to the parent mm by an\n     exec\u0027ing process when VM_EXECUTABLE is specified, regardless of the fact\n     that a VMA might be shared and already have its vm_mm assigned to another\n     process or a dead process.\n\nA new struct (vm_region) is introduced to track a mapped region and to remember\nthe circumstances under which it may be shared and the vm_list_struct structure\nis discarded as it\u0027s no longer required.\n\nThis patch makes the following additional changes:\n\n (1) Regions are now allocated with alloc_pages() rather than kmalloc() and\n     with no recourse to __GFP_COMP, so the pages are not composite.  Instead,\n     each page has a reference on it held by the region.  Anything else that is\n     interested in such a page will have to get a reference on it to retain it.\n     When the pages are released due to unmapping, each page is passed to\n     put_page() and will be freed when the page usage count reaches zero.\n\n (2) Excess pages are trimmed after an allocation as the allocation must be\n     made as a power-of-2 quantity of pages.\n\n (3) VMAs are added to the parent MM\u0027s R/B tree and mmap lists.  As an MM may\n     end up with overlapping VMAs within the tree, the VMA struct address is\n     appended to the sort key.\n\n (4) Non-anonymous VMAs are now added to the backing inode\u0027s prio list.\n\n (5) Holes may be punched in anonymous VMAs with munmap(), releasing parts of\n     the backing region.  The VMA and region structs will be split if\n     necessary.\n\n (6) sys_shmdt() only releases one attachment to a SYSV IPC shared memory\n     segment instead of all the attachments at that addresss.  Multiple\n     shmat()\u0027s return the same address under NOMMU-mode instead of different\n     virtual addresses as under MMU-mode.\n\n (7) Core dumping for ELF-FDPIC requires fewer exceptions for NOMMU-mode.\n\n (8) /proc/maps is now the global list of mapped regions, and may list bits\n     that aren\u0027t actually mapped anywhere.\n\n (9) /proc/meminfo gains a line (tagged \"MmapCopy\") that indicates the amount\n     of RAM currently allocated by mmap to hold mappable regions that can\u0027t be\n     mapped directly.  These are copies of the backing device or file if not\n     anonymous.\n\nThese changes make NOMMU mode more similar to MMU mode.  The downside is that\nNOMMU mode requires some extra memory to track things over NOMMU without this\npatch (VMAs are no longer shared, and there are now region structs).\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nTested-by: Mike Frysinger \u003cvapier.adi@gmail.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\n"
    },
    {
      "commit": "1c0fe6e3bda0464728c23c8d84aa47567e8b716c",
      "tree": "64f7903ee7757b14464e8a06bf91f5c4d5a8ba56",
      "parents": [
        "5bd1455c239672081d0e7f086e899b8cbc7a9844"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Tue Jan 06 14:38:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 15:58:58 2009 -0800"
      },
      "message": "mm: invoke oom-killer from page fault\n\nRather than have the pagefault handler kill a process directly if it gets\na VM_FAULT_OOM, have it call into the OOM killer.\n\nWith increasingly sophisticated oom behaviour (cpusets, memory cgroups,\noom killing throttling, oom priority adjustment or selective disabling,\npanic on oom, etc), it\u0027s silly to unconditionally kill the faulting\nprocess at page fault time.  Create a hook for pagefault oom path to call\ninto instead.\n\nOnly converted x86 and uml so far.\n\n[akpm@linux-foundation.org: make __out_of_memory() static]\n[akpm@linux-foundation.org: fix comment]\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b0f4b285d7ed174804658539129a834270f4829a",
      "tree": "be7f8dca58075aba2c6a137fcfd4d44c5c333efc",
      "parents": [
        "be9c5ae4eeec2e85527e95647348b8ea4eb25128",
        "5250d329e38cdf7580faeb9c53c17d3588d7d19c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:21:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Dec 28 12:21:10 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (241 commits)\n  sched, trace: update trace_sched_wakeup()\n  tracing/ftrace: don\u0027t trace on early stage of a secondary cpu boot, v3\n  Revert \"x86: disable X86_PTRACE_BTS\"\n  ring-buffer: prevent false positive warning\n  ring-buffer: fix dangling commit race\n  ftrace: enable format arguments checking\n  x86, bts: memory accounting\n  x86, bts: add fork and exit handling\n  ftrace: introduce tracing_reset_online_cpus() helper\n  tracing: fix warnings in kernel/trace/trace_sched_switch.c\n  tracing: fix warning in kernel/trace/trace.c\n  tracing/ring-buffer: remove unused ring_buffer size\n  trace: fix task state printout\n  ftrace: add not to regex on filtering functions\n  trace: better use of stack_trace_enabled for boot up code\n  trace: add a way to enable or disable the stack tracer\n  x86: entry_64 - introduce FTRACE_ frame macro v2\n  tracing/ftrace: add the printk-msg-only option\n  tracing/ftrace: use preempt_enable_no_resched_notrace in ring_buffer_time_stamp()\n  x86, bts: correctly report invalid bts records\n  ...\n\nFixed up trivial conflict in scripts/recordmcount.pl due to SH bits\nbeing already partly merged by the SH merge.\n"
    }
  ],
  "next": "c5dee6177f4bd2095aab7d9be9f6ebdddd6deee9"
}
