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