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