diff mbox series

selftests/mm: Dont fail testsuite due to a lack of hugepages

Message ID 20240301073300.287508-1-npache@redhat.com (mailing list archive)
State New
Headers show
Series selftests/mm: Dont fail testsuite due to a lack of hugepages | expand

Commit Message

Nico Pache March 1, 2024, 7:33 a.m. UTC
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 <npache@redhat.com>
---
 tools/testing/selftests/mm/run_vmtests.sh | 1 -
 1 file changed, 1 deletion(-)

Comments

Muhammad Usama Anjum March 1, 2024, 9:28 a.m. UTC | #1
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 <npache@redhat.com>
> ---
>  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?"
Nico Pache March 4, 2024, 7:08 p.m. UTC | #2
On Fri, Mar 1, 2024 at 2:35 AM Muhammad Usama Anjum
<usama.anjum@collabora.com> 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 <npache@redhat.com>
> > ---
> >  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
>
Muhammad Usama Anjum March 5, 2024, 5:49 a.m. UTC | #3
On 3/5/24 12:08 AM, Nico Pache wrote:
> On Fri, Mar 1, 2024 at 2:35 AM Muhammad Usama Anjum
> <usama.anjum@collabora.com> 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 <npache@redhat.com>
>>> ---
>>>  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
>>
> 
>
diff mbox series

Patch

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?"