summaryrefslogtreecommitdiff
path: root/rts/Sparks.c
diff options
context:
space:
mode:
authorGiovanni Campagna <gcampagn@cs.stanford.edu>2015-07-17 11:55:49 +0100
committerSimon Marlow <marlowsd@gmail.com>2015-07-22 17:50:02 +0100
commit0d1a8d09f452977aadef7897aa12a8d41c7a4af0 (patch)
tree3e8404c7f37c77b67ca913521e6890d6491f4721 /rts/Sparks.c
parentb949c96b4960168a3b399fe14485b24a2167b982 (diff)
downloadhaskell-0d1a8d09f452977aadef7897aa12a8d41c7a4af0.tar.gz
Two step allocator for 64-bit systems
Summary: The current OS memory allocator conflates the concepts of allocating address space and allocating memory, which makes the HEAP_ALLOCED() implementation excessively complicated (as the only thing it cares about is address space layout) and slow. Instead, what we want is to allocate a single insanely large contiguous block of address space (to make HEAP_ALLOCED() checks fast), and then commit subportions of that in 1MB blocks as we did before. This is currently behind a flag, USE_LARGE_ADDRESS_SPACE, that is only enabled for certain OSes. Test Plan: validate Reviewers: simonmar, ezyang, austin Subscribers: thomie, carter Differential Revision: https://phabricator.haskell.org/D524 GHC Trac Issues: #9706
Diffstat (limited to 'rts/Sparks.c')
-rw-r--r--rts/Sparks.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/rts/Sparks.c b/rts/Sparks.c
index ada2adfd3a..ec075805bf 100644
--- a/rts/Sparks.c
+++ b/rts/Sparks.c
@@ -14,6 +14,7 @@
#include "Trace.h"
#include "Prelude.h"
#include "Sparks.h"
+#include "sm/HeapAlloc.h"
#if defined(THREADED_RTS)