Re: [PATCH 6/7] mm/gup: Accelerate thp gup even for "pages != NULL"

From: Peter Xu
Date: Wed Jun 14 2023 - 11:36:08 EST


On Wed, Jun 14, 2023 at 11:19:48AM -0400, Peter Xu wrote:
> > > + for (j = 0; j < page_increm; j++) {
> > > + subpage = nth_page(page, j);
> > > + pages[i+j] = subpage;
> > > + flush_anon_page(vma, subpage, start + j * PAGE_SIZE);
> > > + flush_dcache_page(subpage);
> >
> > You're better off calling flush_dcache_folio() right at the end.
>
> Will do.

Ah when I start to modify it I noticed it's a two-sided sword: we'll then
also do flush dcache over the whole folio even if we gup one page.

We'll start to get benefit only if some arch at least starts to impl
flush_dcache_folio() (which seems to be none, right now..), and we'll
already start to lose on amplifying the flush when gup on partial folio.

Perhaps I still keep it as-is which will still be accurate, always faster
than old code, and definitely not regress in any form?

--
Peter Xu