diff options
author | Mikolaj <mikolaj.konarski@gmail.com> | 2012-03-09 20:51:30 +0100 |
---|---|---|
committer | Duncan Coutts <duncan@well-typed.com> | 2012-04-04 19:10:45 +0100 |
commit | c294d95dc04950ab4c5380bf6ce8651f621f8591 (patch) | |
tree | f7af5643c634205fa9fc390c0dd4db7558b7f7e2 /rts/Trace.c | |
parent | 598109eb0cc2271c33e23b4ddb12123991273f61 (diff) | |
download | haskell-c294d95dc04950ab4c5380bf6ce8651f621f8591.tar.gz |
Add the GC_GLOBAL_SYNC event marking that all caps are stopped for GC
Quoting design rationale by dcoutts: The event indicates that we're doing
a stop-the-world GC and all other HECs should be between their GC_START
and GC_END events at that moment. We don't want to use GC_STATS_GHC
for that, because GC_STATS_GHC is for extra GHC-specific info,
not something we have to rely on to be able to match the GC pauses
across HECs to a particular global GC.
Diffstat (limited to 'rts/Trace.c')
-rw-r--r-- | rts/Trace.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/rts/Trace.c b/rts/Trace.c index 995f8a2200..089bf24423 100644 --- a/rts/Trace.c +++ b/rts/Trace.c @@ -282,6 +282,9 @@ static void traceGcEvent_stderr (Capability *cap, EventTypeNum tag) case EVENT_GC_DONE: // (cap) debugBelch("cap %d: GC done\n", cap->no); break; + case EVENT_GC_GLOBAL_SYNC: // (cap) + debugBelch("cap %d: all caps stopped for GC\n", cap->no); + break; default: barf("traceGcEvent: unknown event tag %d", tag); break; |