< 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 >