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
Hi,
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
Summary
-------
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.
Testing
-------
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.
Thanks,
Stefan
More information about the hotspot-gc-dev
mailing list