Re: [PATCH 03/12] mm/pagewalk: Skip dax pages in pagewalk

Alistair Popple
2025-06-12T08:47:24Z

On Thu, Jun 12, 2025 at 05:02:13PM +1000, Alistair Popple wrote:
> On Thu, Jun 05, 2025 at 09:21:28AM -0700, Dan Williams wrote:
> > David Hildenbrand wrote:
> > > On 05.06.25 09:46, Christoph Hellwig wrote:
> > > > On Wed, Jun 04, 2025 at 06:59:09PM -0700, Dan Williams wrote:
> > > >> +/* return normal pages backed by the page allocator */
> > > >> +static inline struct page *vm_normal_gfp_pmd(struct vm_area_struct *vma,
> > > >> + unsigned long addr, pmd_t pmd)
> > > >> +{
> > > >> + struct page *page = vm_normal_page_pmd(vma, addr, pmd);
> > > >> +
> > > >> + if (!is_devdax_page(page) && !is_fsdax_page(page))
> > > >> + return page;
> > > >> + return NULL;
> > > >
> > > > If you go for this make it more straight forward by having the
> > > > normal path in the main flow:
> > > >
> > > > if (is_devdax_page(page) || is_fsdax_page(page))
> > > > return NULL;
> > > > return page;
> > >
> > > +1
> > >
> > > But I'd defer introducing that for now if avoidable. I find the naming
> > > rather ... suboptimal :)
> >
> > Agree, that was a "for lack of a better term" suggestion, but the
> > suggestion is indeed lacking.
>
> I don't like the naming either ... maybe that is motivation enough for me to
> audit the callers and have them explicitly filter the pages they don't want.

Which actually most of them already do. The only ones I'm unsure about are both
in s390 so I'll be conservative and add checks for folio_is_zone_device() there.