RFR: JDK-8148759: G1AllocRegion::_count inconsistently used if more than one context is active

Bengt Rutisson bengt.rutisson at oracle.com
Fri Mar 18 06:56:06 UTC 2016


On 2016-03-17 18:47, Jesper Wilhelmsson wrote:
> Looks good!

Thanks, Jesper!

Bengt

> /Jesper
>
> Den 17/3/16 kl. 18:04, skrev Bengt Rutisson:
>>
>> Hi everyone,
>>
>> Could I have a couple of reviews for this change?
>>
>> http://cr.openjdk.java.net/~brutisso/8148759/webrev.00
>> https://bugs.openjdk.java.net/browse/JDK-8148759
>>
>> The _count value is per G1GCAllocRegion, so if we have more than one 
>> survivor
>> alloc region we will notice too late that we have exceeded the 
>> maximum number of
>> regions we had decided to use for survivors.
>>
>> The proposed patch uses young_list()->survivor_length() instead, 
>> which is a
>> "global" value for all alloc regions. This value used to be updated 
>> when we
>> retired a region, but to make proper use of it it needs to be updated 
>> when we
>> pick a new survivor region. Thus, I had to move the call to
>> young_list()->add_survivor_region(). I've gone through and checked 
>> other users
>> of the values updated by add_survivor_region() and I haven't found 
>> anyone that
>> is using this value inside of the actual evacuation path, which is 
>> where the
>> difference would be noticeable.
>>
>> Thanks,
>> Bengt




More information about the hotspot-gc-dev mailing list