Add RTS flag to disable 1TB address space allocation
GHC 8.0 changed the default behaviour on Linux to allocate 1 TB virtual memory for Haskell programs (#9706 (closed)).
While shown to be good for performance (a small percentage gain), it has created me a couple problems, especially when:
- trying to disable overcommit in Linux to get more reliable memory behaviour and avoid swapping / the OOM-killer (all Haskell programs crash at startup)
- and in debugging (e.g. #14192 (closed))
Currently you can turn that feature off only via a compile-time switch, e.g. ./configure --disable-large-address-space
.
I'd like to request to make it possible to turn this behaviour off at run-time with an RTS flag, so that when the flag is given, it uses the old block-allocator.
Trac metadata
Trac field | Value |
---|---|
Version | 8.0.2 |
Type | FeatureRequest |
TypeOfFailure | OtherFailure |
Priority | normal |
Resolution | Unresolved |
Component | Compiler |
Test case | |
Differential revisions | |
BlockedBy | |
Related | |
Blocking | |
CC | ezyang, gcampax, nh2, simonmar |
Operating system | |
Architecture |