[PATCH v3 0/4] add anon mTHP collapse test cases

From: Baolin Wang

Date: Wed Aug 05 2026 - 23:34:50 EST


This patchset is split from the previous shmem mTHP collapse patchset[1],
which only adds anon mTHP collapse selftests. All khugepaged test cases
can pass.

[1] https://lore.kernel.org/all/cover.1781083630.git.baolin.wang@xxxxxxxxxxxxxxxxx/

Changes from v2:
- Collect reviewed/tested tags from Nico, Zi and Kiryl. Thanks.
- Change check_huge_anon/shmem/file()'s parameter type to 'size_t'
and rename to 'len' (per Zi).
- Use safe type to calculate the order (per Zi).
- Check return value for read_pmd_pagesize() (per Zi).
- Add more usage() info to indicate that mthp_khugepaged currently
only supports anonymous folios (per Zi).
- Other minor coding style changes (per Zi).

Changes from v1:
- Add order and hpage_size check (per Sashiko).
- Change to use THP_MADVISE for mTHP collapse (per Sashiko).

Baolin Wang (4):
selftests: mm: extend the check_huge() to support mTHP check
selftests: mm: move gather_after_split_folio_orders() into vm_util.c
file
selftests: mm: implement the mTHP-sized hugepage check helpers
selftests: mm: add mTHP collapse test cases

.../selftests/mm/folio_split_race_test.c | 2 +-
tools/testing/selftests/mm/khugepaged.c | 197 +++++++++++++----
tools/testing/selftests/mm/pagemap_ioctl.c | 2 +-
.../testing/selftests/mm/prctl_thp_disable.c | 2 +-
tools/testing/selftests/mm/run_vmtests.sh | 2 +
tools/testing/selftests/mm/soft-dirty.c | 2 +-
.../selftests/mm/split_huge_page_test.c | 139 +-----------
tools/testing/selftests/mm/uffd-common.c | 4 +-
tools/testing/selftests/mm/vm_util.c | 201 +++++++++++++++++-
tools/testing/selftests/mm/vm_util.h | 8 +-
10 files changed, 367 insertions(+), 192 deletions(-)

--
2.47.3