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.

Signed-off-by: Zi Yan <z...@nvidia.com>
Reviewed-by: Baolin Wang <baolin.w...@linux.alibaba.com>
Tested-by: Baolin Wang <baolin.w...@linux.alibaba.com>
---
 tools/testing/selftests/mm/split_huge_page_test.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/tools/testing/selftests/mm/split_huge_page_test.c 
b/tools/testing/selftests/mm/split_huge_page_test.c
index ba498aaaf857..e0304046b1a0 100644
--- a/tools/testing/selftests/mm/split_huge_page_test.c
+++ b/tools/testing/selftests/mm/split_huge_page_test.c
@@ -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);
-- 
2.45.2


Reply via email to