Re: [PATCH mm-new 1/1] mm/khugepaged: abort collapse scan on non-swap entries
From: David Hildenbrand
Date: Wed Sep 24 2025 - 06:41:14 EST
On 24.09.25 12:17, Kiryl Shutsemau wrote:
On Wed, Sep 24, 2025 at 12:10:47PM +0200, David Hildenbrand wrote:
On 24.09.25 12:02, Lance Yang wrote:
From: Lance Yang <lance.yang@xxxxxxxxx>
The existing check in hpage_collapse_scan_pmd() is specific to uffd-wp
markers. Other special markers (e.g., GUARD, POISONED) would not be caught
early, leading to failures deeper in the swap-in logic.
hpage_collapse_scan_pmd()
`- collapse_huge_page()
`- __collapse_huge_page_swapin() -> fails!
As David suggested[1], this patch skips any such non-swap entries early.
If a special marker is found, the scan is aborted immediately with the
SCAN_PTE_NON_PRESENT result, as Lorenzo suggested[2], avoiding wasted
work.
Note that I suggested to skip all non-present entries except swap entries,
which includes migration entries, hwpoisoned entries etc.
Hm. So swap in is fine, but wait for migration to complete is not?
If so we'd have to add the logic to actually wait for migration entries,
and not count them towards max swap entries.
But that's a different discussion and could be added on top of cleanly
handling all non-swap entries.
--
Cheers
David / dhildenb