United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6928073 G1: use existing command line parameters for marking cycle initiation
JDK-6928073 : G1: use existing command line parameters for marking cycle initiation

Details
Type:
Enhancement
Submit Date:
2010-02-19
Status:
Closed
Updated Date:
2011-03-08
Project Name:
JDK
Resolved Date:
2011-03-08
Component:
hotspot
OS:
generic
Sub-Component:
gc
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs17
Fixed Versions:
hs17 (b11)

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

Sub Tasks

Description
This is part of the G1 command line parameter changes enumerated in 6928059.

In G1 marking cycle initiation depends on the combination of the G1SteadyStateUsed and G1SteadyStateUsedDelta parameters. We should remove them and instead use a new InitiatingHeapOccupancyPercent parameter.

                                    

Comments
EVALUATION

See Comments.
                                     
2010-02-22
PUBLIC COMMENTS

This was easier than I thought it would be. G1SteadyStateUsed is not actually used in its original role (to be a "hard limit" and when it's reached to have to do an evacuation pause). Instead, G1MinResercePercent (which is being renamed to G1ReservePercent) is used instead (which is a better named parameter anyway). G1SteadyStateUsed was only used for the marking cycle initiation decision, in conjunction with G1SteadyStateUsedDelta. So, these two parameters they were very easily replaced with InitiatingHeapOccupancyPercent.

In CMS, here's the description of CMSInitiatingOccupancyFraction:

  product(intx, CMSInitiatingOccupancyFraction, -1,                         \
          "Percentage CMS generation occupancy to start a CMS collection "  \
          "cycle. A negative value means that CMSTriggerRatio is used")     \

In G1 we will simplify that and we will only have InitiatingHeapOccupancyPercent and no parameter equivalent to CMSTriggerRatio (which is not used widely anyway... in fact, in the tuning guide / presentations we only mention CMSInitiatingOccupancyFraction, and no CMSTriggerRatio).

I'm setting the default value for InitiatingHeapOccupancyPercent to 45%. CMS uses around 60%, but this is over the old generation and not over the entire heap. Imagine that the young gen is taking up about 25% of the heap, 60% over the old gen is around 45% over the entire heap.
                                     
2010-02-22
EVALUATION

ChangeSet=http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/1c72304f1885,ChangeRequest=6928073
                                     
2010-02-24



Hardware and Software, Engineered to Work Together