Allow work units smaller than a block to improve load balancing
[ghc-hetmet.git] / includes / Storage.h
index c51f51b..3fcdfeb 100644 (file)
@@ -88,8 +88,12 @@ typedef struct step_ {
     unsigned int n_old_blocks;         // number of blocks in from-space
     
     bdescr *     todos;                        // blocks waiting to be scavenged
+    bdescr *     todos_last;
     unsigned int n_todos;               // count of above
 
+    bdescr *     part_blocks;           // partially-full scanned blocks
+    unsigned int n_part_blocks;         // count of above
+
     bdescr *     scavenged_large_objects;  // live large objs after GC (d-link)
     unsigned int n_scavenged_large_blocks; // size (not count) of above
 
@@ -120,7 +124,7 @@ extern generation * RTS_VAR(g0);
 extern step * RTS_VAR(g0s0);
 extern generation * RTS_VAR(oldest_gen);
 extern step * RTS_VAR(all_steps);
-extern nat total_steps;
+extern nat RTS_VAR(total_steps);
 
 /* -----------------------------------------------------------------------------
    Initialisation / De-initialisation