[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