* Patch "mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page()" has been added to the 3.14-stable tree
@ 2015-04-26 9:56 gregkh
0 siblings, 0 replies; only message in thread
From: gregkh @ 2015-04-26 9:56 UTC (permalink / raw)
To: n-horiguchi, akpm, andi, gong.chen, gregkh, stable, tony.luck,
torvalds
Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page()
to the 3.14-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mm-hwpoison-drop-lru_add_drain_all-in-__soft_offline_page.patch
and it can be found in the queue-3.14 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From 9ab3b598d2dfbdb0153ffa7e4b1456bbff59a25d Mon Sep 17 00:00:00 2001
From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date: Thu, 12 Feb 2015 15:00:25 -0800
Subject: mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page()
From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
commit 9ab3b598d2dfbdb0153ffa7e4b1456bbff59a25d upstream.
A race condition starts to be visible in recent mmotm, where a PG_hwpoison
flag is set on a migration source page *before* it's back in buddy page
poo= l.
This is problematic because no page flag is supposed to be set when
freeing (see __free_one_page().) So the user-visible effect of this race
is that it could trigger the BUG_ON() when soft-offlining is called.
The root cause is that we call lru_add_drain_all() to make sure that the
page is in buddy, but that doesn't work because this function just
schedule= s a work item and doesn't wait its completion.
drain_all_pages() does drainin= g directly, so simply dropping
lru_add_drain_all() solves this problem.
[n-horiguchi@ah.jp.nec.com: resolve conflict to apply on v3.11.10]
Fixes: f15bdfa802bf ("mm/memory-failure.c: fix memory leak in successful soft offlining")
Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Chen Gong <gong.chen@linux.intel.com>
Cc: <stable@vger.kernel.org> [3.11+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
mm/memory-failure.c | 2 --
1 file changed, 2 deletions(-)
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -1645,8 +1645,6 @@ static int __soft_offline_page(struct pa
* setting PG_hwpoison.
*/
if (!is_free_buddy_page(page))
- lru_add_drain_all();
- if (!is_free_buddy_page(page))
drain_all_pages();
SetPageHWPoison(page);
if (!is_free_buddy_page(page))
Patches currently in stable-queue which might be from n-horiguchi@ah.jp.nec.com are
queue-3.14/mm-hwpoison-drop-lru_add_drain_all-in-__soft_offline_page.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2015-04-26 9:56 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-26 9:56 Patch "mm: hwpoison: drop lru_add_drain_all() in __soft_offline_page()" has been added to the 3.14-stable tree gregkh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).