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 >