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

Stefan Johansson stefan.johansson at oracle.com
Fri Sep 21 07:33:55 UTC 2018

On 2018-09-20 22:51, Kim Barrett wrote:
>> On Sep 20, 2018, at 10:31 AM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:
>> 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
> Looks good.
Looks good to me too.

More information about the hotspot-gc-dev mailing list