JDK-7085906 : Replace the permgen allocated sentinelRef with a self-looped end
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs22
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-09-01
  • Updated: 2011-10-07
  • Resolved: 2011-09-30
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 7 JDK 8 Other
7u2Fixed 8Fixed hs22Fixed
The reference processor uses the sentinelRef to mark the end of the lists of discovered References. All the collectors rely on the sentinelRef being allocated in the permgen, hence not moving. So, when permgen is removed this will not work.

We could probably make changes to the collectors to update all pointers to the sentinelRef, but the proposed solution is to remove the sentinelRef, and instead let the last Reference in a discovered chain point back to itself. Just like we do with the next field.


EVALUATION http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/c2bf0120ee5d