< prev index next >

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

Print this page
rev 7854 : imported patch 8027962-per-phase-timing-measurements-for-strong-roots-processing
rev 7855 : [mq]: 8027962-bengt-suggestions

@@ -793,11 +793,12 @@
                         OopClosure* scan_non_heap_weak_roots,
                         G1ParPushHeapRSClosure* scan_rs,
                         CLDClosure* scan_strong_clds,
                         CLDClosure* scan_weak_clds,
                         CodeBlobClosure* scan_strong_code,
-                        uint worker_i);
+                        uint worker_i,
+                        PhaseTimeData* phase_times);
 
   // The concurrent marker (and the thread it runs in.)
   ConcurrentMark* _cm;
   ConcurrentMarkThread* _cmThread;
   bool _mark_in_progress;

@@ -981,22 +982,30 @@
   // The heap region entry for a given worker is valid iff
   // the associated time stamp value matches the current value
   // of G1CollectedHeap::_gc_time_stamp.
   uint* _worker_cset_start_region_time_stamp;
 
+  SubTasksDone* _process_strong_tasks;
+
+  volatile bool _free_regions_coming;
+
+
+public:
   enum G1H_process_roots_tasks {
-    G1H_PS_filter_satb_buffers,
+    G1H_PS_First,
+    G1H_PS_filter_satb_buffers = G1H_PS_First,
     G1H_PS_refProcessor_oops_do,
+    G1H_PS_wait_strong_cld_nmethods,
+    G1H_PS_weak_clds_oops_do,
     // Leave this one last.
     G1H_PS_NumElements
   };
 
-  SubTasksDone* _process_strong_tasks;
-
-  volatile bool _free_regions_coming;
-
-public:
+  // Returns the number of external root tasks.
+  static uint num_ext_root_tasks() { return G1H_PS_NumElements + SharedHeap::SH_PS_NumElements; }
+  // Returns a human readable description of the given external root task.
+  static const char* ext_roots_task_string(uint i);
 
   SubTasksDone* process_strong_tasks() { return _process_strong_tasks; }
 
   void set_refine_cte_cl_concurrency(bool concurrent);
 
< prev index next >