2023-03-06 16:24:11

by Zi Yan

[permalink] [raw]
Subject: [PATCH] selftests/mm: fix split huge page tests

From: Zi Yan <[email protected]>

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 <[email protected]>
Cc: Zach O'Keefe <[email protected]>
---
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



2023-03-06 18:31:55

by Zach O'Keefe

[permalink] [raw]
Subject: Re: [PATCH] selftests/mm: fix split huge page tests

On Mar 06 11:09, Zi Yan wrote:
> From: Zi Yan <[email protected]>
>
> 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 <[email protected]>
> Cc: Zach O'Keefe <[email protected]>
> ---
> 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 <[email protected]>
Tested-by: Zach O'Keefe <[email protected]>

I don't know which is more appropriate.

Best,
Zach


2023-03-06 18:33:52

by Zi Yan

[permalink] [raw]
Subject: Re: [PATCH] selftests/mm: fix split huge page tests

On 6 Mar 2023, at 13:31, Zach O'Keefe wrote:

> On Mar 06 11:09, Zi Yan wrote:
>> From: Zi Yan <[email protected]>
>>
>> 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 <[email protected]>
>> Cc: Zach O'Keefe <[email protected]>
>> ---
>> 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 <[email protected]>
> Tested-by: Zach O'Keefe <[email protected]>
>

Thanks.


--
Best Regards,
Yan, Zi


Attachments:
signature.asc (854.00 B)
OpenPGP digital signature

2023-03-07 10:23:25

by David Hildenbrand

[permalink] [raw]
Subject: Re: [PATCH] selftests/mm: fix split huge page tests

On 06.03.23 17:09, Zi Yan wrote:
> From: Zi Yan <[email protected]>
>
> 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 <[email protected]>
> Cc: Zach O'Keefe <[email protected]>
> ---
> 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 <[email protected]>

--
Thanks,

David / dhildenb