[14u] RFR 8237223: Shenandoah: important flags should not be ergonomic for concurrent class unloading

Zhengyu Gu zgu at redhat.com
Thu Feb 6 13:30:29 UTC 2020


Looks good to me.

Thanks,

-Zhengyu

On 2/6/20 7:34 AM, Aleksey Shipilev wrote:
> 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
> 



More information about the shenandoah-dev mailing list