rteval-loads/SOURCES/0005-stress-shm-sysv-exercise-NUMA-mempolicy-on-shm.patch

57 lines
1.4 KiB
Diff
Raw Normal View History

2020-07-28 09:31:56 +00:00
From d3e6eb729840935ac4f700f4ac2d32ac6acaa88d Mon Sep 17 00:00:00 2001
From: Colin Ian King <colin.king@canonical.com>
Date: Mon, 18 May 2020 10:00:32 +0100
Subject: [PATCH 05/28] stress-shm-sysv: exercise NUMA mempolicy on shm
Add more kernel test coverage to shm
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
stress-shm-sysv.c | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/stress-shm-sysv.c b/stress-shm-sysv.c
index 9873f8935a12..7703e58cad7a 100644
--- a/stress-shm-sysv.c
+++ b/stress-shm-sysv.c
@@ -37,6 +37,10 @@ static const stress_help_t help[] = {
defined(HAVE_SHM_SYSV)
#define KEY_GET_RETRIES (40)
+#define BITS_PER_BYTE (8)
+#define NUMA_LONG_BITS (sizeof(unsigned long) * BITS_PER_BYTE)
+#define MPOL_F_ADDR (1 << 1)
+#define MPOL_DEFAULT (0)
/*
* Note, running this test with the --maximize option on
@@ -369,6 +373,25 @@ static int stress_shm_sysv_child(
}
#endif
+ /*
+ * Exercise NUMA mem_policy on shm
+ */
+#if defined(__NR_get_mempolicy) && \
+ defined(__NR_set_mempolicy)
+ {
+ int ret, mode;
+ unsigned long node_mask[NUMA_LONG_BITS];
+
+ ret = shim_get_mempolicy(&mode, node_mask, 1,
+ (unsigned long)addrs[i], MPOL_F_ADDR);
+ if (ret == 0) {
+ ret = shim_set_mempolicy(MPOL_DEFAULT, NULL, 1);
+ (void)ret;
+ }
+ (void)ret;
+ }
+#endif
+
inc_counter(args);
}
reap:
--
2.21.3