RFR(M): 7182260: G1: Fine grain RSet freeing bottleneck

John Cuthbertson john.cuthbertson at oracle.com
Fri Jul 6 22:43:32 UTC 2012

Hi Everyone,

Can I have a couple of volunteers top review this change which was 
contributed by Thomas Schatzl at Johannes Kepler University at Linz? The 
webrev can be found at: http://cr.openjdk.java.net/~johnc/7182260/webrev.0/

While running some experiments with OpenDS, Thomas noticed that  RSet 
freeing was a significant contributor to freeing the collection set 
after a GC pause. The main culprit was freeing the PerRegionTables that 
are the entries in the fine grain table - and placing them on a global 
free list. Thomas' change is to chain the PerRegionTables in an 
individual RSet together (using a doubly linked list and utilizing the 
same link field as the free list) so that the fine grain entries could 
be added to the free list in a single operation. In order to preserve 
the integrity of the value of the PerRegionTable::_next field, he added 
a new field for walking the collision chains.

I've already reviewed the changes and after tweaking some of the 
formatting and comments, they look OK to me.

Thomas' testing with OpenDS and my testing with GC test suite, 
Kitchensink, NSK (jit, gc, regression, and runtime), and jprt.



More information about the hotspot-gc-dev mailing list