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

Erik Helin erik.helin at oracle.com
Tue Apr 12 12:56:44 UTC 2016

On 2016-04-12, Mikael Gerdin wrote:
> 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

Looks good to me, Reviewed.


> Testing: RBT GC testing in progress, local testing of reproducer
> /Mikael

More information about the hotspot-gc-dev mailing list