JDK-7189528 : Use containing heap or generation to bound PLAB sizes suggested by PLABStats instances
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 7u6
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: generic
  • CPU: generic
  • Submitted: 2012-08-06
  • Updated: 2016-03-01
  • Resolved: 2016-03-01
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 9
9.1Resolved
Related Reports
Duplicate :  
Description
As part of his code review comments for 6818542, Ramki suggested the following:

One improvement that could be made (but which predates any of these changes) is that the ParGCAllocBuffer's min_size() and max_size() just return the lower and upper bounds set for TLAB's. Rather these should be set (perhaps statically if that is possible) by the containing heap or generation.
The PLAB sizing calculation already does the requisite clipping, so if the min and max sizes were properly configured you would likely not need to do the clipping from
above that you now have to do to keep G1's ergonomic PLAB sizes from becoming humongous.

Communicating the min and max bounds for the heap/generation to the PLAB stats instance(s) is a great idea. As Ramki says - it means that we can do away with any extra clipping of the value returned by desired_plab_sz(). It will be un-necessary as the value will already have been clipped by the PLABStats instance.

Comments
In JDK-8030177 the TLAB::max_size() is determined according to collector preferences at startup.
01-03-2016