2024-03-01 07:33:22

by Nico Pache

[permalink] [raw]
Subject: [PATCH] selftests/mm: Dont fail testsuite due to a lack of hugepages

On systems that have large core counts and large page sizes, but limited
memory, the userfaultfd test hugepage requirement is too large.

Exiting early due to missing one test's requirements is a rather aggressive
strategy, and prevents a lot of other tests from running. Remove the
early exit to prevent this.

Fixes: ee00479d6702 ("selftests: vm: Try harder to allocate huge pages")
Signed-off-by: Nico Pache <[email protected]>
---
tools/testing/selftests/mm/run_vmtests.sh | 1 -
1 file changed, 1 deletion(-)

diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh
index 246d53a5d7f28..727ea22ba408e 100755
--- a/tools/testing/selftests/mm/run_vmtests.sh
+++ b/tools/testing/selftests/mm/run_vmtests.sh
@@ -173,7 +173,6 @@ if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
if [ "$freepgs" -lt "$needpgs" ]; then
printf "Not enough huge pages available (%d < %d)\n" \
"$freepgs" "$needpgs"
- exit 1
fi
else
echo "no hugetlbfs support in kernel?"
--
2.43.0



2024-03-01 09:44:43

by Muhammad Usama Anjum

[permalink] [raw]
Subject: Re: [PATCH] selftests/mm: Dont fail testsuite due to a lack of hugepages

On 3/1/24 12:33 PM, Nico Pache wrote:
> On systems that have large core counts and large page sizes, but limited
> memory, the userfaultfd test hugepage requirement is too large.
>
> Exiting early due to missing one test's requirements is a rather aggressive
> strategy, and prevents a lot of other tests from running. Remove the
> early exit to prevent this.
Why don't we only skip that particular test which requires huge number of
pages instead? Thus the behavior of this script would remain same.

>
> Fixes: ee00479d6702 ("selftests: vm: Try harder to allocate huge pages")
> Signed-off-by: Nico Pache <[email protected]>
> ---
> tools/testing/selftests/mm/run_vmtests.sh | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh
> index 246d53a5d7f28..727ea22ba408e 100755
> --- a/tools/testing/selftests/mm/run_vmtests.sh
> +++ b/tools/testing/selftests/mm/run_vmtests.sh
> @@ -173,7 +173,6 @@ if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
> if [ "$freepgs" -lt "$needpgs" ]; then
> printf "Not enough huge pages available (%d < %d)\n" \
> "$freepgs" "$needpgs"
> - exit 1
> fi
> else
> echo "no hugetlbfs support in kernel?"

--
BR,
Muhammad Usama Anjum

2024-03-04 19:45:43

by Nico Pache

[permalink] [raw]
Subject: Re: [PATCH] selftests/mm: Dont fail testsuite due to a lack of hugepages

On Fri, Mar 1, 2024 at 2:35 AM Muhammad Usama Anjum
<[email protected]> wrote:
>
> On 3/1/24 12:33 PM, Nico Pache wrote:
> > On systems that have large core counts and large page sizes, but limited
> > memory, the userfaultfd test hugepage requirement is too large.
> >
> > Exiting early due to missing one test's requirements is a rather aggressive
> > strategy, and prevents a lot of other tests from running. Remove the
> > early exit to prevent this.
> Why don't we only skip that particular test which requires huge number of
> pages instead? Thus the behavior of this script would remain same.
Hi Muhammad,

That would not solve the problem-- The issue is not with the
userfaultfd test, but rather this part of the script that tries to
allocate the hugepages. If it doesnt succeed at allocating the right
amount of hugepages it will exit the run_vmtests.sh script, thus
stopping all other tests. With the `exit` removed, the test suite is
able to run, and upon running the userfaultfd test will result in a
failed test case.

If you'd like I can follow up with a patch to skip the test cases (in
the actually test) rather than failing.

Cheers,
-- Nico
>
> >
> > Fixes: ee00479d6702 ("selftests: vm: Try harder to allocate huge pages")
> > Signed-off-by: Nico Pache <[email protected]>
> > ---
> > tools/testing/selftests/mm/run_vmtests.sh | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh
> > index 246d53a5d7f28..727ea22ba408e 100755
> > --- a/tools/testing/selftests/mm/run_vmtests.sh
> > +++ b/tools/testing/selftests/mm/run_vmtests.sh
> > @@ -173,7 +173,6 @@ if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
> > if [ "$freepgs" -lt "$needpgs" ]; then
> > printf "Not enough huge pages available (%d < %d)\n" \
> > "$freepgs" "$needpgs"
> > - exit 1
> > fi
> > else
> > echo "no hugetlbfs support in kernel?"
>
> --
> BR,
> Muhammad Usama Anjum
>


2024-03-05 05:49:18

by Muhammad Usama Anjum

[permalink] [raw]
Subject: Re: [PATCH] selftests/mm: Dont fail testsuite due to a lack of hugepages

On 3/5/24 12:08 AM, Nico Pache wrote:
> On Fri, Mar 1, 2024 at 2:35 AM Muhammad Usama Anjum
> <[email protected]> wrote:
>>
>> On 3/1/24 12:33 PM, Nico Pache wrote:
>>> On systems that have large core counts and large page sizes, but limited
>>> memory, the userfaultfd test hugepage requirement is too large.
>>>
>>> Exiting early due to missing one test's requirements is a rather aggressive
>>> strategy, and prevents a lot of other tests from running. Remove the
>>> early exit to prevent this.
>> Why don't we only skip that particular test which requires huge number of
>> pages instead? Thus the behavior of this script would remain same.
> Hi Muhammad,
>
> That would not solve the problem-- The issue is not with the
> userfaultfd test, but rather this part of the script that tries to
> allocate the hugepages. If it doesnt succeed at allocating the right
> amount of hugepages it will exit the run_vmtests.sh script, thus
> stopping all other tests. With the `exit` removed, the test suite is
> able to run, and upon running the userfaultfd test will result in a
> failed test case.
>
> If you'd like I can follow up with a patch to skip the test cases (in
> the actually test) rather than failing.
Its just that we don't want failures if there are less number of huge pages
available. CI people would mind finding failures. Tests should be updated
to skip in those cases then.

>
> Cheers,
> -- Nico
>>
>>>
>>> Fixes: ee00479d6702 ("selftests: vm: Try harder to allocate huge pages")
>>> Signed-off-by: Nico Pache <[email protected]>
>>> ---
>>> tools/testing/selftests/mm/run_vmtests.sh | 1 -
>>> 1 file changed, 1 deletion(-)
>>>
>>> diff --git a/tools/testing/selftests/mm/run_vmtests.sh b/tools/testing/selftests/mm/run_vmtests.sh
>>> index 246d53a5d7f28..727ea22ba408e 100755
>>> --- a/tools/testing/selftests/mm/run_vmtests.sh
>>> +++ b/tools/testing/selftests/mm/run_vmtests.sh
>>> @@ -173,7 +173,6 @@ if [ -n "$freepgs" ] && [ -n "$hpgsize_KB" ]; then
>>> if [ "$freepgs" -lt "$needpgs" ]; then
>>> printf "Not enough huge pages available (%d < %d)\n" \
>>> "$freepgs" "$needpgs"
>>> - exit 1
>>> fi
>>> else
>>> echo "no hugetlbfs support in kernel?"
>>
>> --
>> BR,
>> Muhammad Usama Anjum
>>
>
>

--
BR,
Muhammad Usama Anjum