diff options
author | Simon Marlow <marlowsd@gmail.com> | 2011-02-02 15:49:55 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2011-02-02 15:49:55 +0000 |
commit | 18896fa2b06844407fd1e0d3f85cd3db97a96ff4 (patch) | |
tree | ecea68990c0891e25a21bf25a26435e70e8e42fa /includes | |
parent | 8d809e0a8354e00078529eecb00db843c1602abe (diff) | |
download | haskell-18896fa2b06844407fd1e0d3f85cd3db97a96ff4.tar.gz |
GC refactoring and cleanup
Now we keep any partially-full blocks in the gc_thread[] structs after
each GC, rather than moving them to the generation. This should give
us slightly better locality (though I wasn't able to measure any
difference).
Also in this patch: better sanity checking with THREADED.
Diffstat (limited to 'includes')
-rw-r--r-- | includes/rts/storage/GC.h | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/includes/rts/storage/GC.h b/includes/rts/storage/GC.h index 7cee670303..bbed2165a2 100644 --- a/includes/rts/storage/GC.h +++ b/includes/rts/storage/GC.h @@ -87,7 +87,7 @@ typedef struct generation_ { #if defined(THREADED_RTS) char pad[128]; // make sure the following is // on a separate cache line. - SpinLock sync_large_objects; // lock for large_objects + SpinLock sync; // lock for large_objects // and scavenged_large_objects #endif @@ -101,9 +101,6 @@ typedef struct generation_ { unsigned int n_old_blocks; // number of blocks in from-space unsigned int live_estimate; // for sweeping: estimate of live data - 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 |