RFR (M) JDK-8025305 Cleanup CardTableModRefBS usage in G1

Mikael Gerdin mikael.gerdin at oracle.com
Tue Sep 24 06:57:27 PDT 2013

Hi all!

In preparation for fixing 8014555 (the bug discussed in the "G1 
question: concurrent cleaning of dirty cards" thread) I'd like to clean 
up the CardTableModRefBS-code slightly.

Summary of change:
* Move some g1 specific functions from CardTableModRefBS to the G1 
specific variant. I did not change the numeric CardValues. I'm afraid to 
change the last_reserved value since other GCs seem to depend on which 
bits are available below it.
* Change the setup code for G1 to make sure that the BarrierSet is of 
the one G1 actually requires.
* Remove the ModRefBarrierSet* from G1CollectedHeap (it's always the 
same as CollectedHeap::_barrier_set)
* Add an accessor which performs a down-cast of 
CollectedHeap::_barrier_set to G1SATBCardTableModRefBS.
* Modify G1 code which uses the *claimed or *deferred card values to use 
the type G1SATBCardTableModRefBS.
* Remove the unused function CardTableModRefBS::claim_card (last usage 
was removed in "6923991: G1: improve scalability of RSet scanning" (rev 

Webrev: http://cr.openjdk.java.net/~mgerdin/8025305/webrev.0/
Bug link: https://bugs.openjdk.java.net/browse/JDK-8025305


More information about the hotspot-gc-dev mailing list