comparison src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp @ 796:29e7d79232b9

6819065: G1: eliminate high serial card table clearing time Reviewed-by: iveresov, tonyp
author apetrusenko
date Tue, 19 May 2009 04:05:31 -0700
parents 4ac7d97e6101
children d44bdab1c03d
comparison
equal deleted inserted replaced
795:215f81b4d9b3 796:29e7d79232b9
156 friend class RefineCardTableEntryClosure; 156 friend class RefineCardTableEntryClosure;
157 friend class G1PrepareCompactClosure; 157 friend class G1PrepareCompactClosure;
158 friend class RegionSorter; 158 friend class RegionSorter;
159 friend class CountRCClosure; 159 friend class CountRCClosure;
160 friend class EvacPopObjClosure; 160 friend class EvacPopObjClosure;
161 friend class G1ParCleanupCTTask;
161 162
162 // Other related classes. 163 // Other related classes.
163 friend class G1MarkSweep; 164 friend class G1MarkSweep;
164 165
165 private: 166 private:
1189 bool full_collection() {return _full_collection;} 1190 bool full_collection() {return _full_collection;}
1190 1191
1191 ConcurrentMark* concurrent_mark() const { return _cm; } 1192 ConcurrentMark* concurrent_mark() const { return _cm; }
1192 ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; } 1193 ConcurrentG1Refine* concurrent_g1_refine() const { return _cg1r; }
1193 1194
1195 // The dirty cards region list is used to record a subset of regions
1196 // whose cards need clearing. The list if populated during the
1197 // remembered set scanning and drained during the card table
1198 // cleanup. Although the methods are reentrant, population/draining
1199 // phases must not overlap. For synchronization purposes the last
1200 // element on the list points to itself.
1201 HeapRegion* _dirty_cards_region_list;
1202 void push_dirty_cards_region(HeapRegion* hr);
1203 HeapRegion* pop_dirty_cards_region();
1204
1194 public: 1205 public:
1195 void stop_conc_gc_threads(); 1206 void stop_conc_gc_threads();
1196 1207
1197 // <NEW PREDICTION> 1208 // <NEW PREDICTION>
1198 1209