summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-07-31 21:05:11 -0400
committerBen Gamari <ben@smart-cactus.org>2019-10-22 18:57:27 -0400
commit91109404b7acbb9cbec496e519a4fac3f51e4f22 (patch)
tree3b917eb7ab28756210eb473b2ecd6e441fa99646
parent7c35d39bc4689b56b6b361111255882ab1460141 (diff)
downloadhaskell-91109404b7acbb9cbec496e519a4fac3f51e4f22.tar.gz
nonmoving: Trace GC preparation steps
-rw-r--r--rts/sm/NonMoving.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/rts/sm/NonMoving.c b/rts/sm/NonMoving.c
index 9a6db9bd19..518b06bd19 100644
--- a/rts/sm/NonMoving.c
+++ b/rts/sm/NonMoving.c
@@ -819,6 +819,7 @@ void nonmovingCollect(StgWeak **dead_weaks, StgTSO **resurrected_threads)
}
#endif
+ trace(TRACE_nonmoving_gc, "Starting nonmoving GC preparation");
resizeGenerations();
nonmovingPrepareMark();
@@ -834,6 +835,7 @@ void nonmovingCollect(StgWeak **dead_weaks, StgTSO **resurrected_threads)
current_mark_queue = mark_queue;
// Mark roots
+ trace(TRACE_nonmoving_gc, "Marking roots for nonmoving GC");
markCAFs((evac_fn)markQueueAddRoot, mark_queue);
for (unsigned int n = 0; n < n_capabilities; ++n) {
markCapability((evac_fn)markQueueAddRoot, mark_queue,
@@ -847,6 +849,7 @@ void nonmovingCollect(StgWeak **dead_weaks, StgTSO **resurrected_threads)
for (StgTSO *tso = *resurrected_threads; tso != END_TSO_QUEUE; tso = tso->global_link) {
markQueuePushClosure_(mark_queue, (StgClosure*)tso);
}
+ trace(TRACE_nonmoving_gc, "Finished marking roots for nonmoving GC");
// Roots marked, mark threads and weak pointers
@@ -869,6 +872,7 @@ void nonmovingCollect(StgWeak **dead_weaks, StgTSO **resurrected_threads)
ASSERT(nonmoving_old_weak_ptr_list == NULL);
nonmoving_old_weak_ptr_list = oldest_gen->weak_ptr_list;
oldest_gen->weak_ptr_list = NULL;
+ trace(TRACE_nonmoving_gc, "Finished nonmoving GC preparation");
// We are now safe to start concurrent marking