Re: [PATCH v4] mm/rmap: do not add fully unmapped large folio to deferred split list

From: Yang Shi
Date: Fri Apr 26 2024 - 14:42:03 EST


On Fri, Apr 26, 2024 at 1:26 AM David Hildenbrand <david@xxxxxxxxxx> wrote:
>
>
> > @@ -1553,9 +1557,9 @@ static __always_inline void __folio_remove_rmap(struct folio *folio,
> > * page of the folio is unmapped and at least one page
> > * is still mapped.
> > */
> > - if (folio_test_large(folio) && folio_test_anon(folio))
> > - if (level == RMAP_LEVEL_PTE || nr < nr_pmdmapped)
> > - deferred_split_folio(folio);
> > + if (folio_test_large(folio) && folio_test_anon(folio) &&
> > + list_empty(&folio->_deferred_list) && partially_mapped)
> > + deferred_split_folio(folio);
>
> And now I realize that we can then even drop the folio_test_large(folio)
> check here!

Good idea. This is more understandable.

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