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

Thomas Schatzl thomas.schatzl at oracle.com
Tue Apr 12 12:49:54 UTC 2016

Hi Mikael,

On Tue, 2016-04-12 at 14:33 +0200, 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
> Testing: RBT GC testing in progress, local testing of reproducer

  looks good to me.


More information about the hotspot-gc-dev mailing list