Skip to contentSkip to conversation

hugetlb: fix warnings in cleanup()

PATCH New Li Wang 2 participants 3 messages Oct 27, 2017 – Dec 1, 2017

lore
Share & tools
lore

Li Wang

author
#0 lore raw

PATCH 1/1 hugetlb: fix warnings in cleanup()

It'd be better to define the 'orig_hugepages' to '-1' in hugetlb/lib, then we can make use of it to avoid the warnings on a system without huge page supporting.

WARNING:
safe_file_ops.c:283: WARN: Failed to open FILE '/proc/sys/vm/nr_hugepages' for writing at mem.c:853: ENOENT

---
 testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c     | 3 ++-
 testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c     | 3 ++-
 testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c     | 3 ++-
 testcases/kernel/mem/hugetlb/hugemmap/hugemmap05.c     | 2 +-
 testcases/kernel/mem/hugetlb/hugemmap/hugemmap06.c     | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat01.c   | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c   | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat03.c   | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat04.c   | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat05.c   | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl01.c | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl02.c | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl03.c | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmdt/hugeshmdt01.c   | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget02.c | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c | 3 ++-
 testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget05.c | 3 ++-
 testcases/kernel/mem/hugetlb/lib/hugetlb.c             | 2 ++
 testcases/kernel/mem/hugetlb/lib/hugetlb.h             | 2 +-
 20 files changed, 38 insertions(+), 19 deletions(-)
testcases/kernel/mem/hugetlb/hugemmap/hugemmap01.c +2 -1
index 212a852..aed21ac 100644
@@ -108,7 +108,8 @@ void setup(void)
 void cleanup(void)
 {
 	unlink(TEMPFILE);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 
 	umount(Hopt);
 }
testcases/kernel/mem/hugetlb/hugemmap/hugemmap02.c +2 -1
index 52db226..1dc9c9b 100644
@@ -154,7 +154,8 @@ static void setup(void)
 static void cleanup(void)
 {
 	unlink(TEMPFILE);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 
 	umount(Hopt);
 }
testcases/kernel/mem/hugetlb/hugemmap/hugemmap04.c +2 -1
index 2a368a3..7b423fc 100644
@@ -125,7 +125,8 @@ void setup(void)
 void cleanup(void)
 {
 	unlink(TEMPFILE);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 
 	umount(Hopt);
 }
testcases/kernel/mem/hugetlb/hugemmap/hugemmap05.c +1 -1
index c73a975..e49c948 100644
@@ -206,8 +206,8 @@ static void cleanup(void)
 
 static void setup(void)
 {
-	hugepagesize = SAFE_READ_MEMINFO("Hugepagesize:") * 1024;
 	check_hugepage();
+	hugepagesize = SAFE_READ_MEMINFO("Hugepagesize:") * 1024;
 	init_sys_sz_paths();
 
 	if (opt_sysfs) {
testcases/kernel/mem/hugetlb/hugemmap/hugemmap06.c +2 -1
index 40caf81..7bebfc2 100644
@@ -67,7 +67,8 @@ static void setup(void)
 
 static void cleanup(void)
 {
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static void *thr(void *arg)
testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat01.c +2 -1
index a0867a8..77242b4 100644
@@ -190,7 +190,8 @@ static void setup(void)
 static void cleanup(void)
 {
 	rm_shm(shm_id_1);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat02.c +2 -1
index f45151d..1af6bcf 100644
@@ -116,7 +116,8 @@ void setup(void)
 void cleanup(void)
 {
 	rm_shm(shm_id_2);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat03.c +2 -1
index 83534e5..c7a1a9a 100644
@@ -111,7 +111,8 @@ static void setup(void)
 static void cleanup(void)
 {
 	rm_shm(shm_id_1);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat04.c +2 -1
index 1411af6..6ede95a 100644
@@ -107,7 +107,8 @@ static void setup(void)
 
 static void cleanup(void)
 {
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 	SAFE_FILE_PRINTF(PATH_SHMMAX, "%ld", orig_shmmax);
 }
 
testcases/kernel/mem/hugetlb/hugeshmat/hugeshmat05.c +2 -1
index d86d7f9..54c19c9 100644
@@ -58,7 +58,8 @@ void setup(void)
 
 void cleanup(void)
 {
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 void shm_test(int size)
testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl01.c +2 -1
index ad7a80d..a465a60 100644
@@ -376,7 +376,8 @@ void setup(void)
 void cleanup(void)
 {
 	rm_shm(shm_id_1);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl02.c +2 -1
index 6079d99..2c2ccda 100644
@@ -121,7 +121,8 @@ static void cleanup(void)
 {
 	rm_shm(shm_id_1);
 	rm_shm(shm_id_2);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmctl/hugeshmctl03.c +2 -1
index 0474b31..66c261c 100644
@@ -141,7 +141,8 @@ void setup(void)
 void cleanup(void)
 {
 	rm_shm(shm_id_1);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmdt/hugeshmdt01.c +2 -1
index 796d6df..b7a719d 100644
@@ -163,7 +163,8 @@ void setup(void)
 void cleanup(void)
 {
 	rm_shm(shm_id_1);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget01.c +2 -1
index ac3a1f0..c2234a7 100644
@@ -89,7 +89,8 @@ static void setup(void)
 static void cleanup(void)
 {
 	rm_shm(shm_id_1);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget02.c +2 -1
index 7db8b4e..341ff0a 100644
@@ -107,7 +107,8 @@ void setup(void)
 void cleanup(void)
 {
 	rm_shm(shm_id_1);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget03.c +2 -1
index f485b0d..04c86cf 100644
@@ -107,7 +107,8 @@ static void cleanup(void)
 		rm_shm(shm_id_arr[i]);
 
 	FILE_PRINTF(PATH_SHMMNI, "%ld", orig_shmmni);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/hugeshmget/hugeshmget05.c +2 -1
index 790d736..e0341e8 100644
@@ -102,7 +102,8 @@ void setup(void)
 void cleanup(void)
 {
 	rm_shm(shm_id_1);
-	set_sys_tune("nr_hugepages", orig_hugepages, 0);
+	if (orig_hugepages != -1)
+		set_sys_tune("nr_hugepages", orig_hugepages, 0);
 }
 
 static struct tst_test test = {
testcases/kernel/mem/hugetlb/lib/hugetlb.c +2 -0
index 7afc7d4..74fb3df 100644
@@ -40,6 +40,8 @@
 #include <pwd.h>
 #include "hugetlb.h"
 
+long orig_hugepages = -1;
+
 void check_hugepage(void)
 {
 	if (access(PATH_HUGEPAGES, F_OK))
testcases/kernel/mem/hugetlb/lib/hugetlb.h +1 -1
index c6d2016..074e243 100644
@@ -57,6 +57,6 @@ void rm_shm(int shm_id);
 
 char *nr_opt;
 char *Hopt;
-long orig_hugepages;
+extern long orig_hugepages;
 
 #endif /* hugetlb.h */
Signature · 1 line
2.9.3
#1 lore raw

PATCH 1/1 hugetlb: fix warnings in cleanup()

Hi!
The fix is OK, but we may as well do it better, if we move completly the logic to the library we do not have to repeat the code in each test.

So what about adding two functions save_nr_hugepages() and restore_nr_hugepages() to the library and call these from the test setup and cleanup?

Signature · 2 lines
Cyril Hrubis
[email protected]
author
#2 lore raw

PATCH 1/1 hugetlb: fix warnings in cleanup()

Quoted 7 lines · Cyril Hrubis

Hi!
The fix is OK, but we may as well do it better, if we move completly the logic to the library we do not have to repeat the code in each test.

So what about adding two functions save_nr_hugepages() and restore_nr_hugepages() to the library and call these from the test setup and cleanup?

Agree! Thanks a lot.

Signature · 2 lines
Li Wang
[email protected]