src/hotspot/share/gc/g1/g1CollectedHeap.hpp
changeset 49054 fa4c8865a4ff
parent 49048 4e8c86b75428
child 49164 7e958a8ebcd3
equal deleted inserted replaced
49053:0b61efd5a439 49054:fa4c8865a4ff
   223   void set_used(size_t bytes);
   223   void set_used(size_t bytes);
   224 
   224 
   225   // Class that handles archive allocation ranges.
   225   // Class that handles archive allocation ranges.
   226   G1ArchiveAllocator* _archive_allocator;
   226   G1ArchiveAllocator* _archive_allocator;
   227 
   227 
   228   // Statistics for each allocation context
       
   229   AllocationContextStats _allocation_context_stats;
       
   230 
       
   231   // GC allocation statistics policy for survivors.
   228   // GC allocation statistics policy for survivors.
   232   G1EvacStats _survivor_evac_stats;
   229   G1EvacStats _survivor_evac_stats;
   233 
   230 
   234   // GC allocation statistics policy for tenured objects.
   231   // GC allocation statistics policy for tenured objects.
   235   G1EvacStats _old_evac_stats;
   232   G1EvacStats _old_evac_stats;
   278   // explicitly started if:
   275   // explicitly started if:
   279   // (a) cause == _gc_locker and +GCLockerInvokesConcurrent, or
   276   // (a) cause == _gc_locker and +GCLockerInvokesConcurrent, or
   280   // (b) cause == _g1_humongous_allocation
   277   // (b) cause == _g1_humongous_allocation
   281   // (c) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent.
   278   // (c) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent.
   282   // (d) cause == _dcmd_gc_run and +ExplicitGCInvokesConcurrent.
   279   // (d) cause == _dcmd_gc_run and +ExplicitGCInvokesConcurrent.
   283   // (e) cause == _update_allocation_context_stats_inc
   280   // (e) cause == _wb_conc_mark
   284   // (f) cause == _wb_conc_mark
       
   285   bool should_do_concurrent_full_gc(GCCause::Cause cause);
   281   bool should_do_concurrent_full_gc(GCCause::Cause cause);
   286 
   282 
   287   // indicates whether we are in young or mixed GC mode
   283   // indicates whether we are in young or mixed GC mode
   288   G1CollectorState _collector_state;
   284   G1CollectorState _collector_state;
   289 
   285 
   581   inline G1EvacStats* alloc_buffer_stats(InCSetState dest);
   577   inline G1EvacStats* alloc_buffer_stats(InCSetState dest);
   582 
   578 
   583   // Determines PLAB size for a given destination.
   579   // Determines PLAB size for a given destination.
   584   inline size_t desired_plab_sz(InCSetState dest);
   580   inline size_t desired_plab_sz(InCSetState dest);
   585 
   581 
   586   inline AllocationContextStats& allocation_context_stats();
       
   587 
       
   588   // Do anything common to GC's.
   582   // Do anything common to GC's.
   589   void gc_prologue(bool full);
   583   void gc_prologue(bool full);
   590   void gc_epilogue(bool full);
   584   void gc_epilogue(bool full);
   591 
   585 
   592   // Modify the reclaim candidate set and test for presence.
   586   // Modify the reclaim candidate set and test for presence.
  1130   // Perform a collection of the heap; intended for use in implementing
  1124   // Perform a collection of the heap; intended for use in implementing
  1131   // "System.gc".  This probably implies as full a collection as the
  1125   // "System.gc".  This probably implies as full a collection as the
  1132   // "CollectedHeap" supports.
  1126   // "CollectedHeap" supports.
  1133   virtual void collect(GCCause::Cause cause);
  1127   virtual void collect(GCCause::Cause cause);
  1134 
  1128 
  1135   virtual bool copy_allocation_context_stats(const jint* contexts,
       
  1136                                              jlong* totals,
       
  1137                                              jbyte* accuracy,
       
  1138                                              jint len);
       
  1139 
       
  1140   // True iff an evacuation has failed in the most-recent collection.
  1129   // True iff an evacuation has failed in the most-recent collection.
  1141   bool evacuation_failed() { return _evacuation_failed; }
  1130   bool evacuation_failed() { return _evacuation_failed; }
  1142 
  1131 
  1143   void remove_from_old_sets(const uint old_regions_removed, const uint humongous_regions_removed);
  1132   void remove_from_old_sets(const uint old_regions_removed, const uint humongous_regions_removed);
  1144   void prepend_to_freelist(FreeRegionList* list);
  1133   void prepend_to_freelist(FreeRegionList* list);