JDK-8005032 : G1: Cleanup serial reference processing closures in concurrent marking
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2012-12-13
  • Updated: 2013-09-18
  • Resolved: 2013-02-06
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
7u40Fixed 8Fixed hs24Fixed
Description
The serial reference processing closures in concurrent marking operate directly upon the global marking stack. These closures should be cleaned up or improved:

* We should use instances on the parallel reference processing closures in the serial code. The worker id to use is 0.
* If we choose to keep the serial specific closures, they should be changed to observe the G1RefProcDrainInterval flag.

Since reference processing takes place in the remark pause - we would like to avoid marking stack overflows this late in the marking cycle.

Either solution will reduce the likelihood of seeing a stack overflow during reference processing.
Comments
Please see description.
13-12-2012