* [PATCH v2 0/3] selftests/mm: Improve Hugepage Test Handling in MM Selftests
@ 2024-03-06 22:37 Nico Pache
2024-03-06 22:37 ` [PATCH v2 1/3] selftests/mm: Dont fail testsuite due to a lack of hugepages Nico Pache
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Nico Pache @ 2024-03-06 22:37 UTC (permalink / raw)
To: linux-mm, linux-kselftest, linux-kernel; +Cc: ben, shuah, akpm, usama.anjum
This series addresses issues related to hugepage requirements in the MM
selftests, ensuring tests are skipped rather than failing when the
necessary hugepage count is not met.
This adjustment allows for a more graceful handling for systems with
insufficient hugepages, preventing unnecessary test failures and improving
the overall robustness of the test suite.
Nico Pache (3):
selftests/mm: Dont fail testsuite due to a lack of hugepages
selftests/mm: Skip uffd hugetlb tests with insufficient hugepages
selftests/mm: Skip the hugetlb-madvise tests on unmet hugepage
requirements
Changes from v1:
- Added checks to skip tests when hugepage requirements are not met, rather
than exiting with a failure.
tools/testing/selftests/mm/hugetlb-madvise.c | 2 +-
tools/testing/selftests/mm/run_vmtests.sh | 1 -
tools/testing/selftests/mm/uffd-stress.c | 6 ++++++
3 files changed, 7 insertions(+), 2 deletions(-)
--
2.44.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 1/3] selftests/mm: Dont fail testsuite due to a lack of hugepages
2024-03-06 22:37 [PATCH v2 0/3] selftests/mm: Improve Hugepage Test Handling in MM Selftests Nico Pache
@ 2024-03-06 22:37 ` Nico Pache
2024-03-06 22:37 ` [PATCH v2 2/3] selftests/mm: Skip uffd hugetlb tests with insufficient hugepages Nico Pache
2024-03-06 22:37 ` [PATCH v2 3/3] selftests/mm: Skip the hugetlb-madvise tests on unmet hugepage requirements Nico Pache
2 siblings, 0 replies; 4+ messages in thread
From: Nico Pache @ 2024-03-06 22:37 UTC (permalink / raw)
To: linux-mm, linux-kselftest, linux-kernel; +Cc: ben, shuah, akpm, usama.anjum
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(-)
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.44.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 2/3] selftests/mm: Skip uffd hugetlb tests with insufficient hugepages
2024-03-06 22:37 [PATCH v2 0/3] selftests/mm: Improve Hugepage Test Handling in MM Selftests Nico Pache
2024-03-06 22:37 ` [PATCH v2 1/3] selftests/mm: Dont fail testsuite due to a lack of hugepages Nico Pache
@ 2024-03-06 22:37 ` Nico Pache
2024-03-06 22:37 ` [PATCH v2 3/3] selftests/mm: Skip the hugetlb-madvise tests on unmet hugepage requirements Nico Pache
2 siblings, 0 replies; 4+ messages in thread
From: Nico Pache @ 2024-03-06 22:37 UTC (permalink / raw)
To: linux-mm, linux-kselftest, linux-kernel; +Cc: ben, shuah, akpm, usama.anjum
Now that run_vmtests.sh does not guarantee that the correct hugepage
count is available, add a check inside the userfaultfd hugetlb test to
verify the nr_hugepages count before continuing.
Signed-off-by: Nico Pache <npache@redhat.com>
---
tools/testing/selftests/mm/uffd-stress.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tools/testing/selftests/mm/uffd-stress.c b/tools/testing/selftests/mm/uffd-stress.c
index 7e83829bbb335..1165446f10883 100644
--- a/tools/testing/selftests/mm/uffd-stress.c
+++ b/tools/testing/selftests/mm/uffd-stress.c
@@ -441,6 +441,12 @@ int main(int argc, char **argv)
parse_test_type_arg(argv[1]);
bytes = atol(argv[2]) * 1024 * 1024;
+ if (test_type == TEST_HUGETLB &&
+ get_free_hugepages() < bytes / page_size) {
+ printf("skip: Skipping userfaultfd... not enough hugepages\n");
+ return KSFT_SKIP;
+ }
+
nr_cpus = sysconf(_SC_NPROCESSORS_ONLN);
nr_pages_per_cpu = bytes / page_size / nr_cpus;
--
2.44.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 3/3] selftests/mm: Skip the hugetlb-madvise tests on unmet hugepage requirements
2024-03-06 22:37 [PATCH v2 0/3] selftests/mm: Improve Hugepage Test Handling in MM Selftests Nico Pache
2024-03-06 22:37 ` [PATCH v2 1/3] selftests/mm: Dont fail testsuite due to a lack of hugepages Nico Pache
2024-03-06 22:37 ` [PATCH v2 2/3] selftests/mm: Skip uffd hugetlb tests with insufficient hugepages Nico Pache
@ 2024-03-06 22:37 ` Nico Pache
2 siblings, 0 replies; 4+ messages in thread
From: Nico Pache @ 2024-03-06 22:37 UTC (permalink / raw)
To: linux-mm, linux-kselftest, linux-kernel; +Cc: ben, shuah, akpm, usama.anjum
Now that run_vmtests.sh does not guarantee that the correct hugepage
count is available, skip the hugetlb-madvise test if the requirements
are not met rather than failing.
Signed-off-by: Nico Pache <npache@redhat.com>
---
tools/testing/selftests/mm/hugetlb-madvise.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/mm/hugetlb-madvise.c b/tools/testing/selftests/mm/hugetlb-madvise.c
index f32d99565c5ea..e74107185324f 100644
--- a/tools/testing/selftests/mm/hugetlb-madvise.c
+++ b/tools/testing/selftests/mm/hugetlb-madvise.c
@@ -19,6 +19,7 @@
#include <sys/mman.h>
#include <fcntl.h>
#include "vm_util.h"
+#include "../kselftest.h"
#define MIN_FREE_PAGES 20
#define NR_HUGE_PAGES 10 /* common number of pages to map/allocate */
@@ -78,7 +79,7 @@ int main(int argc, char **argv)
free_hugepages = get_free_hugepages();
if (free_hugepages < MIN_FREE_PAGES) {
printf("Not enough free huge pages to test, exiting!\n");
- exit(1);
+ exit(KSFT_SKIP);
}
fd = memfd_create(argv[0], MFD_HUGETLB);
--
2.44.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-03-06 22:38 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-06 22:37 [PATCH v2 0/3] selftests/mm: Improve Hugepage Test Handling in MM Selftests Nico Pache
2024-03-06 22:37 ` [PATCH v2 1/3] selftests/mm: Dont fail testsuite due to a lack of hugepages Nico Pache
2024-03-06 22:37 ` [PATCH v2 2/3] selftests/mm: Skip uffd hugetlb tests with insufficient hugepages Nico Pache
2024-03-06 22:37 ` [PATCH v2 3/3] selftests/mm: Skip the hugetlb-madvise tests on unmet hugepage requirements Nico Pache
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).