RFR(S): 7092412: G1: Some roots not marked during an initial mark that gets an evacuation failure

John Cuthbertson john.cuthbertson at oracle.com
Mon Sep 19 20:08:53 UTC 2011


Hi Everyone,

Can I have a couple of reviews of the fix for this CR? The webrev can be 
found at: http://cr.openjdk.java.net/~johnc/7092412/webrev.0/

Summary: As a result of the changes for 7080389, some of the roots may 
not be marked during the initial mark pause in the event of an 
evacuation failure. If the closure that successfully forwards an object 
to itself is a root scanning closure and there are no other paths to the 
object referenced from the root location then the object may not be 
marked. This problem was discovered as a result of enabling marking 
verification while investigating another CR (7086533). The fix is to 
pass a flag into the evacuation failure code as to whether the caller is 
a root scanning closure and, if that is the case, the thread that 
successfully forwards an object to itself is then responsible for 
marking that object.

Testing: selected test cases for 7086533 with +VerifyDuringGC; the GC 
test suite with a high marking threshold and +VerifyDuringGC

Thanks,

JohnC



More information about the hotspot-gc-dev mailing list