Re: [PATCH 07/12] mm: Remove redundant pXd_devmap calls

Dan Williams
2025-06-05T16:22:58Z

Jason Gunthorpe wrote:
> On Wed, Jun 04, 2025 at 07:35:24PM -0700, Dan Williams wrote:
>
> > If all dax pages are special, then vm_normal_page() should never find
> > them and gup should fail.
> >
> > ...oh, but vm_normal_page_p[mu]d() is not used in the gup path, and
> > 'special' is not set in the pte path.
>
> That seems really suboptimal?? Why would pmd and pte be different?
>
> > I think for any p[mu]d where p[mu]d_page() is ok to use should never set
> > 'special', right?
>
> There should be dedicated functions for installing pages and PFNs,
> only the PFN one would set the special bit.
>
> And certainly your tests *should* be failing as special entries should
> never ever be converted to struct page.

That's the point, the pmd and pud special bit is not considered for gup.
So fixing that requires making it not break dax, but looks like David
has a cleanup for that.