JDK-8061802 : REDO - Remove the generations array
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2014-10-22
  • Updated: 2015-06-03
  • Resolved: 2015-02-19
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 b54Fixed
Related Reports
Blocks :  
Blocks :  
Cloners :  
Relates :  
Relates :  
Sub Tasks
JDK-8061805 :  
Description
Today GenCollectedHeap contains an array with room for ten generations, and there is plenty of code that is written in a very generic way to allow for this many generations. However, there is also plenty of code that assumes we only use two generations and any attempt to use more would fail with the current code. In practice we only use two generations and there are no reason to maintain the illusion that we could use more.

To simplify the code the array should be removed and we should be explicit in all code accessing the generations about which generation we actually are using.
Comments
There were two bugs that caused this patch to be backed out: 1. Collection of the old generation was always run even if the young collection freed up enough to satisfy the allocation need. This is due to a really unexpected use of the size variable and was broken when the code that changed the variable was broken out into a separate function. 2. The new _young_generation and _old_generation fields was missing from the declarations in vm_structs.cpp.
11-12-2014

This cleanup is on the top of the GC cleanup wish list, increasing priority.
03-12-2014

Hmm. This one is not resolved. Must be because I cloned a resolved issue.
04-11-2014

Status = new, Resolved in build = team... sounds confusing... Would it make sense to make it fixed?
31-10-2014