Summary
Change the Shenandoah garbage collector from an experimental feature into a product feature.
Problem
Shenandoah GC is currently an experimental feature enabled via the command-line options -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC
. JEP 379 proposes to make Shenandoah GC a product (non-experimental) feature, meaning it should be possible to enable without using -XX:+UnlockExperimentalVMOptions
.
Solution
The following existing command-line options will be changed from experimental
to product
. Their default values will remain unchanged.
UseShenandoahGC
ShenandoahGCMode
ShenandoahGCHeuristics
Specification
diff -r 35eacefe265d src/hotspot/share/gc/shared/gc_globals.hpp
--- a/src/hotspot/share/gc/shared/gc_globals.hpp Mon May 11 14:38:25 2020 +0200
+++ b/src/hotspot/share/gc/shared/gc_globals.hpp Mon May 11 14:54:32 2020 +0200
@@ -167,7 +167,7 @@
product(bool, UseZGC, false, \
"Use the Z garbage collector") \
\
- experimental(bool, UseShenandoahGC, false, \
+ product(bool, UseShenandoahGC, false, \
"Use the Shenandoah garbage collector") \
\
product(uint, ParallelGCThreads, 0, \
diff -r 35eacefe265d src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp
--- a/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Mon May 11 14:38:25 2020 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoah_globals.hpp Mon May 11 14:54:32 2020 +0200
@@ -63,14 +63,14 @@
"This also caps the maximum TLAB size.") \
range(1, 100) \
\
- experimental(ccstr, ShenandoahGCMode, "satb", \
+ product(ccstr, ShenandoahGCMode, "satb", \
"GC mode to use. Among other things, this defines which " \
"barriers are in in use. Possible values are:" \
" satb - snapshot-at-the-beginning concurrent GC (three pass mark-evac-update);" \
" iu - incremental-update concurrent GC (three pass mark-evac-update);" \
" passive - stop the world GC only (either degenerated or full)") \
\
- experimental(ccstr, ShenandoahGCHeuristics, "adaptive", \
+ product(ccstr, ShenandoahGCHeuristics, "adaptive", \
"GC heuristics to use. This fine-tunes the GC mode selected, " \
"by choosing when to start the GC, how much to process on each " \
"cycle, and what other features to automatically enable. " \
- csr of
-
JDK-8245478 Implementation: JEP 379: Shenandoah: A Low-Pause-Time Garbage Collector (Production)
-
- Resolved
-