[PATCH v3 0/7] mm/khugepaged: several cleanups

"Nico Pache (Red Hat)" <[email protected]> Tue, 04 Aug 2026 13:24:58 -0600
Newsgroups gmane.linux.kernel,gmane.linux.kernel.mm,gmane.linux.documentation
Message-ID <[email protected]>
The following changes stem from a number of reviews during my khugepaged
mTHP support series [1]. Some of these are minor code cleanups, issues or
reviews that we decided to deferred to a followup series, or in the case
of the more major patch of the series, changes [2] Lance Yang attempted
while my series was in-flight and we decided to wait till later to try.

The first 3 patches introduce helper functions to increase code reuse and
readability. This includes a per-scan state clearing function, extracting
the young page check into a helper, and a count_collapse_event() function
to reduce a repetative pattern used across mTHP collapse.

The 4th patch was the byproduct of me throwing Claude at all the
comments in khugepaged verifying and looking for any outdated info.

The 5th patch is based on Lance Yang's commit series [2] trying to extract
the PTE state checking into a helper function. This required a bit of
rewriting due to differences after mTHP collapse was introduced. I also
took into account the changes requested during his patches review cycle.

The remaining 2 patches were review points during my mTHP series that we
agreed can be deferred to a later series.

Thank you to those whos reviews and work I leveraged to achieve these
cleanups.

V3 Changes:
 - Add Acks/RB tags
 - rename collapse_is_referenced() to pte_is_referenced()
 - fix count_collapse_event() call-site indentation to match kernel style
 - fold in the follow-up fix so collapse_scan_pmd() always assigns the
   local folio from collapse_check_pte()
 - normalize khugepaged comment references to use parentheses

V2 Changes:
 - Add Acks/RB tags
 - rename collapse_is_young() to collapse_is_referenced()
 - delete unncessary comment for collapse_control_init_scan()
 - merge fixup from V1 (fixes stale folio reference) into patch 5
 - keep original ordering for checks in patch 5
 - merge patch 7 into patch 4
 - conflict resolution from uffd_rwp changes

V2: https://lore.kernel.org/all/[email protected]/
V1: https://lore.kernel.org/all/[email protected]/

[1] - https://lore.kernel.org/all/[email protected]/
[2] - https://lore.kernel.org/all/[email protected]/

Signed-off-by: Nico Pache (Red Hat) <[email protected]>
---
Nico Pache (Red Hat) (7):
      mm/khugepaged: refactor per-scan state clearing into collapse_control_init_scan()
      mm/khugepaged: extract young page check into pte_is_referenced() helper
      mm/khugepaged: introduce a count_collapse_event() helper
      mm/khugepaged: fix outdated comments
      mm/khugepaged: Refactor the PTE state checks into a helper
      mm/khugepaged: unmap pte before releasing vma write lock
      mm: Documentation: clarify where the mTHP stats live

 Documentation/admin-guide/mm/transhuge.rst |   6 +-
 mm/khugepaged.c                            | 417 +++++++++++++++--------------
 2 files changed, 223 insertions(+), 200 deletions(-)
---
base-commit: 486855239e38a91d3eae26618ccb7845c1764625
change-id: 20260804-khugepaged_pte_refactor-5eb76e14b93a

Best regards,
--  
Nico Pache (Red Hat) <[email protected]>