)]}'
{
  "log": [
    {
      "commit": "ea8f5fb8a71fddaf5f3a17100d3247855701f732",
      "tree": "052c3f7e699745394a35063d2a58c4ef0995f3c5",
      "parents": [
        "152cef40a808d3034e383465b3f7d6783613e458"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Wed Jul 13 13:14:27 2011 +0800"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Wed Aug 03 11:15:58 2011 -0400"
      },
      "message": "HWPoison: add memory_failure_queue()\n\nmemory_failure() is the entry point for HWPoison memory error\nrecovery.  It must be called in process context.  But commonly\nhardware memory errors are notified via MCE or NMI, so some delayed\nexecution mechanism must be used.  In MCE handler, a work queue + ring\nbuffer mechanism is used.\n\nIn addition to MCE, now APEI (ACPI Platform Error Interface) GHES\n(Generic Hardware Error Source) can be used to report memory errors\ntoo.  To add support to APEI GHES memory recovery, a mechanism similar\nto that of MCE is implemented.  memory_failure_queue() is the new\nentry point that can be called in IRQ context.  The next step is to\nmake MCE handler uses this interface too.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "9b679320a5fbf46454011e5c62e0b8991b0956d1",
      "tree": "49ea7be5e8bb669ef99533a18c73555e2882efc5",
      "parents": [
        "aa2c96d6f329e66cc59352b0f12e8f04e6a9593b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Mon Jun 27 16:18:09 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 27 18:00:13 2011 -0700"
      },
      "message": "mm/memory-failure.c: fix spinlock vs mutex order\n\nWe cannot take a mutex while holding a spinlock, so flip the order and\nfix the locking documentation.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5db8a73a8d7cc6a66afbf25ed7fda338caa8f5f9",
      "tree": "ef9de80dcee654053f3725570b0e053d2812d66a",
      "parents": [
        "d2c32258798f813dc2be6cbc32f78aa5ac5cb205"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Wed Jun 15 15:08:48 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 15 20:04:01 2011 -0700"
      },
      "message": "mm/memory-failure.c: fix page isolated count mismatch\n\nPages isolated for migration are accounted with the vmstat counters\nNR_ISOLATE_[ANON|FILE].  Callers of migrate_pages() are expected to\nincrement these counters when pages are isolated from the LRU.  Once the\npages have been migrated, they are put back on the LRU or freed and the\nisolated count is decremented.\n\nMemory failure is not properly accounting for pages it isolates causing\nthe NR_ISOLATED counters to be negative.  On SMP builds, this goes\nunnoticed as negative counters are treated as 0 due to expected per-cpu\ndrift.  On UP builds, the counter is treated by too_many_isolated() as a\nlarge value causing processes to enter D state during page reclaim or\ncompaction.  This patch accounts for pages isolated by memory failure\ncorrectly.\n\n[mel@csn.ul.ie: rewrote changelog]\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1495f230fa7750479c79e3656286b9183d662077",
      "tree": "e5e233bb9fe1916ccc7281e7dcc71b1572fb22c5",
      "parents": [
        "a09ed5e00084448453c8bada4dcd31e5fbfc2f21"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:27 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:26 2011 -0700"
      },
      "message": "vmscan: change shrinker API by passing shrink_control struct\n\nChange each shrinker\u0027s API by consolidating the existing parameters into\nshrink_control struct.  This will simplify any further features added w/o\ntouching each file of shrinker.\n\n[akpm@linux-foundation.org: fix build]\n[akpm@linux-foundation.org: fix warning]\n[kosaki.motohiro@jp.fujitsu.com: fix up new shrinker API]\n[akpm@linux-foundation.org: fix xfs warning]\n[akpm@linux-foundation.org: update gfs2]\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Steven Whitehouse \u003cswhiteho@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a09ed5e00084448453c8bada4dcd31e5fbfc2f21",
      "tree": "493f5f2a93efb080cdcc28e793cbcfc7999e66eb",
      "parents": [
        "7b1de5868b124d8f399d8791ed30a9b679d64d4d"
      ],
      "author": {
        "name": "Ying Han",
        "email": "yinghan@google.com",
        "time": "Tue May 24 17:12:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:25 2011 -0700"
      },
      "message": "vmscan: change shrink_slab() interfaces by passing shrink_control\n\nConsolidate the existing parameters to shrink_slab() into a new\nshrink_control struct.  This is needed later to pass the same struct to\nshrinkers.\n\nSigned-off-by: Ying Han \u003cyinghan@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bd486285f24ac2fd1ff64688fb0729712c5712c4",
      "tree": "d0fde80eb5c05893ba3b624b8219436b3efb274a",
      "parents": [
        "700c2a46e88265326764197d5b8842490bae5569"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue May 24 17:12:20 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:23 2011 -0700"
      },
      "message": "mem-hwpoison: fix page refcount around isolate_lru_page()\n\nDrop first page reference only after calling isolate_lru_page() to keep\npage stable reference while isolating.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Rik van Riel \u003criel@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": "3d48ae45e72390ddf8cc5256ac32ed6f7a19cbea",
      "tree": "1f46db3a8424090dd8e0b58991fa5acc1a73e680",
      "parents": [
        "97a894136f29802da19a15541de3c019e1ca147e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue May 24 17:12:06 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed May 25 08:39:18 2011 -0700"
      },
      "message": "mm: Convert i_mmap_lock to a mutex\n\nStraightforward conversion of i_mmap_lock to a mutex.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nCc: Jeff Dike \u003cjdike@addtoit.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "25985edcedea6396277003854657b5f3cb31a628",
      "tree": "f026e810210a2ee7290caeb737c23cb6472b7c38",
      "parents": [
        "6aba74f2791287ec407e0f92487a725a25908067"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Wed Mar 30 22:57:33 2011 -0300"
      },
      "committer": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Mar 31 11:26:23 2011 -0300"
      },
      "message": "Fix common misspellings\n\nFixes generated by \u0027codespell\u0027 and manually reviewed.\n\nSigned-off-by: Lucas De Marchi \u003clucas.demarchi@profusion.mobi\u003e\n"
    },
    {
      "commit": "6c5103890057b1bb781b26b7aae38d33e4c517d8",
      "tree": "e6e57961dcddcb5841acb34956e70b9dc696a880",
      "parents": [
        "3dab04e6978e358ad2307bca563fabd6c5d2c58b",
        "9d2e157d970a73b3f270b631828e03eb452d525e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 24 10:16:26 2011 -0700"
      },
      "message": "Merge branch \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-2.6.39/core\u0027 of git://git.kernel.dk/linux-2.6-block: (65 commits)\n  Documentation/iostats.txt: bit-size reference etc.\n  cfq-iosched: removing unnecessary think time checking\n  cfq-iosched: Don\u0027t clear queue stats when preempt.\n  blk-throttle: Reset group slice when limits are changed\n  blk-cgroup: Only give unaccounted_time under debug\n  cfq-iosched: Don\u0027t set active queue in preempt\n  block: fix non-atomic access to genhd inflight structures\n  block: attempt to merge with existing requests on plug flush\n  block: NULL dereference on error path in __blkdev_get()\n  cfq-iosched: Don\u0027t update group weights when on service tree\n  fs: assign sb-\u003es_bdi to default_backing_dev_info if the bdi is going away\n  block: Require subsystems to explicitly allocate bio_set integrity mempool\n  jbd2: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  jbd: finish conversion from WRITE_SYNC_PLUG to WRITE_SYNC and explicit plugging\n  fs: make fsync_buffers_list() plug\n  mm: make generic_writepages() use plugging\n  blk-cgroup: Add unaccounted time to timeslice_used.\n  block: fixup plugging stubs for !CONFIG_BLOCK\n  block: remove obsolete comments for blkdev_issue_zeroout.\n  blktrace: Use rq-\u003ecmd_flags directly in blk_add_trace_rq.\n  ...\n\nFix up conflicts in fs/{aio.c,super.c}\n"
    },
    {
      "commit": "e64a782fec684c29a8204c51b3cb554dce588592",
      "tree": "5ff0beb21b973f1ad0edc1e31b6a1c2ee4406bdc",
      "parents": [
        "702cfbf93aaf3a091b0c64c8766c1ade0a820c38"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Mar 22 16:32:44 2011 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 22 17:44:02 2011 -0700"
      },
      "message": "mm: change __remove_from_page_cache()\n\nNow we renamed remove_from_page_cache with delete_from_page_cache.  As\nconsistency of __remove_from_swap_cache and remove_from_swap_cache, we\nchange internal page cache handling function name, too.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Johannes Weiner \u003channes@cmpxchg.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": "f58c9df78c0360f0eb3852b9cc3a61e689bc2dd1",
      "tree": "378a97ad8e857d73ae6762312c7bcb1cf5efd4bc",
      "parents": [
        "fafc3dbaac6447ab8f78d2f7f32a521b24fc6b36"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Sun Jan 30 11:15:49 2011 +0800"
      },
      "committer": {
        "name": "Marcelo Tosatti",
        "email": "mtosatti@redhat.com",
        "time": "Thu Mar 17 13:08:27 2011 -0300"
      },
      "message": "mm: remove is_hwpoison_address\n\nUnused.\n\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\n"
    },
    {
      "commit": "7eaceaccab5f40bbfda044629a6298616aeaed50",
      "tree": "33954d12f63e25a47eb6d86ef3d3d0a5e62bf752",
      "parents": [
        "73c101011926c5832e6e141682180c4debe2cf45"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Mar 10 08:52:07 2011 +0100"
      },
      "message": "block: remove per-queue plugging\n\nCode has been converted over to the new explicit on-stack plugging,\nand delay users have been converted to use the new API for that.\nSo lets kill off the old plugging along with aops-\u003esync_page().\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "af241a083404acda7ba3690e5b7697949d729fcc",
      "tree": "f299ac844b38bc9a82e1477d8ef16648898f5584",
      "parents": [
        "a6d30dddae4648837be5a0c0cb2c0ae9ad0377db"
      ],
      "author": {
        "name": "Jin Dongming",
        "email": "jin.dongming@np.css.fujitsu.com",
        "time": "Tue Feb 01 15:52:41 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 02 16:03:19 2011 -0800"
      },
      "message": "thp: fix unsuitable behavior for hwpoisoned tail page\n\nWhen a tail page of THP is poisoned, memory-failure will do nothing except\nsetting PG_hwpoison, while the expected behavior is that the process, who\nis using the poisoned tail page, should be killed.\n\nThe above problem is caused by lru check of the poisoned tail page of THP.\nBecause PG_lru flag is only set on the head page of THP, the check always\nconsider the poisoned tail page as NON lru page.\n\nSo the lru check for the tail page of THP should be avoided, as like as\nhugetlb.\n\nThis patch adds !PageTransCompound() before lru check for THP, because of\nthe check (!PageHuge() \u0026\u0026 !PageTransCompound()) the whole branch could be\noptimized away at build time when both hugetlbfs and THP are set with \"N\"\n(or in archs not supporting either of those).\n\n[akpm@linux-foundation.org: fix unrelated typo in shake_page() comment]\nSigned-off-by: Jin Dongming \u003cjin.dongming@np.css.fujitsu.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a6d30dddae4648837be5a0c0cb2c0ae9ad0377db",
      "tree": "f04020b0442b8bfce45e159bde01a61f01c39c30",
      "parents": [
        "efeda7a41e09efce506a68c3549b60b16dd7dedd"
      ],
      "author": {
        "name": "Jin Dongming",
        "email": "jin.dongming@np.css.fujitsu.com",
        "time": "Tue Feb 01 15:52:40 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 02 16:03:19 2011 -0800"
      },
      "message": "thp: fix the wrong reported address of hwpoisoned hugepages\n\nWhen the tail page of THP is poisoned, the head page will be poisoned too.\n And the wrong address, address of head page, will be sent with sigbus\nalways.\n\nSo when the poisoned page is used by Guest OS which is running on KVM,\nafter the address changing(hva-\u003egpa) by qemu, the unexpected process on\nGuest OS will be killed by sigbus.\n\nWhat we expected is that the process using the poisoned tail page could be\nkilled on Guest OS, but not that the process using the healthy head page\nis killed.\n\nSince it is not good to poison the healthy page, avoid poisoning other\nthan the page which is really poisoned.\n  (While we poison all pages in a huge page in case of hugetlb,\n   we can do this for THP thanks to split_huge_page().)\n\nHere we fix two parts:\n  1. Isolate the poisoned page only to make sure\n     the reported address is the address of poisoned page.\n  2. make the poisoned page work as the poisoned regular page.\n\n[akpm@linux-foundation.org: fix spello in comment]\nSigned-off-by: Jin Dongming \u003cjin.dongming@np.css.fujitsu.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "efeda7a41e09efce506a68c3549b60b16dd7dedd",
      "tree": "aac3a6e4b1635dd4652bac9e4c3a94ff3962fe2e",
      "parents": [
        "b16957c643de958ef731c03e0b24c5537490f196"
      ],
      "author": {
        "name": "Jin Dongming",
        "email": "jin.dongming@np.css.fujitsu.com",
        "time": "Tue Feb 01 15:52:39 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 02 16:03:19 2011 -0800"
      },
      "message": "thp: fix splitting of hwpoisoned hugepages\n\nThe poisoned THP is now split with split_huge_page() in\ncollect_procs_anon().  If kmalloc() is failed in collect_procs(),\nsplit_huge_page() could not be called.  And the work after\nsplit_huge_page() for collecting the processes using poisoned page will\nnot be done, too.  So the processes using the poisoned page could not be\nkilled.\n\nThe condition becomes worse when CONFIG_DEBUG_VM \u003d\u003d \"Y\".  Because the\npoisoned THP could not be split, system panic will be caused by\nVM_BUG_ON(PageTransHuge(page)) in try_to_unmap().\n\nThis patch does:\n  1. move split_huge_page() to the place before collect_procs().\n     This can be sure the failure of splitting THP is caused by itself.\n  2. when splitting THP is failed, stop the operations after it.\n     This can avoid unexpected system panic or non sense works.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Jin Dongming \u003cjin.dongming@np.css.fujitsu.com\u003e\nReviewed-by: Hidetoshi Seto \u003cseto.hidetoshi@jp.fujitsu.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48db54ee2f41e8ae2faf330b55db34a9fffb5b3c",
      "tree": "5cdf936bf6996e379784e0b75b982a364f437368",
      "parents": [
        "57fc4a5ee322cde96c33f101d3c2d3b79011c05c"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Feb 01 15:52:33 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 02 16:03:18 2011 -0800"
      },
      "message": "mm/migration: fix page corruption during hugepage migration\n\nIf migrate_huge_page by memory-failure fails , it calls put_page in itself\nto decrease page reference and caller of migrate_huge_page also calls\nputback_lru_pages.  It can do double free of page so it can make page\ncorruption on page holder.\n\nIn addtion, clean of pages on caller is consistent behavior with\nmigrate_pages by cf608ac19c (\"mm: compaction: fix COMPACTPAGEFAILED\ncounting\").\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Christoph Lameter \u003ccl@linux.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": "57fc4a5ee322cde96c33f101d3c2d3b79011c05c",
      "tree": "dc0fbf22dc90c93690de7cf0d115e5499222ff04",
      "parents": [
        "552b372ba9db85751e7db2998f07cca2e51f5865"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Tue Feb 01 15:52:32 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Feb 02 16:03:18 2011 -0800"
      },
      "message": "mm: when migrate_pages returns 0, all pages must have been released\n\nIn some cases migrate_pages could return zero while still leaving a few\npages in the pagelist (and some caller wouldn\u0027t notice it has to call\nputback_lru_pages after commit cf608ac19c9 (\"mm: compaction: fix\nCOMPACTPAGEFAILED counting\")).\n\nAdd one missing putback_lru_pages not added by commit cf608ac19c95 (\"mm:\ncompaction: fix COMPACTPAGEFAILED counting\").\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: 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": "37c2ac7872a9387542616f658d20ac25f5bdb32e",
      "tree": "d115915db4a61e261012bf0f9c4cf14630243d71",
      "parents": [
        "91600e9e592e48736e630851c83da2ad6bf0e91f"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Jan 13 15:47:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:47 2011 -0800"
      },
      "message": "thp: compound_trans_order\n\nRead compound_trans_order safe. Noop for CONFIG_TRANSPARENT_HUGEPAGE\u003dn.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\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": "91600e9e592e48736e630851c83da2ad6bf0e91f",
      "tree": "5b17c58699eed9c7440812f0f2f29f4c80972973",
      "parents": [
        "14d1a55cd26f1860f837f37ae42520c7c13b1347"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Jan 13 15:47:16 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:47 2011 -0800"
      },
      "message": "thp: fix memory-failure hugetlbfs vs THP collision\n\nhugetlbfs was changed to allow memory failure to migrate the hugetlbfs\npages and that broke THP as split_huge_page was then called on hugetlbfs\npages too.\n\ncompound_head/order was also run unsafe on THP pages that can be splitted\nat any time.\n\nAll compound_head() invocations in memory-failure.c that are run on pages\nthat aren\u0027t pinned and that can be freed and reused from under us (while\ncompound_head is running) are buggy because compound_head can return a\ndangling pointer, but I\u0027m not fixing this as this is a generic\nmemory-failure bug not specific to THP but it applies to hugetlbfs too, so\nI can fix it later after THP is merged upstream.\n\nSigned-off-by: 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": "3f04f62f90d46a82dd73027c5fd7a15daed5c33d",
      "tree": "c267f1bdde3f3a7b2a8b52347fa5ad6053cff435",
      "parents": [
        "bae9c19bf12bb2a914a8e530270f41d36cc87c63"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Thu Jan 13 15:46:47 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:41 2011 -0800"
      },
      "message": "thp: split_huge_page paging\n\nPaging logic that splits the page before it is unmapped and added to swap\nto ensure backwards compatibility with the legacy swap code.  Eventually\nswap should natively pageout the hugepages to increase performance and\ndecrease seeking and fragmentation of swap space.  swapoff can just skip\nover huge pmd as they cannot be part of swap yet.  In add_to_swap be\ncareful to split the page only if we got a valid swap entry so we don\u0027t\nsplit hugepages with a full swap.\n\nIn theory we could split pages before isolating them during the lru scan,\nbut for khugepaged to be safe, I\u0027m relying on either mmap_sem write mode,\nor PG_lock taken, so split_huge_page has to run either with mmap_sem\nread/write mode or PG_lock taken.  Calling it from isolate_lru_page would\nmake locking more complicated, in addition to that split_huge_page would\ndeadlock if called by __isolate_lru_page because it has to take the lru\nlock to add the tail pages.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Rik van Riel \u003criel@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": "77f1fe6b08b13a87391549c8a820ddc817b6f50e",
      "tree": "720865bd0994da3787b6f37d33b2ee4c26a2de6c",
      "parents": [
        "3e7d344970673c5334cf7b5bb27c8c0942b06126"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Thu Jan 13 15:45:57 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 13 17:32:34 2011 -0800"
      },
      "message": "mm: migration: allow migration to operate asynchronously and avoid synchronous compaction in the faster path\n\nMigration synchronously waits for writeback if the initial passes fails.\nCallers of memory compaction do not necessarily want this behaviour if the\ncaller is latency sensitive or expects that synchronous migration is not\ngoing to have a significantly better success rate.\n\nThis patch adds a sync parameter to migrate_pages() allowing the caller to\nindicate if wait_on_page_writeback() is allowed within migration or not.\nFor reclaim/compaction, try_to_compact_pages() is first called\nasynchronously, direct reclaim runs and then try_to_compact_pages() is\ncalled synchronously as there is a greater expectation that it\u0027ll succeed.\n\n[akpm@linux-foundation.org: build/merge fix]\nSigned-off-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Andy Whitcroft \u003capw@shadowen.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "20d6c96b5f1cad5c5da4641945ec17a1d9a1afc8",
      "tree": "38168dc87d58fd924adb3aaca540cd23ad1246bf",
      "parents": [
        "4fe65cab844e6d3d7d310e66a501d5e7242ecb54"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Thu Dec 02 14:31:19 2010 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 02 14:51:15 2010 -0800"
      },
      "message": "mem-hotplug: introduce {un}lock_memory_hotplug()\n\nPresently hwpoison is using lock_system_sleep() to prevent a race with\nmemory hotplug.  However lock_system_sleep() is a no-op if\nCONFIG_HIBERNATION\u003dn.  Therefore we need a new lock.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSuggested-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cf608ac19c95804dc2df43b1f4f9e068aa9034ab",
      "tree": "a84d37df2b0bb57bd9a4b0b466726f5343fa5448",
      "parents": [
        "e4455abb50a19562dbfdc51a8424fda9b588bd6d"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Tue Oct 26 14:21:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 26 16:52:06 2010 -0700"
      },
      "message": "mm: compaction: fix COMPACTPAGEFAILED counting\n\nPresently update_nr_listpages() doesn\u0027t have a role.  That\u0027s because lists\npassed is always empty just after calling migrate_pages.  The\nmigrate_pages cleans up page list which have failed to migrate before\nreturning by aaa994b3.\n\n [PATCH] page migration: handle freeing of pages in migrate_pages()\n\n Do not leave pages on the lists passed to migrate_pages().  Seems that we will\n not need any postprocessing of pages.  This will simplify the handling of\n pages by the callers of migrate_pages().\n\nAt that time, we thought we don\u0027t need any postprocessing of pages.  But\nthe situation is changed.  The compaction need to know the number of\nfailed to migrate for COMPACTPAGEFAILED stat\n\nThis patch makes new rule for caller of migrate_pages to call\nputback_lru_pages.  So caller need to clean up the lists so it has a\nchance to postprocess the pages.  [suggested by Christoph Lameter]\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nReviewed-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\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": "a08c80ebb621a6dc277c91e029acb725f2f20254",
      "tree": "cfd43f8deaed341e81623b693579e51c09809dc1",
      "parents": [
        "9033ae16407f46ae06f559f9374281f6e9d89efc"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Sep 27 23:39:30 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:33:01 2010 +0200"
      },
      "message": "HWPOISON: Remove retry loop for try_to_unmap\n\nWe don\u0027t reply in other temporary failure cases and there were no\nreports of replies happening. I think the original reason it was\nadded was also just an early bug, not an observation of the race.\n\nSo remove the loop for now, but keep a warning message.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "9033ae16407f46ae06f559f9374281f6e9d89efc",
      "tree": "3d672e5797dd2fb8f5dc49adbc7b07bcae7f7c79",
      "parents": [
        "898e70d1e526d7814bd2f64c907706b83ffca9af"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Sep 27 23:36:05 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:33:01 2010 +0200"
      },
      "message": "HWPOISON: Turn addr_valid from bitfield into char\n\nThe addr_valid flag is the only flag in \"to_kill\" and it\u0027s slightly more\nefficient to have it as char instead of a bitfield.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "898e70d1e526d7814bd2f64c907706b83ffca9af",
      "tree": "bc2c6775d865158d0f483de723dc0406b6006ed2",
      "parents": [
        "fb46e73520940bfc426152cfe5e4a9f1ae3f00b6"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Sep 27 23:33:29 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:33:00 2010 +0200"
      },
      "message": "HWPOISON: Disable DEBUG by default\n\nNow that only a few obscure messages are left as pr_debug disable\noutputting of pr_debug in memory-failure.c by default.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "fb46e73520940bfc426152cfe5e4a9f1ae3f00b6",
      "tree": "c07420d04b11fd68ce59cdef64d8f6517240b5a9",
      "parents": [
        "1c80b990a3411733890eff10817e388d5e25e2dd"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Sep 27 23:31:30 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:33:00 2010 +0200"
      },
      "message": "HWPOISON: Convert pr_debugs to pr_info\n\nConvert a lot of pr_debugs in memory-failure.c that are generally useful\nto pr_info. It\u0027s reasonable to print at least one message why\nofflining succeeded or failed by default.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "1c80b990a3411733890eff10817e388d5e25e2dd",
      "tree": "ce5db3902697e04c78ef3a486a6d16a331a89d6c",
      "parents": [
        "6b0cd00bc396daf5c2dcf17a8d82055335341f46"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Sep 27 23:09:51 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:33:00 2010 +0200"
      },
      "message": "HWPOISON: Improve comments in memory-failure.c\n\nClean up and improve the overview comment in memory-failure.c\n\nTidy some grammar issues in other comments.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "6a90181c7b0558b86179c1f5bcf3ab11f9d1bd30",
      "tree": "4dafdd7c0e0b2df7b660de650b1d8201f143b560",
      "parents": [
        "d950b95882f3dc47e86f1496cd3f7fef540d6d6b"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 08 10:19:40 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:32:45 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: fix unpoison for hugepage\n\nCurrently unpoisoning hugepages doesn\u0027t work correctly because\nclearing PG_HWPoison is done outside if (TestClearPageHWPoison).\nThis patch fixes it.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "d950b95882f3dc47e86f1496cd3f7fef540d6d6b",
      "tree": "7eea4cc7dca413c29bbb2d935197bd2da352a505",
      "parents": [
        "8c6c2ecb44667f7204e9d2b89c4c1f42edc5a196"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 08 10:19:39 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:32:45 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: soft offlining for hugepage\n\nThis patch extends soft offlining framework to support hugepage.\nWhen memory corrected errors occur repeatedly on a hugepage,\nwe can choose to stop using it by migrating data onto another hugepage\nand disabling the original (maybe half-broken) one.\n\nChangeLog since v4:\n- branch soft_offline_page() for hugepage\n\nChangeLog since v3:\n- remove comment about \"ToDo: hugepage soft-offline\"\n\nChangeLog since v2:\n- move refcount handling into isolate_lru_page()\n\nChangeLog since v1:\n- add double check in isolating hwpoisoned hugepage\n- define free/non-free checker for hugepage\n- postpone calling put_page() for hugepage in soft_offline_page()\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "8c6c2ecb44667f7204e9d2b89c4c1f42edc5a196",
      "tree": "82dcfddae57bc34c04be1b044b363534082d8ada",
      "parents": [
        "a9869b837c098732bad84939015c0eb391b23e41"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 08 10:19:38 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:32:45 2010 +0200"
      },
      "message": "HWPOSION, hugetlb: recover from free hugepage error when !MF_COUNT_INCREASED\n\nCurrently error recovery for free hugepage works only for MF_COUNT_INCREASED.\nThis patch enables !MF_COUNT_INCREASED case.\n\nFree hugepages can be handled directly by alloc_huge_page() and\ndequeue_hwpoisoned_huge_page(), and both of them are protected\nby hugetlb_lock, so there is no race between them.\n\nNote that this patch defines the refcount of HWPoisoned hugepage\ndequeued from freelist is 1, deviated from present 0, thereby we\ncan avoid race between unpoison and memory failure on free hugepage.\nThis is reasonable because unlikely to free buddy pages, free hugepage\nis governed by hugetlbfs even after error handling finishes.\nAnd it also makes unpoison code added in the later patch cleaner.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Jun\u0027ichi Nomura \u003cj-nomura@ce.jp.nec.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "6de2b1aab94355482bd2accdc115666509667458",
      "tree": "630a88dd5afe2c49a428179770140b22bbc9d7da",
      "parents": [
        "290408d4a25002f099efeee7b6a5778d431154d6"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Sep 08 10:19:36 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Fri Oct 08 09:32:45 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: add free check to dequeue_hwpoison_huge_page()\n\nThis check is necessary to avoid race between dequeue and allocation,\nwhich can cause a free hugepage to be dequeued twice and get kernel unstable.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "47f43e7efadacc627f325aba64c6a547de0926db",
      "tree": "e83afbf6be4f594d6f0cd1bf815e9469d4a14f18",
      "parents": [
        "0d9ee6a2d4a6e92c49e6fa9469e5731d21ee203e"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue Sep 28 07:37:55 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Oct 07 09:47:10 2010 +0200"
      },
      "message": "HWPOISON: Stop shrinking at right page count\n\nWhen we call the slab shrinker to free a page we need to stop at\npage count one because the caller always holds a single reference, not zero.\n\nThis avoids useless looping over slab shrinkers and freeing too much\nmemory.\n\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "0d9ee6a2d4a6e92c49e6fa9469e5731d21ee203e",
      "tree": "563ee93b63198db99f60fff24f98db3d9d12cc08",
      "parents": [
        "a337fdac7a5622d1e6547f4b476c14dfe5a2c892"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Sep 27 22:03:33 2010 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Thu Oct 07 09:45:44 2010 +0200"
      },
      "message": "HWPOISON: Report correct address granuality for AO huge page errors\n\nThe SIGBUS user space signalling is supposed to report the\naddress granuality of a corruption. Pass this information correctly\nfor huge pages by querying the hpage order.\n\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "1021a645344d4a77333e19e60d37b9343be0d7b7",
      "tree": "7a78ab55f27f97209ed1b85ccfd88c6d5b8416d3",
      "parents": [
        "7367f5b013fee33f7d40a5a10a39d5134f529ec8",
        "28957a5467bab9ed51a237d21e31055fad987887"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:15:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Aug 12 10:15:10 2010 -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:\n  hugetlb: add missing unlock in avoidcopy path in hugetlb_cow()\n  hwpoison: rename CONFIG\n  HWPOISON, hugetlb: support hwpoison injection for hugepage\n  HWPOISON, hugetlb: detect hwpoison in hugetlb code\n  HWPOISON, hugetlb: isolate corrupted hugepage\n  HWPOISON, hugetlb: maintain mce_bad_pages in handling hugepage error\n  HWPOISON, hugetlb: set/clear PG_hwpoison bits on hugepage\n  HWPOISON, hugetlb: enable error handling path for hugepage\n  hugetlb, rmap: add reverse mapping for hugepage\n  hugetlb: move definition of is_vm_hugetlb_page() to hugepage_inline.h\n\nFix up trivial conflicts in mm/memory-failure.c\n"
    },
    {
      "commit": "93f70f900da36fbc19c13c2aa04b2e468c8d00fb",
      "tree": "7868f891bca0ed18c9806771a68feac0b4010517",
      "parents": [
        "c9fbdd5f131440981b124883656ea21fb12cde4a"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:20 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:46 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: isolate corrupted hugepage\n\nIf error hugepage is not in-use, we can fully recovery from error\nby dequeuing it from freelist, so return RECOVERY.\nOtherwise whether or not we can recovery depends on user processes,\nso return DELAYED.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "c9fbdd5f131440981b124883656ea21fb12cde4a",
      "tree": "72de1cb1bb49525fca9e3f77678db9c77b94d912",
      "parents": [
        "7013febc8940960eaaba039bac0f80910f679ce1"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:19 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:32 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: maintain mce_bad_pages in handling hugepage error\n\nFor now all pages in the error hugepage are considered as hwpoisoned,\nso count all of them in mce_bad_pages.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "7013febc8940960eaaba039bac0f80910f679ce1",
      "tree": "27a61a69ae8c1df5149ba9ac98cc573e8bf19b95",
      "parents": [
        "7af446a841a264a1a9675001005b29ce01d1fc57"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:18 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:22:12 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: set/clear PG_hwpoison bits on hugepage\n\nTo avoid race condition between concurrent memory errors on identified\nhugepage, we atomically test and set PG_hwpoison bit on the head page.\nAll pages in the error hugepage are considered as hwpoisoned\nfor now, so set and clear all PG_hwpoison bits in the hugepage\nwith page lock of the head page held.\n\nDependency:\n  \"HWPOISON, hugetlb: enable error handling path for hugepage\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "7af446a841a264a1a9675001005b29ce01d1fc57",
      "tree": "902fec55a889d33771f267fc6242b1de43d9d0c6",
      "parents": [
        "0fe6e20b9c4c53b3e97096ee73a0857f60aad43f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Fri May 28 09:29:17 2010 +0900"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Aug 11 09:21:36 2010 +0200"
      },
      "message": "HWPOISON, hugetlb: enable error handling path for hugepage\n\nThis patch just enables handling path. Real containing and\nrecovering operation will be implemented in following patches.\n\nDependency:\n  \"hugetlb, rmap: add reverse mapping for hugepage.\"\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "bbeb34062fbad287c949a945a516a0c15b179993",
      "tree": "cf29b50e076ba1ddc07d5b1292f243653a2f67a9",
      "parents": [
        "6c3f6041172b78d5532c6bf3680d304e92ec2e66"
      ],
      "author": {
        "name": "Huang Ying",
        "email": "ying.huang@intel.com",
        "time": "Tue Jun 22 14:23:11 2010 +0800"
      },
      "committer": {
        "name": "Avi Kivity",
        "email": "avi@redhat.com",
        "time": "Sun Aug 01 10:47:11 2010 +0300"
      },
      "message": "KVM: Fix a race condition for usage of is_hwpoison_address()\n\nis_hwpoison_address accesses the page table, so the caller must hold\ncurrent-\u003emm-\u003emmap_sem in read mode. So fix its usage in hva_to_pfn of\nkvm accordingly.\n\nComment is_hwpoison_address to remind other users.\n\nReported-by: Avi Kivity \u003cavi@redhat.com\u003e\nSigned-off-by: Huang Ying \u003cying.huang@intel.com\u003e\nSigned-off-by: Avi Kivity \u003cavi@redhat.com\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": "5a0e3ad6af8660be21ca98a971cd00f331318c05",
      "tree": "5bfb7be11a03176a87296a43ac6647975c00a1d1",
      "parents": [
        "ed391f4ebf8f701d3566423ce8f17e614cde9806"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Mar 24 17:04:11 2010 +0900"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Tue Mar 30 22:02:32 2010 +0900"
      },
      "message": "include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h\n\npercpu.h is included by sched.h and module.h and thus ends up being\nincluded when building most .c files.  percpu.h includes slab.h which\nin turn includes gfp.h making everything defined by the two files\nuniversally available and complicating inclusion dependencies.\n\npercpu.h -\u003e slab.h dependency is about to be removed.  Prepare for\nthis change by updating users of gfp and slab facilities include those\nheaders directly instead of assuming availability.  As this conversion\nneeds to touch large number of source files, the following script is\nused as the basis of conversion.\n\n  http://userweb.kernel.org/~tj/misc/slabh-sweep.py\n\nThe script does the followings.\n\n* Scan files for gfp and slab usages and update includes such that\n  only the necessary includes are there.  ie. if only gfp is used,\n  gfp.h, if slab is used, slab.h.\n\n* When the script inserts a new include, it looks at the include\n  blocks and try to put the new include such that its order conforms\n  to its surrounding.  It\u0027s put in the include block which contains\n  core kernel includes, in the same order that the rest are ordered -\n  alphabetical, Christmas tree, rev-Xmas-tree or at the end if there\n  doesn\u0027t seem to be any matching order.\n\n* If the script can\u0027t find a place to put a new include (mostly\n  because the file doesn\u0027t have fitting include block), it prints out\n  an error message indicating which .h file needs to be added to the\n  file.\n\nThe conversion was done in the following steps.\n\n1. The initial automatic conversion of all .c files updated slightly\n   over 4000 files, deleting around 700 includes and adding ~480 gfp.h\n   and ~3000 slab.h inclusions.  The script emitted errors for ~400\n   files.\n\n2. Each error was manually checked.  Some didn\u0027t need the inclusion,\n   some needed manual addition while adding it to implementation .h or\n   embedding .c file was more appropriate for others.  This step added\n   inclusions to around 150 files.\n\n3. The script was run again and the output was compared to the edits\n   from #2 to make sure no file was left behind.\n\n4. Several build tests were done and a couple of problems were fixed.\n   e.g. lib/decompress_*.c used malloc/free() wrappers around slab\n   APIs requiring slab.h to be added manually.\n\n5. The script was run on all .h files but without automatically\n   editing them as sprinkling gfp.h and slab.h inclusions around .h\n   files could easily lead to inclusion dependency hell.  Most gfp.h\n   inclusion directives were ignored as stuff from gfp.h was usually\n   wildly available and often used in preprocessor macros.  Each\n   slab.h inclusion directive was examined and added manually as\n   necessary.\n\n6. percpu.h was updated not to include slab.h.\n\n7. Build test were done on the following configurations and failures\n   were fixed.  CONFIG_GCOV_KERNEL was turned off for all tests (as my\n   distributed build env didn\u0027t work with gcov compiles) and a few\n   more options had to be turned off depending on archs to make things\n   build (like ipr on powerpc/64 which failed due to missing writeq).\n\n   * x86 and x86_64 UP and SMP allmodconfig and a custom test config.\n   * powerpc and powerpc64 SMP allmodconfig\n   * sparc and sparc64 SMP allmodconfig\n   * ia64 SMP allmodconfig\n   * s390 SMP allmodconfig\n   * alpha SMP allmodconfig\n   * um on x86_64 SMP allmodconfig\n\n8. percpu.h modifications were reverted so that it could be applied as\n   a separate patch and serve as bisection point.\n\nGiven the fact that I had only a couple of failures from tests on step\n6, I\u0027m fairly confident about the coverage of this conversion patch.\nIf there is a breakage, it\u0027s likely to be something in one of the arch\nheaders which should be easily discoverable easily on most builds of\nthe specific arch.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nGuess-its-ok-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Lee Schermerhorn \u003cLee.Schermerhorn@hp.com\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": "27df5068e24f2f88de98e95eb6e8dbc9800bf80e",
      "tree": "a93ae4838cc5a1b6c866005bd79777895d0ba7de",
      "parents": [
        "dd59f6c76b265ed2ff18b497d6105a9511b1feb1"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Dec 21 19:56:42 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Dec 21 19:56:42 2009 +0100"
      },
      "message": "HWPOISON: Add PROC_FS dependency to hwpoison injector v2\n\nThe injector filter requires stable_page_flags() which is supplied\nby procfs. So make it dependent on that.\n\nAlso add ifdefs around the filter code in memory-failure.c so that\nwhen the filter is disabled due to missing dependencies the whole\ncode still builds.\n\nReported-by: Ingo Molnar\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "f2c03debdfb387fa2e35cac6382779072b8b9209",
      "tree": "b43b03515fb32025ba81f0933a233f7c93c32470",
      "parents": [
        "12686d153abff397fa0927c620d5a3de84910b72"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Dec 16 12:20:01 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:20:01 2009 +0100"
      },
      "message": "HWPOISON: Remove stray phrase in a comment\n\nBetter to have complete sentences.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "12686d153abff397fa0927c620d5a3de84910b72",
      "tree": "3a6f19e38e99cded5067452693083ac76c63733f",
      "parents": [
        "0d57eb8dfcb92e3dd928d792f4ed2b2fec680bb7"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Dec 16 12:20:01 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:20:01 2009 +0100"
      },
      "message": "HWPOISON: Try to allocate migration page on the same node\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.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": "2326c467df4ff814dc07cf1bdaa1e6e0a9c9f21c",
      "tree": "7876b43b70a001a8f2d426b77ac6b85d378c7a76",
      "parents": [
        "0474a60ec704324577782b1057d05b574388d552"
      ],
      "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: Undefine short-hand macros after use to avoid namespace conflict\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "0474a60ec704324577782b1057d05b574388d552",
      "tree": "75c574fe9a64332aeed6c636bf6bd9e6485d1603",
      "parents": [
        "fe194d3e100dea323d7b2de96d3b44d0c067ba7a"
      ],
      "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: Use new shake_page in memory_failure\n\nshake_page handles more types of page caches than\nthe much simpler lru_add_drain_all:\n\n- slab (quite inefficiently for now)\n- any other caches with a shrinker callback\n- per cpu page allocator pages\n- per CPU LRU\n\nUse this call to try to turn pages into free or LRU pages.\nThen handle the case of the page becoming free after drain everything.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "1bfe5febe34d2be2120803c10720e179186357c9",
      "tree": "d4d8b1dacc375a1004ab1ed508333bc33e46d9a9",
      "parents": [
        "4fd466eb46a6a917c317a87fb94bfc7252a0f7ed"
      ],
      "author": {
        "name": "Haicheng Li",
        "email": "haicheng.li@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: add an interface to switch off/on all the page filters\n\nIn some use cases, user doesn\u0027t need extra filtering. E.g. user program\ncan inject errors through madvise syscall to its own pages, however it\nmight not know what the page state exactly is or which inode the page\nbelongs to.\n\nSo introduce an one-off interface \"corrupt-filter-enable\".\n\nEcho 0 to switch off page filters, and echo 1 to switch on the filters.\n[AK: changed default to 0]\n\nSigned-off-by: Haicheng Li \u003chaicheng.li@linux.intel.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "4fd466eb46a6a917c317a87fb94bfc7252a0f7ed",
      "tree": "003b28724241a22a41dc9ae067f30beadbf76e6a",
      "parents": [
        "d324236b3333e87c8825b35f2104184734020d35"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: add memory cgroup filter\n\nThe hwpoison test suite need to inject hwpoison to a collection of\nselected task pages, and must not touch pages not owned by them and\nthus kill important system processes such as init. (But it\u0027s OK to\nmis-hwpoison free/unowned pages as well as shared clean pages.\nMis-hwpoison of shared dirty pages will kill all tasks, so the test\nsuite will target all or non of such tasks in the first place.)\n\nThe memory cgroup serves this purpose well. We can put the target\nprocesses under the control of a memory cgroup, and tell the hwpoison\ninjection code to only kill pages associated with some active memory\ncgroup.\n\nThe prerequisite for doing hwpoison stress tests with mem_cgroup is,\nthe mem_cgroup code tracks task pages _accurately_ (unless page is\nlocked).  Which we believe is/should be true.\n\nThe benefits are simplification of hwpoison injector code. Also the\nmem_cgroup code will automatically be tested by hwpoison test cases.\n\nThe alternative interfaces pin-pfn/unpin-pfn can also delegate the\n(process and page flags) filtering functions reliably to user space.\nHowever prototype implementation shows that this scheme adds more\ncomplexity than we wanted.\n\nExample test case:\n\n\tmkdir /cgroup/hwpoison\n\n\tusemem -m 100 -s 1000 \u0026\n\techo `jobs -p` \u003e /cgroup/hwpoison/tasks\n\n\tmemcg_ino\u003d$(ls -id /cgroup/hwpoison | cut -f1 -d\u0027 \u0027)\n\techo $memcg_ino \u003e /debug/hwpoison/corrupt-filter-memcg\n\n\tpage-types -p `pidof init`   --hwpoison  # shall do nothing\n\tpage-types -p `pidof usemem` --hwpoison  # poison its pages\n\n[AK: Fix documentation]\n[Add fix for problem noticed by Li Zefan \u003clizf@cn.fujitsu.com\u003e;\ndentry in the css could be NULL]\n\nCC: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCC: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nCC: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCC: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCC: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCC: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCC: Paul Menage \u003cmenage@google.com\u003e\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nCC: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "478c5ffc0b50527bd2390f2daa46cc16276b8413",
      "tree": "f58f5be9760fd0e81567611cf6e9f9bc77d1d3cd",
      "parents": [
        "1a9b5b7fe0c5dad8a635288882d36785dea742f9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: add page flags filter\n\nWhen specified, only poison pages if ((page_flags \u0026 mask) \u003d\u003d value).\n\n-       corrupt-filter-flags-mask\n-       corrupt-filter-flags-value\n\nThis allows stress testing of many kinds of pages.\n\nStrictly speaking, the buddy pages requires taking zone lock, to avoid\nsetting PG_hwpoison on a \"was buddy but now allocated to someone\" page.\nHowever we can just do nothing because we set PG_locked in the beginning,\nthis prevents the page allocator from allocating it to someone. (It will\nBUG() on the unexpected PG_locked, which is fine for hwpoison testing.)\n\n[AK: Add select PROC_PAGE_MONITOR to satisfy dependency]\n\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "7c116f2b0dbac4a1dd051c7a5e8cef37701cafd4",
      "tree": "ac7f1e56551df46bc79e400a182a57f4eae5ddaf",
      "parents": [
        "138ce286eb6ee6d39ca4fb50516e93adaf6b605f"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Wed Dec 16 12:19:59 2009 +0100"
      },
      "message": "HWPOISON: add fs/device filters\n\nFilesystem data/metadata present the most tricky-to-isolate pages.\nIt requires careful code review and stress testing to get them right.\n\nThe fs/device filter helps to target the stress tests to some specific\nfilesystem pages. The filter condition is block device\u0027s major/minor\nnumbers:\n        - corrupt-filter-dev-major\n        - corrupt-filter-dev-minor\nWhen specified (non -1), only page cache pages that belong to that\ndevice will be poisoned.\n\nThe filters are checked reliably on the locked and refcounted page.\n\nHaicheng: clear PG_hwpoison and drop bad page count if filter not OK\nAK: Add documentation\n\nCC: Haicheng Li \u003chaicheng.li@intel.com\u003e\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "138ce286eb6ee6d39ca4fb50516e93adaf6b605f",
      "tree": "a3dc707a8daa6d28e1b1b0d8315dcc5c5339ed59",
      "parents": [
        "d95ea51e3a7e9ee051d19f1dd283ca61d1aa5ec6"
      ],
      "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: return 0 to indicate success reliably\n\nReturn 0 to indicate success, when\n- action result is RECOVERED or DELAYED\n- no extra page reference\n\nNote that dirty swapcache pages are kept in swapcache, so can have one\nmore reference count.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "d95ea51e3a7e9ee051d19f1dd283ca61d1aa5ec6",
      "tree": "c7bbafb931c9023dfaf1db8e4882a7154dc88ba0",
      "parents": [
        "847ce401df392b0704369fd3f75df614ac1414b4"
      ],
      "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: make semantics of IGNORED/DELAYED clear\n\nChange semantics for\n- IGNORED: not handled; it may well be _unsafe_\n- DELAYED: to be handled later; it is _safe_\n\nWith this change,\n- IGNORED/FAILED mean (maybe) Error\n- DELAYED/RECOVERED mean Success\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\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": "8d22ba1b74aa9420b6032d856446564fb21f8090",
      "tree": "6c2e2d27e81d784faa0481500f1cecc613ff1167",
      "parents": [
        "95d01fc664b9476e0d18e3d745bb209a42a33588"
      ],
      "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: detect free buddy pages explicitly\n\nMost free pages in the buddy system have no PG_buddy set.\nIntroduce is_free_buddy_page() for detecting them reliably.\n\nCC: Nick Piggin \u003cnpiggin@suse.de\u003e\nCC: Mel Gorman \u003cmel@linux.vnet.ibm.com\u003e\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "95d01fc664b9476e0d18e3d745bb209a42a33588",
      "tree": "0b6a46b0f2e13fb169e64ebf0b270a52c666e7f6",
      "parents": [
        "dc2a1cbf7d862e9d0abea1d1b4c8712dfbb5a398"
      ],
      "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: remove the free buddy page handler\n\nThe buddy page has already be handled in the very beginning.\nSo remove redundant code.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "dc2a1cbf7d862e9d0abea1d1b4c8712dfbb5a398",
      "tree": "7a0c08509e1bff29d5a0a2ba7f414878f024352b",
      "parents": [
        "71f72525dfaaec012e23089c73331654ea7b12d3"
      ],
      "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: introduce delete_from_lru_cache()\n\nIntroduce delete_from_lru_cache() to\n- clear PG_active, PG_unevictable to avoid complains at unpoison time\n- move the isolate_lru_page() call back to the handlers instead of the\n  entrance of __memory_failure(), this is more hwpoison filter friendly\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "db0480b3a61bd6ad86ead3b8bbad094ab0996932",
      "tree": "31b3d85181201234694a19d05590d7c5084f89ed",
      "parents": [
        "1668bfd5be9d8a52536c4865000fbbe065a3613b"
      ],
      "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: comment the possible set_page_dirty() race\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "1668bfd5be9d8a52536c4865000fbbe065a3613b",
      "tree": "85f060960de6e27f6933d56fcfd194b25ddbc460",
      "parents": [
        "82ba011b9041dd31c15e4f63797b08aa0a288e61"
      ],
      "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: abort on failed unmap\n\nDon\u0027t try to isolate a still mapped page. Otherwise we will hit the\nBUG_ON(page_mapped(page)) in __remove_from_page_cache().\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": "bd1ce5f91f545730df4af492f774d9d32f5da3cb",
      "tree": "7d25f35cda1f37e30fd21bb2375f2693837d5ec5",
      "parents": [
        "a7560fc80f33cab33176ee78f146df22b28e3338"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "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: avoid grabbing the page count multiple times during madvise injection\n\nIf page is double referenced in madvise_hwpoison() and __memory_failure(),\nremove_mapping() will fail because it expects page_count\u003d2. Fix it by\nnot grabbing extra page count in __memory_failure().\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "a7560fc80f33cab33176ee78f146df22b28e3338",
      "tree": "1301b08559615aa5e7db0b11f03c98f3848c8142",
      "parents": [
        "9b9a29ecd75e310f75a9243e1c3538ad34598fcb"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "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: return ENXIO on invalid page number\n\nUse a different errno than the usual EIO for invalid page numbers.\nThis is mainly for better reporting for the injector.\n\nThis also avoids calling action_result() with invalid pfn.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "9b9a29ecd75e310f75a9243e1c3538ad34598fcb",
      "tree": "170f130a050f28af8bc944a23409a8591ba6d7fe",
      "parents": [
        "0e9052eb98a9986ec0669d030604f7a68f6df638"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "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: remove the anonymous entry\n\n(PG_swapbacked \u0026\u0026 !PG_lru) pages should not happen.\nBetter to treat them as unknown pages.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\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": "af8e3354b4bbd1ee5a3a55d11a5e1fe37e77f0ba",
      "tree": "8dc0ece80878d00409d4662c5fd1e28cd7fbbdd8",
      "parents": [
        "53f79acb6ecb648afd63e0f13deba167f1a934df"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Mon Dec 14 17:58:59 2009 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 15 08:53:17 2009 -0800"
      },
      "message": "mm: CONFIG_MMU for PG_mlocked\n\nRemove three degrees of obfuscation, left over from when we had\nCONFIG_UNEVICTABLE_LRU.  MLOCK_PAGES is CONFIG_HAVE_MLOCKED_PAGE_BIT is\nCONFIG_HAVE_MLOCK is CONFIG_MMU.  rmap.o (and memory-failure.o) are only\nbuilt when CONFIG_MMU, so don\u0027t need such conditions at all.\n\nSomehow, I feel no compulsion to remove the CONFIG_HAVE_MLOCK* lines from\n169 defconfigs: leave those to evolve in due course.\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\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: 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": "af901ca181d92aac3a7dc265144a9081a86d8f39",
      "tree": "380054af22521144fbe1364c3bcd55ad24c9bde4",
      "parents": [
        "972b94ffb90ea6d20c589d9a47215df103388ddd"
      ],
      "author": {
        "name": "André Goddard Rosa",
        "email": "andre.goddard@gmail.com",
        "time": "Sat Nov 14 13:09:05 2009 -0200"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Fri Dec 04 15:39:55 2009 +0100"
      },
      "message": "tree-wide: fix assorted typos all over the place\n\nThat is \"success\", \"unknown\", \"through\", \"performance\", \"[re|un]mapping\"\n, \"access\", \"default\", \"reasonable\", \"[con]currently\", \"temperature\"\n, \"channel\", \"[un]used\", \"application\", \"example\",\"hierarchy\", \"therefore\"\n, \"[over|under]flow\", \"contiguous\", \"threshold\", \"enough\" and others.\n\nSigned-off-by: André Goddard Rosa \u003candre.goddard@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "7456b0405d8fc063c49628f969cdb23be060fc80",
      "tree": "b1216354d6940b800128b224e2d801ed9232fa02",
      "parents": [
        "65a64464349883891e21e74af16c05d6e1eeb4e9"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Mon Oct 19 08:15:01 2009 +0200"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Oct 19 08:15:01 2009 +0200"
      },
      "message": "HWPOISON: fix invalid page count in printk output\n\nThe madvise injector already holds a reference when passing in a page\nto the memory-failure code. The code corrects for this additional reference\nfor its checks, but the final printk output didn\u0027t. Fix that.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "01e00f880ca700376e1845cf7a2524ebe68e47d6",
      "tree": "6e15c363298dd01dd44d5c96afd9ef36078a1247",
      "parents": [
        "4779cb31c0ee3b355116745edca3f3e5fe865553"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh.dickins@tiscali.co.uk",
        "time": "Tue Oct 13 15:02:11 2009 +0100"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Oct 19 07:29:20 2009 +0200"
      },
      "message": "HWPOISON: fix oops on ksm pages\n\nMemory failure on a KSM page currently oopses on its NULL anon_vma in\npage_lock_anon_vma(): that may not be much worse than the consequence\nof ignoring it, but it is better to be consistent with how ZERO_PAGE\nand hugetlb pages and other awkward cases are treated.  Just skip it.\n\nSigned-off-by: Hugh Dickins \u003chugh.dickins@tiscali.co.uk\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n"
    },
    {
      "commit": "e43c3afb367112a5b357f9adfac7817255129c88",
      "tree": "b85f21b23ab3a3c38a37cb192bd9a845e964c501",
      "parents": [
        "f58ee00f1547ceb17b610ecfce2aa9097f1f9737"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Tue Sep 29 13:16:20 2009 +0800"
      },
      "committer": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Mon Oct 19 07:28:24 2009 +0200"
      },
      "message": "HWPOISON: return early on non-LRU pages\n\nRight now we have some trouble with non atomic access\nto page flags when locking the page. To plug this hole\nfor now, limit error recovery to LRU pages for now.\n\nThis could be better fixed by defining a suitable protocol,\nbut let\u0027s go this simple way for now\n\nThis avoids unnecessary races with __set_page_locked() and\n__SetPageSlab*() and maybe more non-atomic page flag operations.\n\nThis loses isolated pages which are currently in page reclaim, but these\nare relatively limited compared to the total memory.\n\nSigned-off-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\n[AK: new description, bug fixes, cleanups]\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"
    }
  ]
}
