From: Dan Williams Date: Sat, 14 Jul 2018 04:49:56 +0000 (-0700) Subject: mm, madvise_inject_error: Disable MADV_SOFT_OFFLINE for ZONE_DEVICE pages X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=86a66810baa87e5d1c93a51f71d36c7f71fe3113;p=linux.git mm, madvise_inject_error: Disable MADV_SOFT_OFFLINE for ZONE_DEVICE pages Given that dax / device-mapped pages are never subject to page allocations remove them from consideration by the soft-offline mechanism. Reported-by: Naoya Horiguchi Signed-off-by: Dan Williams Acked-by: Naoya Horiguchi Signed-off-by: Dave Jiang --- diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 9d142b9b86dcd..988f977db3d25 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1751,6 +1751,14 @@ int soft_offline_page(struct page *page, int flags) int ret; unsigned long pfn = page_to_pfn(page); + if (is_zone_device_page(page)) { + pr_debug_ratelimited("soft_offline: %#lx page is device page\n", + pfn); + if (flags & MF_COUNT_INCREASED) + put_page(page); + return -EIO; + } + if (PageHWPoison(page)) { pr_info("soft offline: %#lx page already poisoned\n", pfn); if (flags & MF_COUNT_INCREASED)