RFR (XS) 8239868: Shenandoah: ditch C2 node limit adjustments

Aleksey Shipilev shade at redhat.com
Mon Feb 24 16:12:00 UTC 2020


RFE:
  https://bugs.openjdk.java.net/browse/JDK-8239868

We have the block added to Shenandoah arguments code that adjusts MaxNodeLimit and friends (predates
inclusion of Shenandoah into mainline):
 https://mail.openjdk.java.net/pipermail/shenandoah-dev/2018-August/006983.html

At the time, it was prompted by observing that lots of barriers everywhere really needed to have
this limit bumped. Today, with simplified LRB scheme, more simple LRB due to SFX, etc, we do not
need this.

The change above used ShenandoahCompileCheck, which made it into upstream code under generic
AbortVMOnCompilationFailure. With that, I was able to verify that dropping the block does not yield
compilation failures due to exceeded node budget on hotspot_gc_shenandoah, specjvm2008, specjbb2015.
Performance numbers are also not affected (as expected).

Therefore, the adjustment can be removed:

diff -r 5c5dcd036a76 src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp   Mon Feb 24 11:01:51 2020 +0100
+++ b/src/hotspot/share/gc/shenandoah/shenandoahArguments.cpp   Mon Feb 24 17:09:58 2020 +0100
@@ -193,13 +193,4 @@
   }

-  // Shenandoah needs more C2 nodes to compile some methods with lots of barriers.
-  // NodeLimitFudgeFactor needs to stay the same relative to MaxNodeLimit.
-#ifdef COMPILER2
-  if (FLAG_IS_DEFAULT(MaxNodeLimit)) {
-    FLAG_SET_DEFAULT(MaxNodeLimit, MaxNodeLimit * 3);
-    FLAG_SET_DEFAULT(NodeLimitFudgeFactor, NodeLimitFudgeFactor * 3);
-  }
-#endif
-
   // Make sure safepoint deadlocks are failing predictably. This sets up VM to report
   // fatal error after 10 seconds of wait for safepoint syncronization (not the VM

Testing: hotspot_gc_shenandoah; benchmarks, +AbortVMOnCompilationFailure testing

-- 
Thanks,
-Aleksey



More information about the hotspot-gc-dev mailing list