RFR (S): 8210557: G1 next bitmap verification at the end of concurrent mark sometimes fails

Thomas Schatzl thomas.schatzl at oracle.com
Thu Sep 20 14:31:58 UTC 2018


Hi,

  can I have reviews for this smal change that removes an unnecessary
and actually superfluous assert that can sometimes fail?

So if G1 concurrent mark gets aborted by a full gc, it intends to check
whether the next mark bitmap for the next concurrent cycle is
completely cleared.

Unfortunately, G1 full gc uses the next bitmap for its own marking, so
depending on when this thread gets scheduled, it may errorneously
detect that the next mark bitmap contains marks (well, from the first
phase of full gc :)).

This bitmap-clear check is actually unnecessary: at the end of full gc
the next bitmap is already checked for being completely empty (in
G1CollectedHeap:1086).

So instead of trying to change scheduling of that verification (to e.g.
run outside GC), I opted to remove this verification (and associated
code) completely.

CR:
https://bugs.openjdk.java.net/browse/JDK-8210557
Webrev:
http://cr.openjdk.java.net/~tschatzl/8210557/webrev/
Testing:
passing hs-tier1-5,jdk-tier1-3 with -XX:+G1VerifyBitmaps; however since
this is just removal of verification code there is extremely low risk
of introducing a bug. :)

Thanks,
  Thomas





More information about the hotspot-gc-dev mailing list