Re: [PATCH 0/3] make pfn walker support ZONE_DEVICE

From: Dan Williams
Date: Mon Nov 11 2019 - 11:23:52 EST


On Mon, Nov 11, 2019 at 12:01 AM Toshiki Fukasawa
<t-fukasawa@xxxxxxxxxxxxx> wrote:
>
> On 2019/11/08 18:18, Michal Hocko wrote:
> > On Fri 08-11-19 00:08:03, Toshiki Fukasawa wrote:
> >> This patch set tries to make pfn walker support ZONE_DEVICE.
> >> This idea is from the TODO in below patch:
> >>
> >> commit aad5f69bc161af489dbb5934868bd347282f0764
> >> Author: David Hildenbrand <david@xxxxxxxxxx>
> >> Date: Fri Oct 18 20:19:20 2019 -0700
> >>
> >> fs/proc/page.c: don't access uninitialized memmaps in fs/proc/page.c
> >>
> >> pfn walker's ZONE_DEVICE support requires capability to identify
> >> that a memmap has been initialized. The uninitialized cases are
> >> as follows:
> >>
> >> a) pages reserved for ZONE_DEVICE driver
> >> b) pages currently initializing
> >>
> >> This patch set solves both of them.
> >
> > Why do we want this? What is the usecase?
>
> We are writing a test program for hwpoison, which is a use case.
> Without this patch, we can't see the HWPOISON flag on the
> ZONE_DEVICE page.

I'm not sure that's a goal that's a worthwhile goal. That hwpoison
flag has specific meaning for the System RAM case where the page is
going to be marked offline. For the pmem case the nvdimm core tracks
'badblocks'. I did attempt to use PageHWPoison to track which pmem
pages had been marked UC to prevent speculative consumption, but that
implementation has been found to collide with lookup_memtype() so I'm
looking ot replace it with something that consults with the pmem
driver.