From cc65b3682b688fb510e6458b4e4c4504430393db Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Mon, 1 Nov 2010 12:41:43 +0000 Subject: [PATCH] count "dud" sparks (expressions that were already evaluated when sparked) --- rts/Capability.c | 1 + rts/Capability.h | 1 + rts/Sparks.c | 7 ++++--- rts/Stats.c | 6 ++++-- 4 files changed, 10 insertions(+), 5 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,9 +71,10 @@ newSpark (StgRegTable *reg, StgClosure *p) if (closure_SHOULD_SPARK(p)) { pushWSDeque(pool,p); - } - - cap->sparks_created++; + cap->sparks_created++; + } else { + cap->sparks_dud++; + } 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 -- 1.7.10.4