< prev index next >

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

Print this page




 324   HumongousReclaimCandidates _humongous_reclaim_candidates;
 325   // Stores whether during humongous object registration we found candidate regions.
 326   // If not, we can skip a few steps.
 327   bool _has_humongous_reclaim_candidates;
 328 
 329   volatile unsigned _gc_time_stamp;
 330 
 331   size_t* _surviving_young_words;
 332 
 333   G1HRPrinter _hr_printer;
 334 
 335   void setup_surviving_young_words();
 336   void update_surviving_young_words(size_t* surv_young_words);
 337   void cleanup_surviving_young_words();
 338 
 339   // It decides whether an explicit GC should start a concurrent cycle
 340   // instead of doing a STW GC. Currently, a concurrent cycle is
 341   // explicitly started if:
 342   // (a) cause == _gc_locker and +GCLockerInvokesConcurrent, or
 343   // (b) cause == _java_lang_system_gc and +ExplicitGCInvokesConcurrent.
 344   // (c) cause == _g1_humongous_allocation

 345   bool should_do_concurrent_full_gc(GCCause::Cause cause);
 346 
 347   // Keeps track of how many "old marking cycles" (i.e., Full GCs or
 348   // concurrent cycles) we have started.
 349   volatile uint _old_marking_cycles_started;
 350 
 351   // Keeps track of how many "old marking cycles" (i.e., Full GCs or
 352   // concurrent cycles) we have completed.
 353   volatile uint _old_marking_cycles_completed;
 354 
 355   bool _concurrent_cycle_started;
 356   bool _heap_summary_sent;
 357 
 358   // This is a non-product method that is helpful for testing. It is
 359   // called at the end of a GC and artificially expands the heap by
 360   // allocating a number of dead regions. This way we can induce very
 361   // frequent marking cycles and stress the cleanup / concurrent
 362   // cleanup code more (as all the regions that will be allocated by
 363   // this method will be found dead by the marking cycle).
 364   void allocate_dummy_regions() PRODUCT_RETURN;




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


< prev index next >