[14u] RFR 8237223: Shenandoah: important flags should not be ergonomic for concurrent class unloading
Aleksey Shipilev
shade at redhat.com
Thu Feb 6 12:34:49 UTC 2020
Please review this backport of:
https://bugs.openjdk.java.net/browse/JDK-8237223
https://hg.openjdk.java.net/jdk/jdk/rev/d5c222f181b4
The VerifyOnExit block was added by JDK-8228818 in 15, so the original patch does not apply cleanly.
14u variant:
diff -r 1c7a24611159 src/hotspot/share/gc/shenandoah/shenandoahNormalMode.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahNormalMode.cpp Tue Jan 21 13:40:10 2020 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahNormalMode.cpp Thu Feb 06 13:28:25 2020 +0100
@@ -29,15 +29,16 @@
#include "gc/shenandoah/heuristics/shenandoahStaticHeuristics.hpp"
#include "logging/log.hpp"
#include "logging/logTag.hpp"
void ShenandoahNormalMode::initialize_flags() const {
+ if (ShenandoahConcurrentRoots::can_do_concurrent_class_unloading()) {
+ FLAG_SET_DEFAULT(ShenandoahSuspendibleWorkers, true);
+ }
+
SHENANDOAH_ERGO_ENABLE_FLAG(ExplicitGCInvokesConcurrent);
SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahImplicitGCInvokesConcurrent);
- if (ShenandoahConcurrentRoots::can_do_concurrent_class_unloading()) {
- SHENANDOAH_ERGO_ENABLE_FLAG(ShenandoahSuspendibleWorkers);
- }
// Final configuration checks
SHENANDOAH_CHECK_FLAG_SET(ShenandoahLoadRefBarrier);
SHENANDOAH_CHECK_FLAG_SET(ShenandoahSATBBarrier);
SHENANDOAH_CHECK_FLAG_SET(ShenandoahKeepAliveBarrier);
Testing: hotspot_gc_shenandoah
--
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list