selftests-mm-extend-the-check_huge-to-support-mthp-check.patch removed from -mm tree
The quilt patch titled
Subject: selftests: mm: extend the check_huge() to support mTHP check
has been removed from the -mm tree. Its filename was
selftests-mm-extend-the-check_huge-to-support-mthp-check.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Baolin Wang <[email protected]>
Subject: selftests: mm: extend the check_huge() to support mTHP check
Date: Thu, 6 Aug 2026 11:34:12 +0800
Patch series "add anon mTHP collapse test cases", v3.
This patch (of 4):
To support checking for various sized mTHPs during mTHP collapse, extend the check_huge() function prototype to accept two new parameters specifying the address range and mTHP size, in preparation for the following patches.
No functional changes.
---
tools/testing/selftests/mm/folio_split_race_test.c | 2 tools/testing/selftests/mm/khugepaged.c | 66 ++++++----- tools/testing/selftests/mm/pagemap_ioctl.c | 2 tools/testing/selftests/mm/prctl_thp_disable.c | 2 tools/testing/selftests/mm/soft-dirty.c | 2 tools/testing/selftests/mm/split_huge_page_test.c | 14 +- tools/testing/selftests/mm/uffd-common.c | 4 tools/testing/selftests/mm/vm_util.c | 6 - tools/testing/selftests/mm/vm_util.h | 6 - 9 files changed, 56 insertions(+), 48 deletions(-)
tools/testing/selftests/mm/folio_split_race_test.c renamed from tools/testing/selftests/mm/folio_split_race_test.c~selftests-mm-extend-the-check_huge-to-support-mthp-check +1 -1
@@ -182,7 +182,7 @@ static uint64_t run_iteration(void)for (i =0 ; i <TOTAL_PAGES ; i++)fill_page (mmap_base, i); -if (!check_huge_shmem (mmap_base,NR_PMD_PAGE , pmd_pagesize)) +if (!check_huge_shmem (mmap_base,FILE_SIZE ,NR_PMD_PAGE , pmd_pagesize))ksft_exit_fail_msg ("No shmem THP is allocated\n" );if (pthread_barrier_init (&ctl.barrier,NULL ,NUM_READER_THREADS +1 ) !=0 )
tools/testing/selftests/mm/khugepaged.c renamed from tools/testing/selftests/mm/khugepaged.c~selftests-mm-extend-the-check_huge-to-support-mthp-check +36 -30
238 lines not on this page · raw message
tools/testing/selftests/mm/pagemap_ioctl.c renamed from tools/testing/selftests/mm/pagemap_ioctl.c~selftests-mm-extend-the-check_huge-to-support-mthp-check +1 -1
@@ -1085,7 +1085,7 @@ static void unpopulated_written_test(conmemset (mem,1 , size);if (use_thp && (madvise (mem, size,MADV_COLLAPSE ) || - !check_huge_anon (mem, size / hpage_size, hpage_size))) { + !check_huge_anon (mem, size, size / hpage_size, hpage_size))) {ksft_test_result_skip ("%s could not form a THP\n" , name); goto out; }
tools/testing/selftests/mm/prctl_thp_disable.c renamed from tools/testing/selftests/mm/prctl_thp_disable.c~selftests-mm-extend-the-check_huge-to-support-mthp-check +1 -1
@@ -67,7 +67,7 @@ static int test_mmap_thp(enum thp_collap/* HACK: make sure we have a separate VMA that we can check reliably. */ mprotect (mem, pmdsize,PROT_READ ); - ret =check_huge_anon (mem,1 , pmdsize); + ret =check_huge_anon (mem, pmdsize,1 , pmdsize);munmap (mmap_mem, mmap_size);return ret; }
tools/testing/selftests/mm/soft-dirty.c renamed from tools/testing/selftests/mm/soft-dirty.c~selftests-mm-extend-the-check_huge-to-support-mthp-check +1 -1
@@ -103,7 +103,7 @@ static void test_hugepage(int pagemap_fdfor (i =0 ; i < hpage_len; i++) map[i] = (char )i; -if (check_huge_anon (map,1 , hpage_len)) { +if (check_huge_anon (map, hpage_len,1 , hpage_len)) {ksft_test_result_pass ("Test %s huge page allocation\n" , __func__);clear_softdirty ();
tools/testing/selftests/mm/split_huge_page_test.c renamed from tools/testing/selftests/mm/split_huge_page_test.c~selftests-mm-extend-the-check_huge-to-support-mthp-check +7 -7
@@ -296,7 +296,7 @@ static void verify_rss_anon_split_huge_punsigned long rss_anon_before, rss_anon_after;size_t i; -if (!check_huge_anon (one_page, nr_hpages, pmd_pagesize)) +if (!check_huge_anon (one_page, nr_hpages * pmd_pagesize, nr_hpages, pmd_pagesize))ksft_exit_fail_msg ("No THP is allocated\n" ); rss_anon_before =rss_anon ();
@@ -311,7 +311,7 @@ static void verify_rss_anon_split_huge_pif (one_page[i] != (char )0 )ksft_exit_fail_msg ("%ld byte corrupted\n" , i); -if (!check_huge_anon (one_page,0 , pmd_pagesize)) +if (!check_huge_anon (one_page, nr_hpages * pmd_pagesize,0 , pmd_pagesize))ksft_exit_fail_msg ("Still AnonHugePages not split\n" ); rss_anon_after =rss_anon ();
@@ -347,7 +347,7 @@ static void split_pmd_thp_to_order(int ofor (i =0 ; i < len; i++) one_page[i] = (char )i; -if (!check_huge_anon (one_page,4 , pmd_pagesize)) +if (!check_huge_anon (one_page,4 * pmd_pagesize,4 , pmd_pagesize))ksft_exit_fail_msg ("No THP is allocated\n" );/* split all THPs */
@@ -366,7 +366,7 @@ static void split_pmd_thp_to_order(int o (pmd_order + 1)))ksft_exit_fail_msg ("Unexpected THP split\n" ); -if (!check_huge_anon (one_page,0 , pmd_pagesize)) +if (!check_huge_anon (one_page,4 * pmd_pagesize,0 , pmd_pagesize))ksft_exit_fail_msg ("Still AnonHugePages not split\n" );ksft_test_result_pass ("Split huge pages to order %d successful\n" , order);
@@ -393,7 +393,7 @@ static void split_pte_mapped_thp(void)for (i =0 ; i < thp_area_size; i++) thp_area[i] = (char )i; -if (!check_huge_anon (thp_area, nr_thps, pmd_pagesize)) { +if (!check_huge_anon (thp_area, nr_thps * pmd_pagesize, nr_thps, pmd_pagesize)) {ksft_test_result_skip ("Not all THPs allocated\n" ); goto out; }
@@ -657,7 +657,7 @@ static int create_pagecache_thp_and_fd(cforce_read_pages (*addr, fd_size / pmd_pagesize, pmd_pagesize); -if (!check_huge_file (*addr, fd_size / pmd_pagesize, pmd_pagesize)) { +if (!check_huge_file (*addr, fd_size, fd_size / pmd_pagesize, pmd_pagesize)) {ksft_print_msg ("No large pagecache folio generated, please provide a filesystem supporting large folio\n" );munmap (*addr, fd_size);close (*fd);
@@ -735,7 +735,7 @@ static void split_thp_in_pagecache_to_or goto out; } -if (!check_huge_file (addr,0 , pmd_pagesize)) { +if (!check_huge_file (addr, fd_size,0 , pmd_pagesize)) {ksft_print_msg ("Still FilePmdMapped not split\n" ); err =EXIT_FAILURE ; goto out;
tools/testing/selftests/mm/uffd-common.c renamed from tools/testing/selftests/mm/uffd-common.c~selftests-mm-extend-the-check_huge-to-support-mthp-check +3 -1
@@ -194,7 +194,9 @@ static void shmem_alias_mapping(uffd_glostatic void shmem_check_pmd_mapping (uffd_global_test_opts_t *gopts,void *p,int expect_nr_hpages) { -if (!check_huge_shmem (gopts->area_dst_alias, expect_nr_hpages, +size_t len = expect_nr_hpages *read_pmd_pagesize (); + +if (!check_huge_shmem (gopts->area_dst_alias, len, expect_nr_hpages,read_pmd_pagesize ()))err ("Did not find expected %d number of hugepages" , expect_nr_hpages);
tools/testing/selftests/mm/vm_util.c renamed from tools/testing/selftests/mm/vm_util.c~selftests-mm-extend-the-check_huge-to-support-mthp-check +3 -3
@@ -247,17 +247,17 @@ err_out:return thp == (nr_hpages * (hpage_size >>10 )); } -bool check_huge_anon (void *addr,int nr_hpages,uint64_t hpage_size) +bool check_huge_anon (void *addr,size_t len,int nr_hpages,uint64_t hpage_size) {return __check_huge (addr,"AnonHugePages: " , nr_hpages, hpage_size); } -bool check_huge_file (void *addr,int nr_hpages,uint64_t hpage_size) +bool check_huge_file (void *addr,size_t len,int nr_hpages,uint64_t hpage_size) {return __check_huge (addr,"FilePmdMapped:" , nr_hpages, hpage_size); } -bool check_huge_shmem (void *addr,int nr_hpages,uint64_t hpage_size) +bool check_huge_shmem (void *addr,size_t len,int nr_hpages,uint64_t hpage_size) {return __check_huge (addr,"ShmemPmdMapped:" , nr_hpages, hpage_size); }
tools/testing/selftests/mm/vm_util.h renamed from tools/testing/selftests/mm/vm_util.h~selftests-mm-extend-the-check_huge-to-support-mthp-check +3 -3
@@ -90,9 +90,9 @@ void clear_softdirty(void);bool check_for_pattern (FILE *fp,const char *pattern,char *buf,size_t len);uint64_t read_pmd_pagesize (void );unsigned long rss_anon (void ); -bool check_huge_anon (void *addr,int nr_hpages,uint64_t hpage_size); -bool check_huge_file (void *addr,int nr_hpages,uint64_t hpage_size); -bool check_huge_shmem (void *addr,int nr_hpages,uint64_t hpage_size); +bool check_huge_anon (void *addr,size_t len,int nr_hpages,uint64_t hpage_size); +bool check_huge_file (void *addr,size_t len,int nr_hpages,uint64_t hpage_size); +bool check_huge_shmem (void *addr,size_t len,int nr_hpages,uint64_t hpage_size);int64_t allocate_transhuge (void *ptr,int pagemap_fd);int pageflags_get (unsigned long pfn,int kpageflags_fd,uint64_t *flags);
_
Patches currently in -mm which might be from [email protected] are
mm-fix-incorrect-vm_flags-usage-when-checking-allowable-orders-for-tmpfs.patch