JDK-7050392 : G1: Introduce flag to generate a log of the G1 ergonomic decisions
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: hs22
  • Priority: P4
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-06-01
  • Updated: 2013-10-04
  • Resolved: 2011-11-28
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
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Description
It would be good to have a -XX parameter that enables verboseness of the G1 ergonomic decisions to be able to easily understand why G1 makes the decisions it does.

Comments
EVALUATION See main CR
12-09-2011

EVALUATION http://hg.openjdk.java.net/hsx/hotspot-gc/hotspot/rev/20213c8a3c40
07-09-2011

PUBLIC COMMENTS Ultimately, we'd like to be able to turn on and off the ergo decision verboseness for each heuristic separately. Additionally, it would also be helpful to introduce several verboseness levels (in the simplest case: low and high) to adjust the logging amount vs. how informative the logging is trade-off (this verboseness level can either be applied per heuristic or globally). However, given that we don't currently have cmd line parameters to do the above we'll simply use the existing PrintAdaptiveSizePolicy parameter to turn on/off logging for all heuristics and hard-code the verboseness level to high. If we introduce more detailed parameters in the future we might revisit this.
29-08-2011

PUBLIC COMMENTS Here's a progress update on this CR: The ergonomic decision log will containg a series of records. Each such record will containg at least the following: - an action taken as a result of an ergonomic decision - an optional reason why said action was taken - an optional set of values which contributed to the ergonomic decision and each record will be associated with a heuristic that is affected by that action. The format of each record is the following: 8.675: [G1Ergonomics (Concurrent Cycles) request concurrent cycle initiation, reason: occupancy higher than threshold, occupancy: 31346656 bytes, threshold: 30198960 bytes (45.00 %)] This is broken down as follows: 8.675 : a time stamp [G1Ergonomics ... ]: standard prefix / suffix to be able to easily identify such a record (Concurrent Cycles) : the heuristic this record is associated with request concurrent cycle initiation : the action occupancy higher than threshold : the (optional) reason occupancy / threshold : the (optional) values
29-08-2011

PUBLIC COMMENTS As part of this CR we'll push the framework that we'll use for the ergo decision logging, as well the code to generate records for four heuristics: - Heap Sizing : when we expand / shrink the heap and why - CSet Construction : how we construct the CSet, why we stop adding old regions to it, etc. - Concurrent Cycles : why we initiate a concurrent cycle and why - Partially-Young GCs : why we start and stop doing partially-young GCs and why We're planning two more heuristics (young gen sizing and pause time prediction) but we'll do these as part of a separate CR (7084525: G1: Generate ergonomic decision log records for young gen sizing and for pause prediction).
29-08-2011

EVALUATION See Comments.
18-08-2011