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