[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