Subject: Re: [PATCH 0/2] Enable ZONE_DEVICE on POWER

From: Anshuman Khandual <[email-masked]>
Date: Tue, 10 May 2016 12:42:10 +0530

On 05/08/2016 11:07 PM, Aneesh Kumar K.V wrote:
> oliver <[email-masked]> writes:
> 
>> > Hi,
>> >
>> > I've been working on kernel support for a persistent memory (nvdimm)
>> > device and the kernel driver infrastructure requires ZONE_DEVICE for
>> > DAX support.. I've had it enabled in my tree for some time (without
>> > altmap support) without any real issues.
> 
> IIUC a DAX usage of pmem doesn't really need ZONE_DEVICE. It is only
> for struct page backing to those pmem area we need ZONE_DEVICE.
> 
>> >
>> > I wasn't planning on upstreaming any of my changes until 4.8 at the
>> > earliest so I am ok with carrying these patches myself. However, there
>> > has been some interest in using ZONE_DEVICE for other things on ppc
>> > (wasn't that you?) and given that ZONE_DEVICE is gated behind
>> > CONFIG_EXPERT I can't see there being any kind of negative impact on
>> > end users by merging it now. At the very least it lets the rest of the
>> > kernel development community know that changes affecting zones should
>> > also be tested on powerpc.
>> >
>> >
> A partially done patch like that will miss quiet a lot details. For
> example if I look at the x86 changes related to altmap
> (4b94ffdc4163bae1e ("x86, mm: introduce vmem_altmap to augment
> vmemmap_populate")) i see them handling pagetable free and memory
> hotplug. This patch doesn't do any of those. From the commit message it is
> also not clear how we intent to use those zone device memory on ppc64.
> If we say they will not get hotplugged out or they will never be part
> of page table then those changes I mentioned above are really not
> needed. But the patch is missing a lot of those details.

Right. The current patch just enables ZONE_DEVICE with vmem_altmap support
(so that struct pages can be allocated in the device range instead of system
RAM) where any driver can own the rest of the PFNs for its use. Right now
these PFNs will not make into process page table. I can update the commit
message with these details if you like.