< prev index next >

src/share/vm/gc/g1/g1CollectedHeap.hpp

Print this page




 307   HumongousReclaimCandidates _humongous_reclaim_candidates;
 308   // Stores whether during humongous object registration we found candidate regions.
 309   // If not, we can skip a few steps.
 310   bool _has_humongous_reclaim_candidates;
 311 
 312   volatile unsigned _gc_time_stamp;
 313 
 314   size_t* _surviving_young_words;
 315 
 316   G1HRPrinter _hr_printer;
 317 
 318   void setup_surviving_young_words();
 319   void update_surviving_young_words(size_t* surv_young_words);
 320   void cleanup_surviving_young_words();
 321 
 322   // It decides whether an explicit GC should start a concurrent cycle
 323   // instead of doing a STW GC. Currently, a concurrent cycle is
 324   // explicitly started if:
 325   // (a) cause == _gc_locker and +GCLockerInvokesConcurrent, or
 326   // (b) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent.
 327   // (c) cause == _g1_humongous_allocation

 328   bool should_do_concurrent_full_gc(GCCause::Cause cause);
 329 
 330   // Keeps track of how many "old marking cycles" (i.e., Full GCs or
 331   // concurrent cycles) we have started.
 332   volatile uint _old_marking_cycles_started;
 333 
 334   // Keeps track of how many "old marking cycles" (i.e., Full GCs or
 335   // concurrent cycles) we have completed.
 336   volatile uint _old_marking_cycles_completed;
 337 
 338   bool _concurrent_cycle_started;
 339   bool _heap_summary_sent;
 340 
 341   // This is a non-product method that is helpful for testing. It is
 342   // called at the end of a GC and artificially expands the heap by
 343   // allocating a number of dead regions. This way we can induce very
 344   // frequent marking cycles and stress the cleanup / concurrent
 345   // cleanup code more (as all the regions that will be allocated by
 346   // this method will be found dead by the marking cycle).
 347   void allocate_dummy_regions() PRODUCT_RETURN;




 307   HumongousReclaimCandidates _humongous_reclaim_candidates;
 308   // Stores whether during humongous object registration we found candidate regions.
 309   // If not, we can skip a few steps.
 310   bool _has_humongous_reclaim_candidates;
 311 
 312   volatile unsigned _gc_time_stamp;
 313 
 314   size_t* _surviving_young_words;
 315 
 316   G1HRPrinter _hr_printer;
 317 
 318   void setup_surviving_young_words();
 319   void update_surviving_young_words(size_t* surv_young_words);
 320   void cleanup_surviving_young_words();
 321 
 322   // It decides whether an explicit GC should start a concurrent cycle
 323   // instead of doing a STW GC. Currently, a concurrent cycle is
 324   // explicitly started if:
 325   // (a) cause == _gc_locker and +GCLockerInvokesConcurrent, or
 326   // (b) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent.
 327   // (c) cause == _dcmd_gc_run and +ExplicitGCInvokesConcurrent.
 328   // (d) cause == _g1_humongous_allocation
 329   bool should_do_concurrent_full_gc(GCCause::Cause cause);
 330 
 331   // Keeps track of how many "old marking cycles" (i.e., Full GCs or
 332   // concurrent cycles) we have started.
 333   volatile uint _old_marking_cycles_started;
 334 
 335   // Keeps track of how many "old marking cycles" (i.e., Full GCs or
 336   // concurrent cycles) we have completed.
 337   volatile uint _old_marking_cycles_completed;
 338 
 339   bool _concurrent_cycle_started;
 340   bool _heap_summary_sent;
 341 
 342   // This is a non-product method that is helpful for testing. It is
 343   // called at the end of a GC and artificially expands the heap by
 344   // allocating a number of dead regions. This way we can induce very
 345   // frequent marking cycles and stress the cleanup / concurrent
 346   // cleanup code more (as all the regions that will be allocated by
 347   // this method will be found dead by the marking cycle).
 348   void allocate_dummy_regions() PRODUCT_RETURN;


< prev index next >