linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).