Re: [PATCH mm-new v7 4/5] mm: khugepaged: skip lazy-free folios

From: David Hildenbrand (Arm)

Date: Sat Feb 07 2026 - 17:06:37 EST


On 2/7/26 23:01, Barry Song wrote:
On Sun, Feb 8, 2026 at 5:38 AM David Hildenbrand (Arm) <david@xxxxxxxxxx> wrote:

On 2/7/26 14:51, Lance Yang wrote:



Good catch!


Good point!


Right. When the VMA has VM_DROPPABLE, we would drop the lazyfree folio
regardless of whether it (or the PTE) is dirty in try_to_unmap_one().

So, IMHO, we could go with:

cc->is_khugepaged && folio_test_lazyfree(folio) &&
(!pte_dirty(pteval) || (vma->vm_flags & VM_DROPPABLE))

Hm. In a VM_DROPPABLE mapping all folios should be marked as lazy-free
(see folio_add_new_anon_rmap()).

The new (collapse) folio will also be marked lazy (due to
folio_add_new_anon_rmap()) free and can just get dropped any time.

So likely we should just not skip collapse for lazyfree folios in
VM_DROPPABLE mappings?

Maybe change “just not skip” to “just skip”?

If the goal is to avoid the collapse overhead for folios that are
about to be dropped, we might consider skipping collapse for the
entire VMA?
If there is no memory pressure in the system, why wouldn't you just want to collapse in a VM_DROPPABLE region?

"about to be dropped" only applies once there is actual memory pressure. If not, these pages stick around forever.

--
Cheers,

David