[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1348724705-23779-4-git-send-email-wency@cn.fujitsu.com>
Date: Thu, 27 Sep 2012 13:45:04 +0800
From: wency@...fujitsu.com
To: linux-mm@...ck.org, linux-kernel@...r.kernel.org
Cc: rientjes@...gle.com, liuj97@...il.com, len.brown@...el.com,
benh@...nel.crashing.org, paulus@...ba.org, minchan.kim@...il.com,
akpm@...ux-foundation.org, kosaki.motohiro@...fujitsu.com,
isimatu.yasuaki@...fujitsu.com, Wen Congyang <wency@...fujitsu.com>
Subject: [PATCH 3/4] memory-hotplug: clear hwpoisoned flag when onlining pages
From: Wen Congyang <wency@...fujitsu.com>
hwpoisoned may set when we offline a page by the sysfs interface
/sys/devices/system/memory/soft_offline_page or
/sys/devices/system/memory/hard_offline_page. If we don't clear
this flag when onlining pages, this page can't be freed, and will
not in free list. So we can't offline these pages again. So we
should clear this flag when onlining pages.
CC: David Rientjes <rientjes@...gle.com>
CC: Jiang Liu <liuj97@...il.com>
CC: Len Brown <len.brown@...el.com>
CC: Benjamin Herrenschmidt <benh@...nel.crashing.org>
CC: Paul Mackerras <paulus@...ba.org>
Cc: Minchan Kim <minchan.kim@...il.com>
CC: Andrew Morton <akpm@...ux-foundation.org>
CC: KOSAKI Motohiro <kosaki.motohiro@...fujitsu.com>
CC: Yasuaki Ishimatsu <isimatu.yasuaki@...fujitsu.com>
Signed-off-by: Wen Congyang <wency@...fujitsu.com>
---
mm/memory_hotplug.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
index 6a5b90d..9a5b10f 100644
--- a/mm/memory_hotplug.c
+++ b/mm/memory_hotplug.c
@@ -431,6 +431,14 @@ EXPORT_SYMBOL_GPL(__online_page_increment_counters);
void __online_page_free(struct page *page)
{
+#ifdef CONFIG_MEMORY_FAILURE
+ /* The page may be marked HWPoisoned by soft/hard offline page */
+ if (PageHWPoison(page)) {
+ atomic_long_sub(1, &mce_bad_pages);
+ ClearPageHWPoison(page);
+ }
+#endif
+
ClearPageReserved(page);
init_page_count(page);
__free_page(page);
--
1.7.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists