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

Print this page
rev 2585 : [mq]: g1-reference-processing


 349   no_verbose  = 0,   // verbose turned off
 350   stats_verbose,     // only prints stats at the end of marking
 351   low_verbose,       // low verbose, mostly per region and per major event
 352   medium_verbose,    // a bit more detailed than low
 353   high_verbose       // per object verbose
 354 } CMVerboseLevel;
 355 
 356 
 357 class ConcurrentMarkThread;
 358 
 359 class ConcurrentMark: public CHeapObj {
 360   friend class ConcurrentMarkThread;
 361   friend class CMTask;
 362   friend class CMBitMapClosure;
 363   friend class CSMarkOopClosure;
 364   friend class CMGlobalObjectClosure;
 365   friend class CMRemarkTask;
 366   friend class CMConcurrentMarkingTask;
 367   friend class G1ParNoteEndTask;
 368   friend class CalcLiveObjectsClosure;
 369   friend class G1RefProcTaskProxy;
 370   friend class G1RefProcTaskExecutor;
 371   friend class G1CMParKeepAliveAndDrainClosure;
 372   friend class G1CMParDrainMarkingStackClosure;
 373 
 374 protected:
 375   ConcurrentMarkThread* _cmThread;   // the thread doing the work
 376   G1CollectedHeap*      _g1h;        // the heap.
 377   size_t                _parallel_marking_threads; // the number of marking
 378                                                    // threads we'll use
 379   double                _sleep_factor; // how much we have to sleep, with
 380                                        // respect to the work we just did, to
 381                                        // meet the marking overhead goal
 382   double                _marking_task_overhead; // marking target overhead for
 383                                                 // a single task
 384 
 385   // same as the two above, but for the cleanup task
 386   double                _cleanup_sleep_factor;
 387   double                _cleanup_task_overhead;
 388 
 389   FreeRegionList        _cleanup_list;
 390 




 349   no_verbose  = 0,   // verbose turned off
 350   stats_verbose,     // only prints stats at the end of marking
 351   low_verbose,       // low verbose, mostly per region and per major event
 352   medium_verbose,    // a bit more detailed than low
 353   high_verbose       // per object verbose
 354 } CMVerboseLevel;
 355 
 356 
 357 class ConcurrentMarkThread;
 358 
 359 class ConcurrentMark: public CHeapObj {
 360   friend class ConcurrentMarkThread;
 361   friend class CMTask;
 362   friend class CMBitMapClosure;
 363   friend class CSMarkOopClosure;
 364   friend class CMGlobalObjectClosure;
 365   friend class CMRemarkTask;
 366   friend class CMConcurrentMarkingTask;
 367   friend class G1ParNoteEndTask;
 368   friend class CalcLiveObjectsClosure;
 369   friend class G1CMRefProcTaskProxy;
 370   friend class G1CMRefProcTaskExecutor;
 371   friend class G1CMParKeepAliveAndDrainClosure;
 372   friend class G1CMParDrainMarkingStackClosure;
 373 
 374 protected:
 375   ConcurrentMarkThread* _cmThread;   // the thread doing the work
 376   G1CollectedHeap*      _g1h;        // the heap.
 377   size_t                _parallel_marking_threads; // the number of marking
 378                                                    // threads we'll use
 379   double                _sleep_factor; // how much we have to sleep, with
 380                                        // respect to the work we just did, to
 381                                        // meet the marking overhead goal
 382   double                _marking_task_overhead; // marking target overhead for
 383                                                 // a single task
 384 
 385   // same as the two above, but for the cleanup task
 386   double                _cleanup_sleep_factor;
 387   double                _cleanup_task_overhead;
 388 
 389   FreeRegionList        _cleanup_list;
 390