Mercurial > hg > truffle
diff src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp @ 3777:e8b0b0392037
7046182: G1: remove unnecessary iterations over the collection set
Summary: Remove two unnecessary iterations over the collection set which are supposed to prepare the RSet's of the CSet regions for parallel iterations (we'll make sure this is done incrementally). I'll piggyback on this CR the removal of the G1_REM_SET_LOGGING code.
Reviewed-by: brutisso, johnc
author | tonyp |
---|---|
date | Tue, 21 Jun 2011 15:23:07 -0400 |
parents | 97ba643ea3ed |
children | 65a8ff39a6da |
line wrap: on
line diff
--- a/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp Mon Jun 20 22:03:13 2011 -0400 +++ b/src/share/vm/gc_implementation/g1/heapRegionRemSet.hpp Tue Jun 21 15:23:07 2011 -0400 @@ -262,8 +262,6 @@ virtual void cleanup() = 0; #endif - // Should be called from single-threaded code. - void init_for_par_iteration(); // Attempt to claim the region. Returns true iff this call caused an // atomic transition from Unclaimed to Claimed. bool claim_iter(); @@ -273,7 +271,6 @@ bool iter_is_complete(); // Support for claiming blocks of cards during iteration - void set_iter_claimed(size_t x) { _iter_claimed = (jlong)x; } size_t iter_claimed() const { return (size_t)_iter_claimed; } // Claim the next block of cards size_t iter_claimed_next(size_t step) { @@ -284,6 +281,11 @@ } while (Atomic::cmpxchg((jlong)next, &_iter_claimed, (jlong)current) != (jlong)current); return current; } + void reset_for_par_iteration(); + + bool verify_ready_for_par_iteration() { + return (_iter_state == Unclaimed) && (_iter_claimed == 0); + } // Initialize the given iterator to iterate over this rem set. void init_iterator(HeapRegionRemSetIterator* iter) const;