RFR(S): 7121496: G1: do the per-region evacuation failure handling work in parallel
john.cuthbertson at oracle.com
Fri Dec 23 19:29:44 UTC 2011
Can I have a couple of volunteers look of this set of changes? The
webrev can be found at: http://cr.openjdk.java.net/~johnc/7121496/webrev.0/
The work that gets done for each heap region in the collection set, in
the event of an evacuation failure, (e.g. removing self-forwarding
pointers, updating the BOT etc.) was serial. I parallelized it by simply
wrapping the work done for each region inside a HeapRegion closure,
whose doHeapRegion method claims a region and does the work for that
region. This HeapRegion closure is, in turn, wrapped in an AbstractGangTask.
Testing: GC test suite with both deferred and immediate RSet updates (in
some of the configurations - SPECjbb2000, SPECjbb2005, and GCBasher can
experience a number of evacuation failures); Kitchensink with a forced
evacuation failure mechanism.
More information about the hotspot-gc-dev