RFR: Workaround traversal+C2 bug with individual loads/stores

Roman Kennke rkennke at redhat.com
Fri Jun 15 14:36:58 UTC 2018


Am 15.06.2018 um 16:30 schrieb Aleksey Shipilev:
> diff -r ddd140c92018 src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp
> --- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp	Fri Jun 15
> 15:35:25 2018 +0200
> +++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp	Fri Jun 15
> 16:30:14 2018 +0200
> @@ -43,6 +43,11 @@
>    if (ClassUnloadingWithConcurrentMark) {
>      SHENANDOAH_ERGO_OVERRIDE_DEFAULT(ShenandoahUnloadClassesFrequency, 1);
>    }
> +
> +  // TODO: Disable this optimization for now, as it also requires the enqueue barriers there.
> +#ifdef COMPILER2
> +  FLAG_SET_DEFAULT(ArrayCopyLoadStoreMaxElem, 0);
> +#endif
>  }
> 
>  bool ShenandoahTraversalHeuristics::should_start_normal_gc() const {
> 
> 
> Thanks,
> -Aleksey
> 

Yes. Strictly you could rip out the same from
ShenandoahPartialHeuristics as it would inherit this from traversal. If
you do, no need for additional review.

Thanks,
Roman




More information about the shenandoah-dev mailing list