summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Marlow <simonmarhaskell@gmail.com>2008-04-16 23:30:58 +0000
committerSimon Marlow <simonmarhaskell@gmail.com>2008-04-16 23:30:58 +0000
commit30387408c5e471e8f8ff61f80754ad2c07880a7d (patch)
tree2281b10589163dc77376d894a798d3916edffd30
parent0b43af1b2523a7938fc8aacedb23948e3aa1b7b5 (diff)
downloadhaskell-30387408c5e471e8f8ff61f80754ad2c07880a7d.tar.gz
add debugging code to check for fragmentation
-rw-r--r--rts/sm/BlockAlloc.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/rts/sm/BlockAlloc.c b/rts/sm/BlockAlloc.c
index 5bcce7bf4f..98afdd4caf 100644
--- a/rts/sm/BlockAlloc.c
+++ b/rts/sm/BlockAlloc.c
@@ -331,6 +331,14 @@ allocGroup (nat n)
}
if (ln == MAX_FREE_LIST) {
+#if 0
+ if ((mblocks_allocated * MBLOCK_SIZE_W - n_alloc_blocks * BLOCK_SIZE_W) > (1024*1024)/sizeof(W_)) {
+ debugBelch("Fragmentation, wanted %d blocks:", n);
+ RtsFlags.DebugFlags.block_alloc = 1;
+ checkFreeListSanity();
+ }
+#endif
+
bd = alloc_mega_group(1);
bd->blocks = n;
initGroup(n,bd); // we know the group will fit