summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-12-26 16:44:13 -0500
committerBen Gamari <ben@smart-cactus.org>2019-12-26 16:50:08 -0500
commit4ed9ae3e8442673d93856c1ec19bd3eddda7dc9f (patch)
tree50b2f4ab91b86b1059d819db418952ad54c4c146
parentc9d1f1d6a6d0a3e5937e8154566d11cc86a2311f (diff)
downloadhaskell-wip/T17606.tar.gz
rts: Fix --debug-numa mode under Dockerwip/T17606
As noted in #17606, Docker disallows the get_mempolicy syscall by default. This caused numerous tests to fail under CI in the `debug_numa` way. Avoid this by disabling the NUMA probing logic when --debug-numa is in use, instead setting n_numa_nodes in RtsFlags.c. Fixes #17606.
-rw-r--r--rts/Capability.c2
-rw-r--r--rts/RtsFlags.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/rts/Capability.c b/rts/Capability.c
index 91d4683f73..c112349925 100644
--- a/rts/Capability.c
+++ b/rts/Capability.c
@@ -350,6 +350,8 @@ void initCapabilities (void)
for (i = 0; i < MAX_NUMA_NODES; i++) {
numa_map[i] = 0;
}
+ } else if (RtsFlags.DebugFlags.numa) {
+ // n_numa_nodes was set by RtsFlags.c
} else {
uint32_t nNodes = osNumaNodes();
if (nNodes > MAX_NUMA_NODES) {
diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c
index fd667a9382..0c3a41d464 100644
--- a/rts/RtsFlags.c
+++ b/rts/RtsFlags.c
@@ -990,6 +990,7 @@ error = true;
RtsFlags.GcFlags.numa = true;
RtsFlags.DebugFlags.numa = true;
RtsFlags.GcFlags.numaMask = (1<<nNodes) - 1;
+ n_numa_nodes = nNodes;
}
}
#endif