RFR(XS) 8153834: G1 Card table verification fails due to concurrent region cleanup

Mikael Gerdin mikael.gerdin at oracle.com
Tue Apr 12 12:33:32 UTC 2016

Hi all,

Please review this small fix to an issue with -XX:+G1VerifyCTCleanup we 
discovered recently.
The problem is that concurrent region freeing 
(G1ConcurrentMark::complete_cleanup()) can run concurrently with a young 
gc after the cleanup pause. If the concurrent cleanup is not finished 
when the young gc verifies the card table then the verification can see 
0s in the card table where there should be none.

Suggested fix is to have not-PRODUCT vms await concurrent region freeing 
before verifying the card table by calling wait_while_free_regions_coming()

Bug: https://bugs.openjdk.java.net/browse/JDK-8153834
Webrev: http://cr.openjdk.java.net/~mgerdin/8153834/webrev.0
Testing: RBT GC testing in progress, local testing of reproducer


More information about the hotspot-gc-dev mailing list