JDK-6941378 : G1: change default value of G1UseFixedWindowMMUTracker to true
  • Type: Bug
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2010-04-06
  • Updated: 2017-05-16
  • Resolved: 2011-03-08
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 6 JDK 7 Other
6u21pFixed 7Fixed hs19Fixed
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
26-05-2010

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.
07-05-2010