United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6941378 G1: change default value of G1UseFixedWindowMMUTracker to true
6941378 : G1: change default value of G1UseFixedWindowMMUTracker to true

Details
Type:
Bug
Submit Date:
2010-04-06
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:
7
Fixed Versions:
hs19

Related Reports
Backport:
Backport:
Backport:
Backport:

Sub Tasks

Description
The assertion

Internal Error at g1MMUTracker.cpp:92, pid=9261, tid=26
Error: guarantee(ScavengeALot || G1UseFixedWindowMMUTracker,"array full, currently we can't recover unless +G1UseFixedWindowMMUTracker") 

can fire if the clock value changes dramatically.  In those cases the only thing
that can be done is to over write the oldest values in the tracker queue.  Set
G1UseFixedWindowMMUTracker to true so that the behavior is just that.

                                    

Comments
EVALUATION

http://hg.openjdk.java.net/jdk7/hotspot-gc/hotspot/rev/f16f1d7893de
                                     
2010-05-26
EVALUATION

Clock/gettimeofday problems can cause the MMU tracker queue to fill up and trip a guarantee. The MMU tracker queue is actually cyclic and so setting G1UseFixedMMUTrackerWindow skips the guarantee and causes the earliest entries in the queue to be replacd.

Reviews of just changing the flag value (to skip the guarantee) raised questions about whether the presence of the flag is really necessary.
                                     
2010-05-07



Hardware and Software, Engineered to Work Together