Commit 02038ff3 authored by simonmar@microsoft.com's avatar simonmar@microsoft.com
Browse files

count the number of todo blocks, and add a trace

parent 8425e6e5
...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
#include "GC.h" #include "GC.h"
#include "GCUtils.h" #include "GCUtils.h"
#include "Printer.h" #include "Printer.h"
#include "Trace.h"
#ifdef THREADED_RTS #ifdef THREADED_RTS
SpinLock gc_alloc_block_sync; SpinLock gc_alloc_block_sync;
...@@ -57,6 +58,7 @@ grab_todo_block (step_workspace *ws) ...@@ -57,6 +58,7 @@ grab_todo_block (step_workspace *ws)
if (stp->todos) { if (stp->todos) {
bd = stp->todos; bd = stp->todos;
stp->todos = bd->link; stp->todos = bd->link;
stp->n_todos--;
bd->link = NULL; bd->link = NULL;
} }
RELEASE_SPIN_LOCK(&stp->sync_todo); RELEASE_SPIN_LOCK(&stp->sync_todo);
...@@ -70,6 +72,8 @@ push_todo_block (bdescr *bd, step *stp) ...@@ -70,6 +72,8 @@ push_todo_block (bdescr *bd, step *stp)
ACQUIRE_SPIN_LOCK(&stp->sync_todo); ACQUIRE_SPIN_LOCK(&stp->sync_todo);
bd->link = stp->todos; bd->link = stp->todos;
stp->todos = bd; stp->todos = bd;
stp->n_todos++;
trace(TRACE_gc, "step %d, n_todos: %d", stp->abs_no, stp->n_todos);
RELEASE_SPIN_LOCK(&stp->sync_todo); RELEASE_SPIN_LOCK(&stp->sync_todo);
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment