From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Naoya Horiguchi To: Dan Williams CC: "linux-nvdimm@lists.01.org" , "hch@lst.de" , "linux-fsdevel@vger.kernel.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH v6 05/13] mm, madvise_inject_error: Disable MADV_SOFT_OFFLINE for ZONE_DEVICE pages Date: Tue, 17 Jul 2018 06:47:37 +0000 Message-ID: <20180717064736.GA27953@hori1.linux.bs1.fc.nec.co.jp> References: <153154376846.34503.15480221419473501643.stgit@dwillia2-desk3.amr.corp.intel.com> <153154379606.34503.17311881160518829077.stgit@dwillia2-desk3.amr.corp.intel.com> In-Reply-To: <153154379606.34503.17311881160518829077.stgit@dwillia2-desk3.amr.corp.intel.com> Content-Language: ja-JP Content-Type: text/plain; charset="iso-2022-jp" Content-ID: <05DD4241F5D8DF4F92EBBCDB6A7040AD@gisp.nec.co.jp> Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Sender: owner-linux-mm@kvack.org List-ID: 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. >=20 > Reported-by: Naoya Horiguchi > Signed-off-by: Dan Williams > --- > mm/memory-failure.c | 8 ++++++++ > 1 file changed, 8 insertions(+) >=20 > 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 =3D page_to_pfn(page); > =20 > + 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 Thanks, Naoya Horiguchi > + return -EIO; > + } > + > if (PageHWPoison(page)) { > pr_info("soft offline: %#lx page already poisoned\n", pfn); > if (flags & MF_COUNT_INCREASED) >=20 > =