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

Bengt Rutisson bengt.rutisson at oracle.com
Thu Mar 17 17:04:23 UTC 2016


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