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

Aleksey Shipilev shade at redhat.com
Fri Jun 15 14:30:53 UTC 2018


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



More information about the shenandoah-dev mailing list