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