[LTP] [PATCH] syscalls/process_madvise01: fix smaps scan and min_swap_avail

Jan Stancek jstancek@redhat.com
Thu Oct 19 10:51:53 CEST 2023


smaps matching can prematurely end, because the comparison to "VmFlags"
string is not exact. So depending on address on line, it can break
before it finds Swap line. This makes the test fail on recent aarch64
kernels.

min_swap_avail per documentation is in MB not KB.

Signed-off-by: Jan Stancek <jstancek@redhat.com>
---
 testcases/kernel/syscalls/process_madvise/process_madvise.h   | 2 +-
 testcases/kernel/syscalls/process_madvise/process_madvise01.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/testcases/kernel/syscalls/process_madvise/process_madvise.h b/testcases/kernel/syscalls/process_madvise/process_madvise.h
index c4570e5309de..5b227ada099e 100644
--- a/testcases/kernel/syscalls/process_madvise/process_madvise.h
+++ b/testcases/kernel/syscalls/process_madvise/process_madvise.h
@@ -54,7 +54,7 @@ static inline void read_address_mapping(unsigned long address, struct addr_mappi
 		if (!found)
 			continue;
 
-		if (found && strcmp(line, "VmFlags") >= 0)
+		if (found && strncmp(line, "VmFlags", 7) == 0)
 			break;
 
 		if (sscanf(line, "%31[^:]: %d", label, &value) > 0) {
diff --git a/testcases/kernel/syscalls/process_madvise/process_madvise01.c b/testcases/kernel/syscalls/process_madvise/process_madvise01.c
index 322b4cf60353..0fd3c1ef4f80 100644
--- a/testcases/kernel/syscalls/process_madvise/process_madvise01.c
+++ b/testcases/kernel/syscalls/process_madvise/process_madvise01.c
@@ -123,7 +123,7 @@ static struct tst_test test = {
 	.min_kver = "5.10",
 	.needs_checkpoints = 1,
 	.needs_root = 1,
-	.min_swap_avail = MEM_CHILD / TST_KB,
+	.min_swap_avail = MEM_CHILD / TST_MB,
 	.needs_kconfigs = (const char *[]) {
 		"CONFIG_SWAP=y",
 		NULL
-- 
2.31.1



More information about the ltp mailing list