On Tue, Feb 15, 2022 at 07:32:09PM +0100, Christoph Hellwig wrote: > On Tue, Feb 15, 2022 at 10:45:24AM -0400, Jason Gunthorpe wrote: > > > Do you know if DEVICE_GENERIC pages would end up as PageAnon()? My > > > assumption was that they would be part of a special mapping. > > > > We need to stop using the special PTEs and VMAs for things that have a > > struct page. This is a mistake DAX created that must be undone. > > Yes, we'll get to it. Maybe we can do it for the non-DAX devmap > ptes first given that DAX is more complicated. Probably, I think we can check the page->pgmap type to tell the difference. I'm not sure how the DEVICE_GENERIC can work without this, as DAX was made safe by using the unmap_mapping_range(), which won't work here. Is there some other trick being used to keep track of references inside the AMD driver? Jason