From: Simon Marlow Date: Fri, 18 Sep 2009 13:44:38 +0000 (+0000) Subject: Fix the nursery size calculation when -N is used with -H X-Git-Tag: 2009-11-15~300 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=1e06c8d372a465f84311020260a73d4578a9651e;p=ghc-hetmet.git Fix the nursery size calculation when -N is used with -H --- diff --git a/rts/sm/GC.c b/rts/sm/GC.c index 97acc38..97f391c 100644 --- a/rts/sm/GC.c +++ b/rts/sm/GC.c @@ -1623,6 +1623,8 @@ resize_generations (void) static void resize_nursery (void) { + lnat min_nursery = RtsFlags.GcFlags.minAllocAreaSize * n_capabilities; + if (RtsFlags.GcFlags.generations == 1) { // Two-space collector: nat blocks; @@ -1665,9 +1667,9 @@ resize_nursery (void) else { blocks *= RtsFlags.GcFlags.oldGenFactor; - if (blocks < RtsFlags.GcFlags.minAllocAreaSize) + if (blocks < min_nursery) { - blocks = RtsFlags.GcFlags.minAllocAreaSize; + blocks = min_nursery; } } resizeNurseries(blocks); @@ -1714,8 +1716,8 @@ resize_nursery (void) (((long)RtsFlags.GcFlags.heapSizeSuggestion - (long)needed) * 100) / (100 + (long)g0s0_pcnt_kept); - if (blocks < (long)RtsFlags.GcFlags.minAllocAreaSize) { - blocks = RtsFlags.GcFlags.minAllocAreaSize; + if (blocks < (long)min_nursery) { + blocks = min_nursery; } resizeNurseries((nat)blocks);