JDK-6794422 : Perm gen expansion policy for concurrent collectors
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs14
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2009-01-15
  • Updated: 2011-04-23
  • Resolved: 2011-04-23
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 6 JDK 7 Other
6u25Fixed 7Fixed hs20Fixed
Related Reports
Relates :  
As part of 6539517, some of the code relating to perm gen allocation
was reorganized and partially consolidated. However, an inadvertent
side-effect of that reorg was that CMS' perm gen allocation policy
which attempts to avoid full gc's hwen allocating in the perm gen
was lost. That functionality would need to be restored for the case
of low-pause collectors such as CMS and G1.

Meanwhile, a workaround is available, see workaround section.

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot/hotspot/rev/e41cd7fd68a6

EVALUATION http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/e41cd7fd68a6

SUGGESTED FIX Under review and testing:- http://javaweb.sfbay.sun.com/~ysr/neeraja/export/ysr/perm_expand/webrev/

WORK AROUND The bug arises because now concurrent gc configurations, like the stop-world ones, are reluctant to expand the perm gen unless a stop-world collection has been done. Therefore a workaround is to size the perm gen size to its maximum size, thus making the expansion policy moot:- -XX:PermSize=<n> -XX:MaxPermSize=<n> n the max perm size configured.