Re: [PATCH v9 3/4] mm/memory: add any_dirty optional pointer to folio_pte_batch()

From: Lance Yang
Date: Thu Apr 18 2024 - 08:09:38 EST


On Thu, Apr 18, 2024 at 8:00 PM David Hildenbrand <david@xxxxxxxxxx> wrote:
>
> On 18.04.24 12:57, Lance Yang wrote:
> > This commit adds the any_dirty pointer as an optional parameter to
> > folio_pte_batch() function. By using both the any_young and any_dirty pointers,
> > madvise_free can make smarter decisions about whether to clear the PTEs when
> > marking large folios as lazyfree.
> >
> > Suggested-by: David Hildenbrand <david@xxxxxxxxxx>
> > Signed-off-by: Lance Yang <ioworker0@xxxxxxxxx>
> > ---
> > mm/internal.h | 12 ++++++++++--
> > mm/madvise.c | 19 ++++++++++++++-----
> > mm/memory.c | 4 ++--
> > 3 files changed, 26 insertions(+), 9 deletions(-)
> >
> > diff --git a/mm/internal.h b/mm/internal.h
> > index c6483f73ec13..daa59cef85d7 100644
> > --- a/mm/internal.h
> > +++ b/mm/internal.h
> > @@ -134,6 +134,8 @@ static inline pte_t __pte_batch_clear_ignored(pte_t pte, fpb_t flags)
> > * first one is writable.
> > * @any_young: Optional pointer to indicate whether any entry except the
> > * first one is young.
> > + * @any_dirty: Optional pointer to indicate whether any entry except the
> > + * first one is dirty.
> > *
>

Hey David,

Thanks for taking time to review!

> I was also wondering if we should make that function return a
> pte+nr_pages, instead of only nr_pages, and then simply have the
> function, based on new flags, merge data into the original PTE.
>

Nice, good idea!

> But let's do that separately.

Yep, let's do that separately :p

>
> Acked-by: David Hildenbrand <david@xxxxxxxxxx>

Thanks again for the review!
Lance

>
> --
> Cheers,
>
> David / dhildenb
>