1) Only the Serial GC - used by the Minimal VM
2) All GCs - today this means Serial, Parallel, CMS, G1
As we are developing new GCs (ZGC and Shenandoah), and deprecating old GCs (CMS), it might be useful to select the GCs to compile into a build of HotSpot.
The RFE proposes that all occurrences of INCLUDE_ALL_GCS get replaced by either of INCLUDE_CMSGC, INCLUDE_G1GC, INCLUDE_PARALLELGC, and/or INCLUDE_SERIALGC, depending on what's appropriate for the code in question.
Our configure scripts will be changed to allow the flags --enable-cmsgc, --enable-g1gc, --enable-parallelgc, --enable-serialgc.
Some examples:
Compile with only G1:
--enable-cmsgc=no --enable-g1gc=yes --enable-parallelgc=no --enable-serialgc=no.
Stop compiling with CMS:
--enable-cmsgc=no
This compiles out PSMarkSweep
--enable-parallelgc=yes --enable-serialgc=no
This gets a configure error since CMS requires Serial:
--enable-cmsgc=yes --enable-serialgc=no
Note this RFE is somewhat related to the recent cleanups that has been going on in both the '
A prototype for this can be found at:
http://cr.openjdk.java.net/~stefank/8200729/prototype/webrev.01/
Currently, this patch contains the configure and INCLUDE_<GC> changes, plus work to move CG specific code out from non-GC code into the GC specific directories. As much as possible of the work to move code to GC specific files should be pushed as separate RFEs, but they help show where the direction I want to take the code.
- is blocked by
-
JDK-8200759 Move GC entries in vmStructs.cpp to GC specific files
- Resolved
-
JDK-8201136 Move GC flags from globals.hpp to GC specific files
- Resolved
-
JDK-8201209 Separate out CMS specific functions into CMSCardTable
- Resolved
- relates to
-
JDK-8201212 Remove INCLUDE_ALL_GCS from OopStorage files
- Resolved
-
JDK-8201213 Remove INCLUDE_ALL_GCS from memset_with_concurrent_readers
- Resolved
-
JDK-8213440 Lingering INCLUDE_ALL_GCS in test_oopStorage_parperf.cpp
- Resolved
-
JDK-8200735 Move CMS specific code from binaryTreeDictionary and freeList to CMS files
- Resolved
-
JDK-8200737 Move GC code out of Arguments::check_vm_args_consistency into GCArguments
- Resolved