--- old/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2015-02-18 13:24:51.277838588 +0100 +++ new/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp 2015-02-18 13:24:51.204836421 +0100 @@ -795,7 +795,8 @@ 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; @@ -983,21 +984,29 @@ // 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); RefToScanQueue *task_queue(int i) const;