JDK-7068215 : G1: Print reference processing time during remark
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 7u2
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-07-18
  • Updated: 2013-10-04
  • Resolved: 2012-01-23
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
Description
During performance runs of SPECjEnterprise, a few extremely long remark pasues were observed ( > 5s). These long pauses caused the app server under test to prematurely end sessions/close connections resulting in a significant reduction of injection rate.

After analysis of the GC log and code it was that the reason for these long remark pauses might be the reference processing that takes place during a remark. By default the reference processing that takes place during a remark pause is single threaded (executed by the VMThread). Parallel reference processing is turned on by setting the ParallelRefProcEnabled flag to true and the number of ParallelGCThreads > 1.

This CR is to add the tracing/instrumentation to prove whether reference processing is the cause of the majority of these extremely long remark pauses.

Comments
EVALUATION See main CR
22-10-2011

EVALUATION http://hg.openjdk.java.net/hsx/hsx22/hotspot/rev/ce597819d5c6
12-10-2011

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/1847b501ae74
22-09-2011

SUGGESTED FIX See Evaluation.
20-07-2011

EVALUATION Add some timers to ConcurrentMark::weakRefsWork().
18-07-2011