diff mbox series

selftests/mm: fix split huge page tests

Message ID 20230306160907.16804-1-zi.yan@sent.com (mailing list archive)
State Accepted
Commit dd63bd7df41a8f9393a2e3ff9157a441c08eb996
Headers show
Series selftests/mm: fix split huge page tests | expand

Commit Message

Zi Yan March 6, 2023, 4:09 p.m. UTC
From: Zi Yan <ziy@nvidia.com>

Fixed two inputs to check_anon_huge() and one if condition, so the tests
work as expected.

Fixes: c07c343cda8e ("selftests/vm: dedup THP helpers")
Signed-off-by: Zi Yan <ziy@nvidia.com>
Cc: Zach O'Keefe <zokeefe@google.com>
---
 tools/testing/selftests/mm/split_huge_page_test.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Zach O'Keefe March 6, 2023, 6:31 p.m. UTC | #1
On Mar 06 11:09, Zi Yan wrote:
> From: Zi Yan <ziy@nvidia.com>
> 
> Fixed two inputs to check_anon_huge() and one if condition, so the tests
> work as expected.
> 
> Fixes: c07c343cda8e ("selftests/vm: dedup THP helpers")
> Signed-off-by: Zi Yan <ziy@nvidia.com>
> Cc: Zach O'Keefe <zokeefe@google.com>
> ---
>  tools/testing/selftests/mm/split_huge_page_test.c | 6 +++---
>  1 file changed, 3 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 76e1c36dd9e5..b8558c7f1a39 100644
> --- a/tools/testing/selftests/mm/split_huge_page_test.c
> +++ b/tools/testing/selftests/mm/split_huge_page_test.c
> @@ -106,7 +106,7 @@ void split_pmd_thp(void)
>  	for (i = 0; i < len; i++)
>  		one_page[i] = (char)i;
>  
> -	if (!check_huge_anon(one_page, 1, pmd_pagesize)) {
> +	if (!check_huge_anon(one_page, 4, pmd_pagesize)) {
>  		printf("No THP is allocated\n");
>  		exit(EXIT_FAILURE);
>  	}
> @@ -122,7 +122,7 @@ void split_pmd_thp(void)
>  		}
>  
>  
> -	if (check_huge_anon(one_page, 0, pmd_pagesize)) {
> +	if (!check_huge_anon(one_page, 0, pmd_pagesize)) {
>  		printf("Still AnonHugePages not split\n");
>  		exit(EXIT_FAILURE);
>  	}
> @@ -169,7 +169,7 @@ void split_pte_mapped_thp(void)
>  	for (i = 0; i < len; i++)
>  		one_page[i] = (char)i;
>  
> -	if (!check_huge_anon(one_page, 1, pmd_pagesize)) {
> +	if (!check_huge_anon(one_page, 4, pmd_pagesize)) {
>  		printf("No THP is allocated\n");
>  		exit(EXIT_FAILURE);
>  	}
> -- 
> 2.39.2
> 

Thanks Zi -- I had this in my TODO-log, but was slow to get it it -- apologies
for the clearly buggy code, and thanks for the cleanup. I've ran these tests to
confirm (as I should have previously), and it all looks good. Can have either my

Reviewed-by: Zach O'Keefe <zokeefe@google.com>
Tested-by: Zach O'Keefe <zokeefe@google.com>

I don't know which is more appropriate.

Best,
Zach
Zi Yan March 6, 2023, 6:32 p.m. UTC | #2
On 6 Mar 2023, at 13:31, Zach O'Keefe wrote:

> On Mar 06 11:09, Zi Yan wrote:
>> From: Zi Yan <ziy@nvidia.com>
>>
>> Fixed two inputs to check_anon_huge() and one if condition, so the tests
>> work as expected.
>>
>> Fixes: c07c343cda8e ("selftests/vm: dedup THP helpers")
>> Signed-off-by: Zi Yan <ziy@nvidia.com>
>> Cc: Zach O'Keefe <zokeefe@google.com>
>> ---
>>  tools/testing/selftests/mm/split_huge_page_test.c | 6 +++---
>>  1 file changed, 3 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 76e1c36dd9e5..b8558c7f1a39 100644
>> --- a/tools/testing/selftests/mm/split_huge_page_test.c
>> +++ b/tools/testing/selftests/mm/split_huge_page_test.c
>> @@ -106,7 +106,7 @@ void split_pmd_thp(void)
>>  	for (i = 0; i < len; i++)
>>  		one_page[i] = (char)i;
>>
>> -	if (!check_huge_anon(one_page, 1, pmd_pagesize)) {
>> +	if (!check_huge_anon(one_page, 4, pmd_pagesize)) {
>>  		printf("No THP is allocated\n");
>>  		exit(EXIT_FAILURE);
>>  	}
>> @@ -122,7 +122,7 @@ void split_pmd_thp(void)
>>  		}
>>
>>
>> -	if (check_huge_anon(one_page, 0, pmd_pagesize)) {
>> +	if (!check_huge_anon(one_page, 0, pmd_pagesize)) {
>>  		printf("Still AnonHugePages not split\n");
>>  		exit(EXIT_FAILURE);
>>  	}
>> @@ -169,7 +169,7 @@ void split_pte_mapped_thp(void)
>>  	for (i = 0; i < len; i++)
>>  		one_page[i] = (char)i;
>>
>> -	if (!check_huge_anon(one_page, 1, pmd_pagesize)) {
>> +	if (!check_huge_anon(one_page, 4, pmd_pagesize)) {
>>  		printf("No THP is allocated\n");
>>  		exit(EXIT_FAILURE);
>>  	}
>> -- 
>> 2.39.2
>>
>
> Thanks Zi -- I had this in my TODO-log, but was slow to get it it -- apologies
> for the clearly buggy code, and thanks for the cleanup. I've ran these tests to
> confirm (as I should have previously), and it all looks good. Can have either my
>
> Reviewed-by: Zach O'Keefe <zokeefe@google.com>
> Tested-by: Zach O'Keefe <zokeefe@google.com>
>

Thanks.


--
Best Regards,
Yan, Zi
David Hildenbrand March 7, 2023, 10:22 a.m. UTC | #3
On 06.03.23 17:09, Zi Yan wrote:
> From: Zi Yan <ziy@nvidia.com>
> 
> Fixed two inputs to check_anon_huge() and one if condition, so the tests
> work as expected.
> 
> Fixes: c07c343cda8e ("selftests/vm: dedup THP helpers")
> Signed-off-by: Zi Yan <ziy@nvidia.com>
> Cc: Zach O'Keefe <zokeefe@google.com>
> ---
>   tools/testing/selftests/mm/split_huge_page_test.c | 6 +++---
>   1 file changed, 3 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 76e1c36dd9e5..b8558c7f1a39 100644
> --- a/tools/testing/selftests/mm/split_huge_page_test.c
> +++ b/tools/testing/selftests/mm/split_huge_page_test.c
> @@ -106,7 +106,7 @@ void split_pmd_thp(void)
>   	for (i = 0; i < len; i++)
>   		one_page[i] = (char)i;
>   
> -	if (!check_huge_anon(one_page, 1, pmd_pagesize)) {
> +	if (!check_huge_anon(one_page, 4, pmd_pagesize)) {
>   		printf("No THP is allocated\n");
>   		exit(EXIT_FAILURE);
>   	}
> @@ -122,7 +122,7 @@ void split_pmd_thp(void)
>   		}
>   
>   
> -	if (check_huge_anon(one_page, 0, pmd_pagesize)) {
> +	if (!check_huge_anon(one_page, 0, pmd_pagesize)) {
>   		printf("Still AnonHugePages not split\n");
>   		exit(EXIT_FAILURE);
>   	}
> @@ -169,7 +169,7 @@ void split_pte_mapped_thp(void)
>   	for (i = 0; i < len; i++)
>   		one_page[i] = (char)i;
>   
> -	if (!check_huge_anon(one_page, 1, pmd_pagesize)) {
> +	if (!check_huge_anon(one_page, 4, pmd_pagesize)) {
>   		printf("No THP is allocated\n");
>   		exit(EXIT_FAILURE);
>   	}

Hard to read. It should probably be "get_huge_anon()" to then check for 
the value in the caller manually. Negative value could be used as an 
indicator for an error obtaining the value.

Anyhow, was briefly confused about the 4 ("magic value" also apprearing 
in "size_t len = 4 * pmd_pagesize;") but it seems to be the right thing 
to do.

Acked-by: David Hildenbrand <david@redhat.com>
diff mbox series

Patch

diff --git a/tools/testing/selftests/mm/split_huge_page_test.c b/tools/testing/selftests/mm/split_huge_page_test.c
index 76e1c36dd9e5..b8558c7f1a39 100644
--- a/tools/testing/selftests/mm/split_huge_page_test.c
+++ b/tools/testing/selftests/mm/split_huge_page_test.c
@@ -106,7 +106,7 @@  void split_pmd_thp(void)
 	for (i = 0; i < len; i++)
 		one_page[i] = (char)i;
 
-	if (!check_huge_anon(one_page, 1, pmd_pagesize)) {
+	if (!check_huge_anon(one_page, 4, pmd_pagesize)) {
 		printf("No THP is allocated\n");
 		exit(EXIT_FAILURE);
 	}
@@ -122,7 +122,7 @@  void split_pmd_thp(void)
 		}
 
 
-	if (check_huge_anon(one_page, 0, pmd_pagesize)) {
+	if (!check_huge_anon(one_page, 0, pmd_pagesize)) {
 		printf("Still AnonHugePages not split\n");
 		exit(EXIT_FAILURE);
 	}
@@ -169,7 +169,7 @@  void split_pte_mapped_thp(void)
 	for (i = 0; i < len; i++)
 		one_page[i] = (char)i;
 
-	if (!check_huge_anon(one_page, 1, pmd_pagesize)) {
+	if (!check_huge_anon(one_page, 4, pmd_pagesize)) {
 		printf("No THP is allocated\n");
 		exit(EXIT_FAILURE);
 	}