Message ID | 20191108000855.25209-1-t-fukasawa@vx.jp.nec.com (mailing list archive) |
---|---|
Headers | show |
Series | make pfn walker support ZONE_DEVICE | expand |
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@redhat.com> > 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? > > Toshiki Fukasawa (3): > procfs: refactor kpage_*_read() in fs/proc/page.c > mm: Introduce subsection_dev_map > mm: make pfn walker support ZONE_DEVICE > > fs/proc/page.c | 155 ++++++++++++++++++++--------------------------- > include/linux/memremap.h | 6 ++ > include/linux/mmzone.h | 19 ++++++ > mm/memremap.c | 31 ++++++++++ > mm/sparse.c | 32 ++++++++++ > 5 files changed, 154 insertions(+), 89 deletions(-) > > -- > 1.8.3.1 >
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@redhat.com> >> 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. Thanks, Toshiki Fukasawa
On Mon, Nov 11, 2019 at 12:01 AM Toshiki Fukasawa <t-fukasawa@vx.jp.nec.com> 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@redhat.com> > >> 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.