JDK-8058148 : MaxNodeLimit and LiveNodeCountInliningCutoff should be increased
  • Type: Bug
  • Component: hotspot
  • Sub-Component: compiler
  • Affected Version: 8u40,9
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-09-10
  • Updated: 2017-08-24
  • Resolved: 2014-11-24
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u40Fixed 9 b42Fixed
Related Reports
Blocks :  
Relates :  
Relates :  
Description
LambdaForm sharing (JEP210, JDK-8046703) introduces new bytecode shapes, which cause C2 compilation bailouts. It manifests as serious peak performance regressions. MaxNodeLimit and LiveNodeCountInliningCutoff should be increased to eliminate such bailouts.

ILW = HML = P2
I = H: serious regressions in peak performance in Nashorn/Octane and other JSR292 users
L = M: only JSR292 users are affected
W = L: use -XX:MaxNodeLimit=240000 -XX:LiveNodeCountInliningCutoff=40000 to workaround the issue     
Comments
Can confirm, affects Nashorn. Of a total 75 secs of bailout compilations in Octane, we waste 20 seconds on this: Quick VM instrumentation patch: http://cr.openjdk.java.net/~shade/8058941/bailout-stat.patch Yields: Total compilation time : 360.272 s Bailout reasons: 0.281 secs: Method and/or inlining is too large 51.601 secs: CodeBuffer overflow 2.378 secs: out of nodes before split 1.979 secs: out of nodes after split 36.995 secs: invalid non-klass dependency 0.749 secs: Out of nodes 20.029 secs: out of nodes during split
23-09-2014