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

From: David Hildenbrand
Date: Fri Apr 26 2024 - 04:26:19 EST



@@ -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!

--
Cheers,

David / dhildenb