]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
selftests/mm: test splitting file-backed THP to any lower order
authorZi Yan <ziy@nvidia.com>
Wed, 22 Jan 2025 16:19:28 +0000 (11:19 -0500)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 17 Mar 2025 05:05:56 +0000 (22:05 -0700)
Now split_huge_page*() supports shmem THP split to any lower order.  Test
it.

The test now reads file content out after split to check if the split
corrupts the file data.

Link: https://lkml.kernel.org/r/20250122161928.1240637-3-ziy@nvidia.com
Signed-off-by: Zi Yan <ziy@nvidia.com>
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Tested-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: John Hubbard <jhubbard@nvidia.com>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Kirill A. Shuemov <kirill.shutemov@linux.intel.com>
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Yang Shi <yang@os.amperecomputing.com>
Cc: Yu Zhao <yuzhao@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/split_huge_page_test.c

index ba498aaaf857c7d263d9d6087744522855f42bf6..e0304046b1a0c888612bf93108c2518544a9159f 100644 (file)
@@ -261,7 +261,7 @@ void split_pte_mapped_thp(void)
        close(kpageflags_fd);
 }
 
-void split_file_backed_thp(void)
+void split_file_backed_thp(int order)
 {
        int status;
        int fd;
@@ -313,7 +313,7 @@ void split_file_backed_thp(void)
        }
 
        /* split the file-backed THP */
-       write_debugfs(PATH_FMT, testfile, pgoff_start, pgoff_end, 0);
+       write_debugfs(PATH_FMT, testfile, pgoff_start, pgoff_end, order);
 
        /* check file content after split */
        status = lseek(fd, 0, SEEK_SET);
@@ -351,7 +351,7 @@ void split_file_backed_thp(void)
                ksft_exit_fail_msg("cannot remove tmp dir: %s\n", strerror(errno));
 
        ksft_print_msg("Please check dmesg for more information\n");
-       ksft_test_result_pass("File-backed THP split test done\n");
+       ksft_test_result_pass("File-backed THP split to order %d test done\n", order);
        return;
 
 close_file:
@@ -517,7 +517,7 @@ int main(int argc, char **argv)
        if (argc > 1)
                optional_xfs_path = argv[1];
 
-       ksft_set_plan(1+8+2+9);
+       ksft_set_plan(1+8+1+9+9);
 
        pagesize = getpagesize();
        pageshift = ffs(pagesize) - 1;
@@ -534,7 +534,8 @@ int main(int argc, char **argv)
                        split_pmd_thp_to_order(i);
 
        split_pte_mapped_thp();
-       split_file_backed_thp();
+       for (i = 0; i < 9; i++)
+               split_file_backed_thp(i);
 
        created_tmp = prepare_thp_fs(optional_xfs_path, fs_loc_template,
                        &fs_loc);