Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/cc65b3682b688fb510e6458b4e4c4504430393db >--------------------------------------------------------------- commit cc65b3682b688fb510e6458b4e4c4504430393db Author: Simon Marlow <[email protected]> Date: Mon Nov 1 12:41:43 2010 +0000 count "dud" sparks (expressions that were already evaluated when sparked) >--------------------------------------------------------------- rts/Capability.c | 1 + rts/Capability.h | 1 + rts/Sparks.c | 5 +++-- rts/Stats.c | 6 ++++-- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/rts/Capability.c b/rts/Capability.c index 345bd39..9f7d152 100644 --- a/rts/Capability.c +++ b/rts/Capability.c @@ -225,6 +225,7 @@ initCapability( Capability *cap, nat i ) cap->returning_tasks_tl = NULL; cap->inbox = (Message*)END_TSO_QUEUE; cap->sparks_created = 0; + cap->sparks_dud = 0; cap->sparks_converted = 0; cap->sparks_pruned = 0; #endif diff --git a/rts/Capability.h b/rts/Capability.h index a15ce15..e50dba3 100644 --- a/rts/Capability.h +++ b/rts/Capability.h @@ -99,6 +99,7 @@ struct Capability_ { // Stats on spark creation/conversion nat sparks_created; + nat sparks_dud; nat sparks_converted; nat sparks_pruned; #endif diff --git a/rts/Sparks.c b/rts/Sparks.c index 7e2556d..2498cb3 100644 --- a/rts/Sparks.c +++ b/rts/Sparks.c @@ -71,10 +71,11 @@ newSpark (StgRegTable *reg, StgClosure *p) if (closure_SHOULD_SPARK(p)) { pushWSDeque(pool,p); + cap->sparks_created++; + } else { + cap->sparks_dud++; } - cap->sparks_created++; - return 1; } diff --git a/rts/Stats.c b/rts/Stats.c index e519c94..a507147 100644 --- a/rts/Stats.c +++ b/rts/Stats.c @@ -636,16 +636,18 @@ stat_exit(int alloc) { nat i; lnat sparks_created = 0; + lnat sparks_dud = 0; lnat sparks_converted = 0; lnat sparks_pruned = 0; for (i = 0; i < n_capabilities; i++) { sparks_created += capabilities[i].sparks_created; + sparks_dud += capabilities[i].sparks_dud; sparks_converted += capabilities[i].sparks_converted; sparks_pruned += capabilities[i].sparks_pruned; } - statsPrintf(" SPARKS: %ld (%ld converted, %ld pruned)\n\n", - sparks_created, sparks_converted, sparks_pruned); + statsPrintf(" SPARKS: %ld (%ld converted, %ld dud, %ld pruned)\n\n", + sparks_created + sparks_dud, sparks_converted, sparks_dud, sparks_pruned); } #endif _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
