RFR: Disable evac assists for Traversal

Aleksey Shipilev shade at redhat.com
Tue Aug 14 11:05:04 UTC 2018


Hopefully the comment describes the intent properly:

diff -r 6e8095443caa src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp
--- a/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp      Tue Aug 14
11:54:02 2018 +0200
+++ b/src/hotspot/share/gc/shenandoah/heuristics/shenandoahTraversalHeuristics.cpp      Tue Aug 14
12:58:02 2018 +0200
@@ -44,10 +44,15 @@
   // Adjust class unloading settings only if globally enabled.
   if (ClassUnloadingWithConcurrentMark) {
     SHENANDOAH_ERGO_OVERRIDE_DEFAULT(ShenandoahUnloadClassesFrequency, 1);
   }

+  // Traversal evacuates live objects in traversal order, and evac assists play
+  // against that. Additionally, traversal may over-estimate the collection set,
+  // and that would mean spending more time in assist paths, which penalizes
+  // evacuation path latency.
+  SHENANDOAH_ERGO_OVERRIDE_DEFAULT(ShenandoahEvacAssist, 0);
 }

 bool ShenandoahTraversalHeuristics::should_start_normal_gc() const {
   return false;
 }

Testing: tier1_gc_shenandoah, benchmarks

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list