RFR: Epsilon GC
Stefan Karlsson
stefan.karlsson at oracle.com
Fri Apr 27 14:18:06 UTC 2018
Hi Aleksey,
On 2018-04-26 19:37, Aleksey Shipilev wrote:
> Hi,
>
> This is the review thread for Epsilon GC changes.
>
> JEP, targeted to 11:
> http://openjdk.java.net/jeps/318
> (you can find links to binary builds and sandbox locations there)
>
> Webrev:
> http://cr.openjdk.java.net/~shade/epsilon/webrev.05/
>
> Notes:
>
> *) See how the whole things is _almost_ drop-in to hotspot/share/gc, without having arch-specific
> mess -- thanks to GC interface work done over last years;
I'm glad to see that we've come so far, and that this gets so well
contained in the GC directory.
>
> *) There are some leftovers due to GC barriers work in progress: templateTable_arm.cpp addition
> goes away after JDK-8201786 [1], c1_LIRGenerator.cpp change should go away after C1 barriers
> modularization is complete, graphKit.cpp change should go away after C2 barriers modularization is
> complete;
>
> *) Half of the webrev are Epsilon-specific tests. They take ~30s in release and ~60s in fastdebug
> on my desktop. They are not in tier1, so smoke testing time is not affected;
>
> *) UseEpsilonGC is experimental. This should be fine after conditional GC compilation [2], so
> vendors who are unwilling to extend whatever small notion [3] of support comes with experimental VM
> option, may choose not to build it.
I spent the day cleaning up and testing the patches for [2], and will
send out an RFR on Wednesday (when I'm back to the office). In the mean
time, I'm dropping the patches here so that you can take a look and
hopefully adopt your patch. It should be almost trivial to add the
appropriate INCLUDE_EPSILONGC and EPSILONGC_ONLY macros.
The squashed patch queue for [2]:
http://cr.openjdk.java.net/~stefank/8200729/prototype/webrev.03/all/
Preparation patch to get rid of some unneeded INCLUDE_ALL_GCS:
http://cr.openjdk.java.net/~stefank/8200729/prototype/webrev.03/00.removeUnneededIncludeAllGCs/
Fix some includes required when GCs are conditionally compiled out:
http://cr.openjdk.java.net/~stefank/8200729/prototype/webrev.03/01.fixIncludes/
This is the main patch that adds (and uses) INCLUDE_CMSGC, INCLUDE_G1GC,
INCLUDE_PARALLELGC, and INCLUDE_SERIALGC:
http://cr.openjdk.java.net/~stefank/8200729/prototype/webrev.03/02.mainPatch/
This is the patch to add the possibility to turn on and off the
different gc when configuring the build (partly contributed by Ihse):
http://cr.openjdk.java.net/~stefank/8200729/prototype/webrev.03/03.selectIndivudualGCsMakePatch/
Thanks,
StefanK
>
> Testing: all platform builds, gc/epsilon on x86_64
>
> Thanks,
> -Aleksey
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8201786
> [2] https://bugs.openjdk.java.net/browse/JDK-8200729
> [3] http://hg.openjdk.java.net/jdk/jdk/file/3661f31c6df4/src/hotspot/share/runtime/globals.hpp#l150
>
More information about the hotspot-gc-dev
mailing list