On 29 Aug 2025, at 22:31, Wei Yang wrote:

> The check of is_backed_by_folio() is done on each page.
>
> Directly move pointer to next page instead of increase one and check if
> it is page size aligned.
>
> Signed-off-by: Wei Yang <[email protected]>
> ---
>  tools/testing/selftests/mm/split_huge_page_test.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
>
> diff --git a/tools/testing/selftests/mm/split_huge_page_test.c 
> b/tools/testing/selftests/mm/split_huge_page_test.c
> index 10ae65ea032f..7f7016ba4054 100644
> --- a/tools/testing/selftests/mm/split_huge_page_test.c
> +++ b/tools/testing/selftests/mm/split_huge_page_test.c
> @@ -423,9 +423,8 @@ static void split_pte_mapped_thp(void)
>
>       /* smap does not show THPs after mremap, use kpageflags instead */
>       thp_size = 0;
> -     for (i = 0; i < pagesize * 4; i++)
> -             if (i % pagesize == 0 &&
> -                 is_backed_by_folio(&pte_mapped[i], pmd_order, pagemap_fd, 
> kpageflags_fd))
> +     for (i = 0; i < pagesize * 4; i += pagesize)
> +             if (is_backed_by_folio(&pte_mapped[i], pmd_order, pagemap_fd, 
> kpageflags_fd))
>                       thp_size++;
>
>       if (thp_size != 4)

It might be better to add

if (pte_mapped[i] != (char)i)
        ksft_exit_fail_msg("%ld byte corrupted\n", i);

instead to make sure mremap() does not change pte_mapped[] values.

--
Best Regards,
Yan, Zi

Reply via email to