src/hotspot/share/gc/g1/g1CollectedHeap.hpp
changeset 55510 3e31a8beaae4
parent 55377 f48d3bec75ba
child 55721 6891a4438ae6
equal deleted inserted replaced
55509:d58442b8abc1 55510:3e31a8beaae4
    76 class G1CollectionSet;
    76 class G1CollectionSet;
    77 class G1Policy;
    77 class G1Policy;
    78 class G1HotCardCache;
    78 class G1HotCardCache;
    79 class G1RemSet;
    79 class G1RemSet;
    80 class G1YoungRemSetSamplingThread;
    80 class G1YoungRemSetSamplingThread;
    81 class HeapRegionRemSetIterator;
       
    82 class G1ConcurrentMark;
    81 class G1ConcurrentMark;
    83 class G1ConcurrentMarkThread;
    82 class G1ConcurrentMarkThread;
    84 class G1ConcurrentRefine;
    83 class G1ConcurrentRefine;
    85 class GenerationCounters;
    84 class GenerationCounters;
    86 class STWGCTimer;
    85 class STWGCTimer;
   755 private:
   754 private:
   756   // Evacuate the next set of optional regions.
   755   // Evacuate the next set of optional regions.
   757   void evacuate_next_optional_regions(G1ParScanThreadStateSet* per_thread_states);
   756   void evacuate_next_optional_regions(G1ParScanThreadStateSet* per_thread_states);
   758 
   757 
   759 public:
   758 public:
   760   void pre_evacuate_collection_set(G1EvacuationInfo& evacuation_info);
   759   void pre_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
   761   void post_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
   760   void post_evacuate_collection_set(G1EvacuationInfo& evacuation_info, G1ParScanThreadStateSet* pss);
   762 
   761 
   763   void expand_heap_after_young_collection();
   762   void expand_heap_after_young_collection();
   764   // Update object copying statistics.
   763   // Update object copying statistics.
   765   void record_obj_copy_mem_stats();
   764   void record_obj_copy_mem_stats();
  1113   // corresponding region is in the collection set or not.
  1112   // corresponding region is in the collection set or not.
  1114   G1HeapRegionAttrBiasedMappedArray _region_attr;
  1113   G1HeapRegionAttrBiasedMappedArray _region_attr;
  1115 
  1114 
  1116  public:
  1115  public:
  1117 
  1116 
  1118   inline G1HeapRegionAttr region_attr(const void* obj);
  1117   inline G1HeapRegionAttr region_attr(const void* obj) const;
       
  1118   inline G1HeapRegionAttr region_attr(uint idx) const;
  1119 
  1119 
  1120   // Return "TRUE" iff the given object address is in the reserved
  1120   // Return "TRUE" iff the given object address is in the reserved
  1121   // region of g1.
  1121   // region of g1.
  1122   bool is_in_g1_reserved(const void* p) const {
  1122   bool is_in_g1_reserved(const void* p) const {
  1123     return _hrm->reserved().contains(p);
  1123     return _hrm->reserved().contains(p);
  1180 
  1180 
  1181   // Iterate over the regions in the current increment of the collection set.
  1181   // Iterate over the regions in the current increment of the collection set.
  1182   // Starts the iteration so that the start regions of a given worker id over the
  1182   // Starts the iteration so that the start regions of a given worker id over the
  1183   // set active_workers are evenly spread across the set of collection set regions
  1183   // set active_workers are evenly spread across the set of collection set regions
  1184   // to be iterated.
  1184   // to be iterated.
  1185   void collection_set_iterate_increment_from(HeapRegionClosure *blk, uint worker_id);
  1185   // The variant with the HeapRegionClaimer guarantees that the closure will be
       
  1186   // applied to a particular region exactly once.
       
  1187   void collection_set_iterate_increment_from(HeapRegionClosure *blk, uint worker_id) {
       
  1188     collection_set_iterate_increment_from(blk, NULL, worker_id);
       
  1189   }
       
  1190   void collection_set_iterate_increment_from(HeapRegionClosure *blk, HeapRegionClaimer* hr_claimer, uint worker_id);
  1186 
  1191 
  1187   // Returns the HeapRegion that contains addr. addr must not be NULL.
  1192   // Returns the HeapRegion that contains addr. addr must not be NULL.
  1188   template <class T>
  1193   template <class T>
  1189   inline HeapRegion* heap_region_containing(const T addr) const;
  1194   inline HeapRegion* heap_region_containing(const T addr) const;
  1190 
  1195