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.
Stefan



More information about the hotspot-gc-dev mailing list