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

Bengt Rutisson bengt.rutisson at oracle.com
Fri Mar 18 09:49:49 UTC 2016



On 2016-03-18 10:39, Stefan Johansson wrote:
> Looks good,
>
> Thanks for fixing this,

Thanks for the review, Stefan!

Bengt

> Stefan
>
> On 2016-03-17 18:04, Bengt Rutisson wrote:
>>
>> 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