RFR(M): 7182260: G1: Fine grain RSet freeing bottleneck
john.cuthbertson at oracle.com
Fri Jul 6 22:43:32 UTC 2012
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