summaryrefslogtreecommitdiff
path: root/includes
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2011-02-02 15:49:55 +0000
committerSimon Marlow <marlowsd@gmail.com>2011-02-02 15:49:55 +0000
commit18896fa2b06844407fd1e0d3f85cd3db97a96ff4 (patch)
treeecea68990c0891e25a21bf25a26435e70e8e42fa /includes
parent8d809e0a8354e00078529eecb00db843c1602abe (diff)
downloadhaskell-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.h5
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