Re: [PATCH] ksm: delay the check of splitting compound pages

From: xu
Date: Tue Nov 14 2023 - 22:16:02 EST


>> From: xu xin <xu.xin16@xxxxxxxxxx>
>>
>> Background
>> ==========
>> When trying to merge two pages, it may fail because the two pages
>> belongs to the same compound page and split_huge_page fails due to
>> the incorrect reference to the page. To solve the problem, the commit
>> 77da2ba0648a4 ("mm/ksm: fix interaction with THP") tries to split the
>> compound page after try_to_merge_two_pages() fails and put_page in
>> that case. However it is too early to calculate of the variable 'split' which
>> indicates whether the two pages belongs to the same compound page.
>>
>> What to do
>> ==========
>> If try_to_merge_two_pages() succeeds, there is no need to check whether
>> to splitting compound pages. So we delay the check of splitting compound
>> pages until try_to_merge_two_pages() fails, which can improve the
>> processing efficiency of cmp_and_merge_page() a little.
>>
>> Signed-off-by: xu xin <xu.xin16@xxxxxxxxxx>
>> Reviewed-by: Yang Yang <yang.yang29@xxxxxxxxxx>
>
>Can we please add a unit test to ksm_functional_tests.c so we actually
>get it right this time?

Sure. Maybe we can simply refer to the reproducing way Claudio proposes in
77da2ba0648a4 ("mm/ksm: fix interaction with THP").

>--
>Cheers,
>
>David / dhildenb