RFR: (S): 8142935: Adding old gen regions does not consider available free space

Derek White derek.white at oracle.com
Fri Mar 18 22:22:29 UTC 2016


On 3/18/16 4:04 PM, Tom Benson wrote:
> Hi,
> Please review this G1 change to consider available space before adding 
> old gen regions for mixed GCs.  The live_bytes per region are 
> accumulated as the cset is built and checked before adding old 
> regions.  The 'safety_factor' computation previously used only for 
> young regions is split out to be shared.
>
> JBS: https://bugs.openjdk.java.net/browse/JDK-8142935 
> <https://bugs.openjdk.java.net/browse/JDK-8142935>
> Webrev: http://cr.openjdk.java.net/~tbenson/8142935 
> <https://bugs.openjdk.java.net/browse/JDK-8142935>/webrev/
> Testing: JPRT and hotspot and gc tests.  A targeted test that showed 
> evacuation failures due to too many old regions in the cset no longer 
> gets them. Some SPECjvm tests with stressful heap/thread settings 
> showed better behavior as well.  Normal Perf testing showed no 
> significant difference.
>
> Thanks,
> Tom
Hi Tom,

My main question is that it looks like the accounting:

    _inc_bytes_used_before
    _inc_bytes_live_before
    _bytes_used_before
    _bytes_lived_before

are a summary of the bytes used and live in the young regions.

In the new test in G1CollectionSet::finalize_old_part(), I don't see 
that it's accounting for the live bytes of the old regions it already 
added to the cset. For example if the young regions had no live data, 
then we might still add too many old regions to the cset?

The rest of it looks good.

  - Derek
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/hotspot-gc-dev/attachments/20160318/bca79f9d/attachment.htm>


More information about the hotspot-gc-dev mailing list