comparison src/share/vm/gc_implementation/g1/g1MMUTracker.hpp @ 1088:3fc996d4edd2

6902303: G1: ScavengeALot should cause an incremental, rather than a full, collection Summary: ScavengeALot now causes an incremental (but possibly partially young, in the G1 sense) collection. Some such collections may be abandoned on account of MMU specs. Band-aided a native leak associated with abandoned pauses, as well as an MMU tracker overflow related to frequent scavenge events in the face of a large MMU denominator interval; the latter is protected by a product flag that defaults to false. Reviewed-by: tonyp
author ysr
date Thu, 19 Nov 2009 13:43:25 -0800
parents e1fdf4fd34dc
children b81f3572f355
comparison
equal deleted inserted replaced
1087:23b9a8d315fc 1088:3fc996d4edd2
97 // The data structure implemented is a circular queue. 97 // The data structure implemented is a circular queue.
98 // Head "points" to the most recent addition, tail to the oldest one. 98 // Head "points" to the most recent addition, tail to the oldest one.
99 // The array is of fixed size and I don't think we'll need more than 99 // The array is of fixed size and I don't think we'll need more than
100 // two or three entries with the current behaviour of G1 pauses. 100 // two or three entries with the current behaviour of G1 pauses.
101 // If the array is full, an easy fix is to look for the pauses with 101 // If the array is full, an easy fix is to look for the pauses with
102 // the shortest gap between them and concolidate them. 102 // the shortest gap between them and consolidate them.
103 // For now, we have taken the expedient alternative of forgetting
104 // the oldest entry in the event that +G1ForgetfulMMUTracker, thus
105 // potentially violating MMU specs for some time thereafter.
103 106
104 G1MMUTrackerQueueElem _array[QueueLength]; 107 G1MMUTrackerQueueElem _array[QueueLength];
105 int _head_index; 108 int _head_index;
106 int _tail_index; 109 int _tail_index;
107 int _no_entries; 110 int _no_entries;