JDK-6403290 : CMS: abortable preclean phase performance
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 6
  • Priority: P3
  • Status: Resolved
  • Resolution: Withdrawn
  • OS: generic
  • CPU: generic
  • Submitted: 2006-03-23
  • Updated: 2015-11-02
  • Resolved: 2015-11-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 9
9Resolved
Related Reports
Relates :  
Description
The so-called "abortable preclean phase" was implemented as a way to
"continue lazy precleaning" of the CMS generation while waiting to
schedule the remark roughly midway between scavenges in order to reduce
the mutator impact of potential back-to-back stop-world pauses that
might otherwise occur.

Recent evidence however suggests that abortable precleaning is not
meeting these goals much of the time. To wit, in some cases abortable
preclean makes matters worse by extending the length of the CMS cycle
by a large amount. This has several deleterious effects, besides the
obvious one of increase floating garbage and footprint on account of
the longer occasional cycle: the large resulting volatility in CMS
cycle lengths can defeat ergonomics by requiring artificially large
padding factors, or of causing inefficient operation on account of
the volatility in the sensor data.

The heuristic needs to be revisited to reduce these bad effects.

Comments
With current priorities and staffing, I don't expect this to be implemented. Reopen when it is staffed.
02-11-2015

WORK AROUND -XX:+CMSScavengeBeforeRemark is a partial workaround to the performance issue of larger remark pause times because of this bug.
04-04-2011

EVALUATION This requires careful performance monitoring and analysis over a range of applications to fully characterize the bad behaviours and come up with a suitable fix for the heuristic. Defer for a later release.
23-03-2006

WORK AROUND By setting -XX:CMSScheduleRemarkEdenSizeThreshold=.. to the value of MaxNewSize (or larger) you can short-circuit these long and potentially problematic abortable preclean cycles. One possible effect might be increased CMS-remark pause times.
23-03-2006