[Nouveau] [RFC PATCH v3 0/2] mm: remove extra ZONE_DEVICE struct page refcount

Ralph Campbell rcampbell at nvidia.com
Thu May 13 17:35:39 UTC 2021


On 5/13/21 6:15 AM, Matthew Wilcox wrote:
> On Thu, Oct 01, 2020 at 11:17:13AM -0700, Ralph Campbell wrote:
>> This is still an RFC because after looking at the pmem/dax code some
>> more, I realized that the ZONE_DEVICE struct pages are being inserted
>> into the process' page tables with vmf_insert_mixed() and a zero
>> refcount on the ZONE_DEVICE struct page. This is sort of OK because
>> insert_pfn() increments the reference count on the pgmap which is what
>> prevents memunmap_pages() from freeing the struct pages and it doesn't
>> check for a non-zero struct page reference count.
>> But, any calls to get_page() will hit the VM_BUG_ON_PAGE() that
>> checks for a reference count == 0.
> 
> This seems to have gone quiet.  What needs to happen to resurrect this?
> 
The main thing I need is time. I have been tied up with other commitments,
there has been a lot of changes going on in FS/DAX and the page cache,
and FS/DAX doesn't use the page reference count to indicate the page is
"free" but rather that it is "idle" so I need a lot of time to really
understand why FS/DAX isn't just any FS on top of a DAX block device.

I too wish this was easier to fix.


More information about the Nouveau mailing list