JDK-6728271 : G1: Cleanup G1CollectedHeap::get_gc_alloc_regions()
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 7
  • Priority: P5
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2008-07-22
  • Updated: 2013-09-18
  • Resolved: 2009-04-02
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
6u14Fixed 7Fixed hs14Fixed
Related Reports
Relates :  
Relates :  
In G1CollectedHeap::get_gc_alloc_regions() we should either:
a. Handle aliases correctly and not call set_gc_alloc_region() twice for a region or
b. We could just eliminate the gc alloc region reuse code. Because currently gc alloc regions are discarded after the collection.

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

EVALUATION This will be piggybacked on the fix for 6604422. The changes of that CR ensure that only one old region (and not survivor regions) will be retained across GCs, which makes the problem described here (calls to set_gc_alloc_region() multiple times on the same region) not possible. So, I don't think there's much point in dealing with the problem directly right now. I've added a couple of asserts to catch the problem if in the future this assumption changes.

SUGGESTED FIX See Evaluation.