On Wed, Aug 14, 2019 at 6:28 AM Jason Gunthorpe jgg@mellanox.com wrote:
On Wed, Aug 14, 2019 at 09:38:54AM +0200, Christoph Hellwig wrote:
On Tue, Aug 13, 2019 at 06:36:33PM -0700, Dan Williams wrote:
Section alignment constraints somewhat save us here. The only example I can think of a PMD not containing a uniform pgmap association for each pte is the case when the pgmap overlaps normal dram, i.e. shares the same 'struct memory_section' for a given span. Otherwise, distinct pgmaps arrange to manage their own exclusive sections (and now subsections as of v5.3). Otherwise the implementation could not guarantee different mapping lifetimes.
That said, this seems to want a better mechanism to determine "pfn is ZONE_DEVICE".
So I guess this patch is fine for now, and once you provide a better mechanism we can switch over to it?
What about the version I sent to just get rid of all the strange put_dev_pagemaps while scanning? Odds are good we will work with only a single pagemap, so it makes some sense to cache it once we find it?
Yes, if the scan is over a single pmd then caching it makes sense.