On Mon, Aug 10, 2015 at 02:32:30PM +0800, Wanpeng Li wrote:
THP pages will get a refcount in madvise_hwpoison() w/ MF_COUNT_INCREASEDIt seems that the same conditional put_page() would be added to
flag, however, the refcount is still held when fail to split THP pages.
Fix it by reducing the refcount of THP pages when fail to split THP.
Signed-off-by: Wanpeng Li <wanpeng.li@xxxxxxxxxxx>
"soft offline: %#lx page already poisoned" branch too, right?
---
mm/memory-failure.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index 8077b1c..56b8a71 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -1710,6 +1710,8 @@ int soft_offline_page(struct page *page, int flags)
if (PageAnon(hpage) && unlikely(split_huge_page(hpage))) {
pr_info("soft offline: %#lx: failed to split THP\n",
pfn);
+ if (flags & MF_COUNT_INCREASED)
+ put_page(page);
return -EBUSY;
}
}
--
1.7.1
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>