JDK-6888898 : CMS: ReduceInitialCardMarks unsafe in the presence of cms precleaning
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs14,hs17
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic,solaris
  • CPU: generic,x86
  • Submitted: 2009-10-06
  • Updated: 2010-12-06
  • Resolved: 2009-11-11
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
6u18Fixed 7Fixed hs16Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
ReduceInitialCardMarks elides card marks for TLAB allocations
in young gen (fine for CMS), but for the case of slow-path allocation
makes up by card-marking the allocated object (potentially in the
old gen) before initialization. This latter is unsafe wrt CMS' precleaning
which might scan the marked cards before they have been initialized
by the mutator and thus lose those updates.
Deleted incorrect comment/update here.

EVALUATION http://hg.openjdk.java.net/hsx/hsx16/master/rev/aa001a20bd61

EVALUATION http://hg.openjdk.java.net/hsx/hsx16/baseline/rev/aa001a20bd61

WORK AROUND The other possible workaround here (for CMS) is to switch off pre-cleaning, thus:- -XX:-CMSPrecleaningEnabled perhaps at the cost of much increased CMS remark pause times, however.

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

EVALUATION Deleted incorrect update/comment here.


WORK AROUND -XX:-ReduceInitialCardMarks ??