RFR: Fail when -XX:+UseShenandoahGC is used on unsupported platform
Roman Kennke
rkennke at redhat.com
Tue Jul 10 13:31:14 UTC 2018
Am 10.07.2018 um 14:35 schrieb Aleksey Shipilev:
> This handles UseShenandoahGC properly on platforms that do not support Shenandoah. Otherwise it
> silently chooses whatever ergonomic GC fits, either G1 or Serial. Upstream had implemented this as
> JDK-8205064 [1], and we just miss the clause in that new method.
>
> diff -r 740bb30beb32 src/hotspot/share/gc/shared/gcConfig.cpp
> --- a/src/hotspot/share/gc/shared/gcConfig.cpp Tue Jul 10 05:27:20 2018 -0400
> +++ b/src/hotspot/share/gc/shared/gcConfig.cpp Tue Jul 10 14:34:31 2018 +0200
> @@ -97,16 +97,17 @@
> void GCConfig::fail_if_unsupported_gc_is_selected() {
> NOT_CMSGC( FAIL_IF_SELECTED(UseConcMarkSweepGC, true));
> NOT_EPSILONGC( FAIL_IF_SELECTED(UseEpsilonGC, true));
> NOT_G1GC( FAIL_IF_SELECTED(UseG1GC, true));
> NOT_PARALLELGC(FAIL_IF_SELECTED(UseParallelGC, true));
> NOT_PARALLELGC(FAIL_IF_SELECTED(UseParallelOldGC, true));
> NOT_SERIALGC( FAIL_IF_SELECTED(UseSerialGC, true));
> NOT_SERIALGC( FAIL_IF_SELECTED(UseParallelOldGC, false));
> + NOT_SHENANDOAHGC(FAIL_IF_SELECTED(UseShenandoahGC, true));
> NOT_ZGC( FAIL_IF_SELECTED(UseZGC, true));
> }
>
> void GCConfig::select_gc_ergonomically() {
> if (os::is_server_class_machine()) {
> #if INCLUDE_G1GC
> FLAG_SET_ERGO_IF_DEFAULT(bool, UseG1GC, true);
> #elif INCLUDE_PARALLELGC
>
>
> Testing: x86_64 builds with +shenandoahgc, -shenandoahgc
>
> Thanks,
> -Aleksey
>
> [1] https://bugs.openjdk.java.net/browse/JDK-8205064
>
Ok, good.
Thanks, Roman
More information about the shenandoah-dev
mailing list