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/

Summary:
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.

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

Thanks,

JohnC



More information about the hotspot-gc-dev mailing list