diff mbox series

[v3,2/3] hugemmap32: improvement test

Message ID 20231106093031.1844129-3-liwang@redhat.com
State Changes Requested
Headers show
Series Introduce new field .hptype for reserving gigantic page | expand

Commit Message

Li Wang Nov. 6, 2023, 9:30 a.m. UTC
Signed-off-by: Li Wang <liwang@redhat.com>
---
 .../kernel/mem/hugetlb/hugemmap/hugemmap32.c  | 59 +------------------
 1 file changed, 2 insertions(+), 57 deletions(-)

Comments

Petr Vorel Feb. 16, 2024, 12:09 p.m. UTC | #1
Hi Li,

FYI previous version on Tumbleweed in our CI reported:

hugemmap32.c:41: TPASS: Successfully freed the gigantic hugepages

Now, after check, I get:
tst_hugepage.c:119: TCONF: nr_hugepages = 0, but expect 1. Not enough hugepages for testing.

Kind regards,
Petr
diff mbox series

Patch

diff --git a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap32.c b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap32.c
index d27e5b8b2..8f57a79ac 100644
--- a/testcases/kernel/mem/hugetlb/hugemmap/hugemmap32.c
+++ b/testcases/kernel/mem/hugetlb/hugemmap/hugemmap32.c
@@ -18,67 +18,13 @@ 
 
 #define _GNU_SOURCE
 #include <dirent.h>
-
 #include <stdio.h>
 
 #include "hugetlb.h"
 
-#define PATH_HUGEPAGE "/sys/kernel/mm/hugepages"
-#define GIGANTIC_MIN_ORDER 10
-
-static int org_g_hpages;
-static char g_hpage_path[4096];
-
 static void run_test(void)
 {
-	if (FILE_PRINTF(g_hpage_path, "%d", 1))
-		tst_brk(TCONF, "Can't update the gigantic hugepages.");
-	SAFE_FILE_PRINTF(g_hpage_path, "%d", 0);
-
-	if (tst_taint_check())
-		tst_res(TFAIL, "Freeing Gigantic pages resulted in Bad Page State bug.");
-	else
-		tst_res(TPASS, "Successfully freed the gigantic hugepages");
-}
-
-static void setup(void)
-{
-	DIR *dir;
-	struct dirent *ent;
-	unsigned long hpage_size;
-
-	if (access(PATH_HUGEPAGE, F_OK))
-		tst_brk(TCONF, "hugetlbfs is not supported");
-
-	dir = SAFE_OPENDIR(PATH_HUGEPAGE);
-	while ((ent = SAFE_READDIR(dir))) {
-		if ((sscanf(ent->d_name, "hugepages-%lukB", &hpage_size) == 1) &&
-			is_hugetlb_gigantic(hpage_size * 1024)) {
-			sprintf(g_hpage_path, "%s/%s/%s", PATH_HUGEPAGE,
-					ent->d_name, "nr_hugepages");
-			break;
-		}
-	}
-	if (!g_hpage_path[0])
-		tst_brk(TCONF, "Gigantic hugepages not supported");
-
-	SAFE_CLOSEDIR(dir);
-
-	SAFE_FILE_PRINTF("/proc/sys/vm/drop_caches", "3");
-	SAFE_FILE_PRINTF("/proc/sys/vm/compact_memory", "1");
-
-	if (tst_available_mem() < (long long)hpage_size) {
-		g_hpage_path[0] = '\0';
-		tst_brk(TCONF, "No enough memory for gigantic hugepage reservation");
-	}
-
-	SAFE_FILE_LINES_SCANF(g_hpage_path, "%d", &org_g_hpages);
-}
-
-static void cleanup(void)
-{
-	if (g_hpage_path[0])
-		SAFE_FILE_PRINTF(g_hpage_path, "%d", org_g_hpages);
+	tst_res(TPASS, "If reserved & freed the gigantic page completely, then regard as pass");
 }
 
 static struct tst_test test = {
@@ -88,8 +34,7 @@  static struct tst_test test = {
 	    {}
 	},
 	.needs_root = 1,
-	.setup = setup,
-	.cleanup = cleanup,
+	.hugepages = {1, TST_NEEDS, TST_GIGANTIC},
 	.test_all = run_test,
 	.taint_check = TST_TAINT_B,
 };