< prev index next >

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

Print this page




 336   // True: marking is concurrent, false: we're in remark
 337   volatile bool           _concurrent;
 338   // Set at the end of a Full GC so that marking aborts
 339   volatile bool           _has_aborted;
 340 
 341   // Used when remark aborts due to an overflow to indicate that
 342   // another concurrent marking phase should start
 343   volatile bool           _restart_for_overflow;
 344 
 345   // This is true from the very start of concurrent marking until the
 346   // point when all the tasks complete their work. It is really used
 347   // to determine the points between the end of concurrent marking and
 348   // time of remark.
 349   volatile bool           _concurrent_marking_in_progress;
 350 
 351   ConcurrentGCTimer*      _gc_timer_cm;
 352 
 353   G1OldTracer*            _gc_tracer_cm;
 354 
 355   // All of these times are in ms
 356   NumberSeq _init_times;
 357   NumberSeq _remark_times;
 358   NumberSeq _remark_mark_times;
 359   NumberSeq _remark_weak_ref_times;
 360   NumberSeq _cleanup_times;
 361   double    _total_counting_time;
 362   double    _total_rs_scrub_time;
 363 
 364   double*   _accum_task_vtime;   // Accumulated task vtime
 365 
 366   WorkGang* _parallel_workers;
 367 
 368   void weakRefsWorkParallelPart(BoolObjectClosure* is_alive, bool purged_classes);
 369   void weakRefsWork(bool clear_all_soft_refs);
 370 
 371   void swapMarkBitMaps();
 372 
 373   // It resets the global marking data structures, as well as the
 374   // task local ones; should be called during initial mark.
 375   void reset();
 376 




 336   // True: marking is concurrent, false: we're in remark
 337   volatile bool           _concurrent;
 338   // Set at the end of a Full GC so that marking aborts
 339   volatile bool           _has_aborted;
 340 
 341   // Used when remark aborts due to an overflow to indicate that
 342   // another concurrent marking phase should start
 343   volatile bool           _restart_for_overflow;
 344 
 345   // This is true from the very start of concurrent marking until the
 346   // point when all the tasks complete their work. It is really used
 347   // to determine the points between the end of concurrent marking and
 348   // time of remark.
 349   volatile bool           _concurrent_marking_in_progress;
 350 
 351   ConcurrentGCTimer*      _gc_timer_cm;
 352 
 353   G1OldTracer*            _gc_tracer_cm;
 354 
 355   // All of these times are in ms

 356   NumberSeq _remark_times;
 357   NumberSeq _remark_mark_times;
 358   NumberSeq _remark_weak_ref_times;
 359   NumberSeq _cleanup_times;
 360   double    _total_counting_time;
 361   double    _total_rs_scrub_time;
 362 
 363   double*   _accum_task_vtime;   // Accumulated task vtime
 364 
 365   WorkGang* _parallel_workers;
 366 
 367   void weakRefsWorkParallelPart(BoolObjectClosure* is_alive, bool purged_classes);
 368   void weakRefsWork(bool clear_all_soft_refs);
 369 
 370   void swapMarkBitMaps();
 371 
 372   // It resets the global marking data structures, as well as the
 373   // task local ones; should be called during initial mark.
 374   void reset();
 375 


< prev index next >