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