diff options
Diffstat (limited to 'rts/sm/GC.c')
-rw-r--r-- | rts/sm/GC.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/rts/sm/GC.c b/rts/sm/GC.c index b78f993260..5e986f2296 100644 --- a/rts/sm/GC.c +++ b/rts/sm/GC.c @@ -270,7 +270,7 @@ GarbageCollect (uint32_t collect_gen, generation *gen; StgWord live_blocks, live_words, par_max_copied, par_balanced_copied, gc_spin_spin, gc_spin_yield, mut_spin_spin, mut_spin_yield, - any_work, scav_find_work; + any_work, scav_find_work, max_n_todo_overflow; #if defined(THREADED_RTS) gc_thread *saved_gct; #endif @@ -594,6 +594,7 @@ GarbageCollect (uint32_t collect_gen, mut_spin_yield = 0; any_work = 0; scav_find_work = 0; + max_n_todo_overflow = 0; { uint32_t i; uint64_t par_balanced_copied_acc = 0; @@ -625,6 +626,7 @@ GarbageCollect (uint32_t collect_gen, any_work += RELAXED_LOAD(&thread->any_work); scav_find_work += RELAXED_LOAD(&thread->scav_find_work); + max_n_todo_overflow = stg_max(RELAXED_LOAD(&thread->max_n_todo_overflow), max_n_todo_overflow); par_max_copied = stg_max(RELAXED_LOAD(&thread->copied), par_max_copied); par_balanced_copied_acc += @@ -1043,7 +1045,7 @@ GarbageCollect (uint32_t collect_gen, N, n_gc_threads, gc_threads, par_max_copied, par_balanced_copied, gc_spin_spin, gc_spin_yield, mut_spin_spin, mut_spin_yield, - any_work, scav_find_work); + any_work, scav_find_work, max_n_todo_overflow); #if defined(RTS_USER_SIGNALS) if (RtsFlags.MiscFlags.install_signal_handlers) { @@ -1803,6 +1805,7 @@ init_gc_thread (gc_thread *t) t->scanned = 0; t->any_work = 0; t->scav_find_work = 0; + t->max_n_todo_overflow = 0; } /* ----------------------------------------------------------------------------- |