RFR: 8213890: Implementation of JEP 344: Abortable Mixed Collections for G1

Stefan Johansson stefan.johansson at oracle.com
Wed Nov 14 15:57:00 UTC 2018


Please review this patch for "JEP 344: Abortable Mixed Collections for 
G1", the JEP is not yet targeted but the goal is to get it into JDK 12.

JEP: https://bugs.openjdk.java.net/browse/JDK-8190269
Issue: https://bugs.openjdk.java.net/browse/JDK-8213890
Webrev: http://cr.openjdk.java.net/~sjohanss/8213890/00

When G1 has performed a concurrent cycle old regions are reclaimed in 
Mixed collections. Before this change the number of old regions in a 
Mixed collection was chosen in the beginning of the pause and could not 
be altered later on. With abortable mixed collection we can add a set of 
optional regions that can be collected if there is time left without 
breaking the pause target.

Having optional regions come with a small overhead and the current 
implementation is pretty restrictive and aims at changing the default 
behavior of G1 as little as possible. That means that the some old 
regions will still be added to the normal collection set and will not be 
optional, this also ensures that the Mixed collections actually reclaims 
a number of old regions and that way avoids Full collections.

More information can be found in the JEP itself.

A lot of local and remote functional testing and performance testing has 
been done. The performance testing has aimed at ensuring that there is 
no regression in normal collections and that the impact to Mixed 
collections when optional regions are not used is as small as possible.

There has also been extra testing made where additional code was added 
to force optional regions to be chosen much more eagerly. This way the 
new optional region code has been exercised more and been better tested.


More information about the hotspot-gc-dev mailing list