Re: [PATCH v6 05/13] mm, madvise_inject_error: Disable MADV_SOFT_OFFLINE for ZONE_DEVICE pages

From: Naoya Horiguchi
Date: Tue Jul 17 2018 - 02:49:37 EST


On Fri, Jul 13, 2018 at 09:49:56PM -0700, Dan Williams wrote:
> 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 <n-horiguchi@xxxxxxxxxxxxx>
> Signed-off-by: Dan Williams <dan.j.williams@xxxxxxxxx>
> ---
> mm/memory-failure.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/mm/memory-failure.c b/mm/memory-failure.c
> index 9d142b9b86dc..988f977db3d2 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);

put_hwpoison_page(), which is just an alias of put_page(), is better
for consistency.
With this adjustment, feel free to add my ack.

Acked-by: Naoya Horiguchi <n-horiguchi@xxxxxxxxxxxxx>

Thanks,
Naoya Horiguchi

> + return -EIO;
> + }
> +
> if (PageHWPoison(page)) {
> pr_info("soft offline: %#lx page already poisoned\n", pfn);
> if (flags & MF_COUNT_INCREASED)
>
>