Re: [PATCH v2 3/3] mm: rmap: support batched unmapping for file large folios
From: Baolin Wang
Date: Tue Dec 16 2025 - 22:12:38 EST
On 2025/12/16 18:54, Lorenzo Stoakes wrote:
On Tue, Dec 16, 2025 at 02:22:11PM +0800, Baolin Wang wrote:
On 2025/12/16 14:13, Barry Song wrote:
diff --git a/mm/rmap.c b/mm/rmap.c
index ec232165c47d..4c9d5777c8da 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1855,9 +1855,10 @@ static inline unsigned int folio_unmap_pte_batch(struct folio *folio,
end_addr = pmd_addr_end(addr, vma->vm_end);
max_nr = (end_addr - addr) >> PAGE_SHIFT;
- /* We only support lazyfree batching for now ... */
- if (!folio_test_anon(folio) || folio_test_swapbacked(folio))
+ /* We only support lazyfree or file folios batching for now ... */
+ if (folio_test_anon(folio) && folio_test_swapbacked(folio))
Why is it now ok to support file-backed batched unmapping when it wasn't in
Barry's series (see [0])? You don't seem to be justifying this?
Barry's series[0] is merely aimed at optimizing lazyfree anonymous large
folios and does not continue to optimize anonymous large folios or
file-backed large folios at that point.
Yep. At that time, I didn’t have an Android machine with a filesystem
that supported large folios, so I focused on lazyfree. But I
agree that lazyfree anon folios and file folios are quite
similar.
Subsequently, Barry sent out a new patch (see [1]) to optimize anonymous
large folios. As for file-backed large folios, the batched unmapping
support is relatively simple, since we only need to clear the PTE
entries for file-backed large folios.
Yep. It is actually quite straightforward to go from lazyfree
anon folios to file folios. Swap-backed anon folios are much
more tricky, though.
Agree. Thanks Barry for reviewing and confirming.
OK that makes me less concerned, but you do need to put some more justification
in the commit message.
Sure. Will do.