On Mon, Sep 01, 2025 at 11:32:11AM +0200, David Hildenbrand wrote:
>On 31.08.25 03:32, Zi Yan wrote:
>> 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.
>
>We do have a corruption check later in that function, so I think we can just
>keep it simple here.
>
>So this as is LGTM
>
>Acked-by: David Hildenbrand <[email protected]>
>
>As noted, we should just move from mremap() to mprotect() or sth like that
>which has clearer semantics.
>

If my understanding is correct, we should

   mmap 4 PMD_SIZE region with RW
   madvise and fault in to allocate pmd-mapped thp
   mprotect first page of each PMD to read-only to split to pte-mapped thp
   check whether the page is backed by pmd-order folio

Is this the correct way? 

-- 
Wei Yang
Help you, Help me

Reply via email to