Re: [PATCH mm-unstable v1 0/5] mm: khugepaged cleanups and mTHP prerequisites

From: Nico Pache

Date: Wed Feb 11 2026 - 21:27:10 EST


Sorry for the noise, my patch 4 and 5 borked when I sent it. I believe
I fixed it, but patch 5 may have been sent twice.

On Wed, Feb 11, 2026 at 7:18 PM Nico Pache <npache@xxxxxxxxxx> wrote:
>
> The following series contains cleanups and prerequisites for my work on
> khugepaged mTHP support [1]. These have been separated out to ease review.
>
> The first patch in the series refactors the page fault folio to pte mapping
> and follows a similar convention as defined by map_anon_folio_pmd_(no)pf().
> This not only cleans up the current implementation of do_anonymous_page(),
> but will allow for reuse later in the khugepaged mTHP implementation.
>
> The second patch adds a small is_pmd_order() helper to check if an order is
> the PMD order. This check is open-coded in a number of places. This patch
> aims to clean this up and will be used more in the khugepaged mTHP work.
> The third patch also adds a small DEFINE for (HPAGE_PMD_NR - 1) which is
> used often across the khugepaged code.
>
> The fourth and fifth patch come from the khugepaged mTHP patchset [1].
> These two patches include the rename of function prefixes, and the
> unification of khugepaged and madvise_collapse via a new
> collapse_single_pmd function.
>
> Patch 1: refactor do_anonymous_page into map_anon_folio_pte_(no)pf
> Patch 2: add is_pmd_order helper
> Patch 3: Add define for (HPAGE_PMD_NR - 1)
> Patch 4: rename hpage_collapse to collapse_
> Patch 5: Refactoring to combine madvise_collapse and khugepaged
>
> ---------
> Testing
> ---------
> - Built for x86_64, aarch64, ppc64le, and s390x
> - ran all arches on test suites provided by the kernel-tests project
> - selftests mm
>
> V1 Changes (for patches coming from [1]):
> - Refactor do_anonymous_page() and add helpers for use in mthp series
> - moved is_pmd_order patch to this series [2]
> - added a define for HPAGE_PMD_NR - 1
> - moved rename to this series [3]
> - Dropped acks/review-by on PATCH 5 given [4]
> - moved unification patch to this series [4]. I also had to make some
> modifications from my previous version which include moving the new
> madvise_collapse writeback retry logic into the collapse_single_pmd
> function. This prevents a potential UAF bug I introduced in my v14 when
> handling the conflict. [5][6]
>
> A big thanks to everyone that has reviewed, tested, and participated in
> the development process. Its been a great experience working with all of
> you on this endeavour.
>
> [1] - https://lore.kernel.org/all/20260122192841.128719-1-npache@xxxxxxxxxx/
> [2] - https://lore.kernel.org/all/20260122192841.128719-2-npache@xxxxxxxxxx/
> [3] - https://lore.kernel.org/all/20260122192841.128719-3-npache@xxxxxxxxxx/
> [4] - https://lore.kernel.org/all/20260122192841.128719-4-npache@xxxxxxxxxx/
> [5] - https://lore.kernel.org/all/65dcf7ab-1299-411f-9cbc-438ae72ff757@xxxxxxxxx/
> [6] - https://lore.kernel.org/all/b824f131-3e51-422c-9e98-044b0a2928a6@xxxxxxxxxx/
>
> Nico Pache (5):
> mm: consolidate anonymous folio PTE mapping into helpers
> mm: introduce is_pmd_order helper
> mm/khugepaged: define COLLAPSE_MAX_PTES_LIMIT as HPAGE_PMD_NR - 1
> mm/khugepaged: rename hpage_collapse_* to collapse_*
> mm/khugepaged: unify khugepaged and madv_collapse with
> collapse_single_pmd()
>
> include/linux/huge_mm.h | 5 ++
> include/linux/mm.h | 4 +
> mm/huge_memory.c | 2 +-
> mm/khugepaged.c | 194 +++++++++++++++++++++-------------------
> mm/memory.c | 56 ++++++++----
> mm/mempolicy.c | 2 +-
> mm/mremap.c | 2 +-
> mm/page_alloc.c | 2 +-
> 8 files changed, 152 insertions(+), 115 deletions(-)
>
> --
> 2.53.0
>