RFR(S): 7121496: G1: do the per-region evacuation failure handling work in parallel

John Cuthbertson john.cuthbertson at oracle.com
Fri Dec 23 19:29:44 UTC 2011

Hi Everyone,

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 mailing list