Re: [PATCH mm-new v2 1/1] mm/khugepaged: abort collapse scan on non-swap entries

From: Lance Yang

Date: Wed Oct 01 2025 - 05:38:46 EST




On 2025/10/1 16:31, David Hildenbrand wrote:
On 01.10.25 05:22, Lance Yang wrote:
From: Lance Yang <lance.yang@xxxxxxxxx>

Currently, special non-swap entries (like migration, hwpoison, or PTE
markers) are not caught early in hpage_collapse_scan_pmd(), leading to
failures deep 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 any one is found, the scan is aborted immediately with the
SCAN_PTE_NON_PRESENT result, as Lorenzo suggested[2], avoiding wasted
work.

[1] https://lore.kernel.org/linux-mm/7840f68e-7580-42cb- a7c8-1ba64fd6df69@xxxxxxxxxx
[2] https://lore.kernel.org/linux-mm/7df49fe7-c6b7-426a-8680- dcd55219c8bd@lucifer.local

Suggested-by: David Hildenbrand <david@xxxxxxxxxx>
Suggested-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>
Signed-off-by: Lance Yang <lance.yang@xxxxxxxxx>
---

Could have mentioned you adjust the flow of code to resemble what we have in __collapse_huge_page_isolate().

Thanks for pointing that out! Let's do that separately. I'm working
on a follow-up patch that will unify the scanning with the
almost-duplicated code as you suggested ;)


Acked-by: David Hildenbrand <david@xxxxxxxxxx>

Cheers!