United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7050392 G1: Introduce flag to generate a log of the G1 ergonomic decisions
JDK-7050392 : G1: Introduce flag to generate a log of the G1 ergonomic decisions

Details
Type:
Enhancement
Submit Date:
2011-06-01
Status:
Closed
Updated Date:
2013-10-04
Project Name:
JDK
Resolved Date:
2011-11-28
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P4
Resolution:
Fixed
Affected Versions:
hs22
Fixed Versions:
hs22 (b05)

Related Reports
Backport:
Backport:
Relates:
Relates:
Relates:
Relates:

Sub Tasks

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
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).
                                     
2011-08-29
EVALUATION

See Comments.
                                     
2011-08-18
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.
                                     
2011-08-29
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
                                     
2011-08-29
EVALUATION

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

See main CR
                                     
2011-09-12



Hardware and Software, Engineered to Work Together