diff options
author | Ben Gamari <ben@smart-cactus.org> | 2019-12-26 16:44:13 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-12-26 16:50:08 -0500 |
commit | 4ed9ae3e8442673d93856c1ec19bd3eddda7dc9f (patch) | |
tree | 50b2f4ab91b86b1059d819db418952ad54c4c146 | |
parent | c9d1f1d6a6d0a3e5937e8154566d11cc86a2311f (diff) | |
download | haskell-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.c | 2 | ||||
-rw-r--r-- | rts/RtsFlags.c | 1 |
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 |