JDK-8142484 : Let IHOP follow the current capacity, not the maximum capacity
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2015-11-11
  • Updated: 2018-06-21
  • Resolved: 2016-03-07
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.
9 b112Fixed
Related Reports
Relates :  
Relates :  
Relates :  
IHOP currently follows the maximum heap size. That means, if there are no other limiting factors, actual heap size used can be higher than with the default IHOP settings.

(With typically higher throughput of course)

Make IHOP try to keep the current heap size/capacity() instead, so that it is not the cause for heap expansion.
Actually existing adaptive IHOP already takes the min young gen size into account. This indicates that this has been an issue before. It's a problem for static IHOP, as the max allowed young gen size for g1 is 60%, which is higher than 100 - InitiatingHeapOccupancyPercent.

noreg-hard justification: it is pretty hard to come up with an application and the correct settings to uniquely identify this change as working across a large range of setups.

Actually it needs to follow the current heap size available for old gen. I.e. if somebody sets young gen size to e.g. 70% of the available heap, we need to try to keep whatever is remaining.