< prev index next >
src/share/vm/memory/sharedHeap.hpp
Print this page
rev 7854 : imported patch 8027962-per-phase-timing-measurements-for-strong-roots-processing
*** 44,53 ****
--- 44,54 ----
class SubTasksDone;
class WorkGang;
class FlexibleWorkGang;
class CollectorPolicy;
class KlassClosure;
+ class GCPhaseTimeTracker;
// Note on use of FlexibleWorkGang's for GC.
// There are three places where task completion is determined.
// In
// 1) ParallelTaskTerminator::offer_termination() where _n_threads
*** 101,111 ****
--- 102,130 ----
class SharedHeap : public CollectedHeap {
friend class VMStructs;
friend class VM_GC_Operation;
friend class VM_CGC_Operation;
+ public:
+ // The set of potentially parallel tasks in root scanning.
+ enum SH_process_roots_tasks {
+ SH_PS_Threads_oops_do,
+ SH_PS_StringTable_oops_do,
+ SH_PS_Universe_oops_do,
+ SH_PS_JNIHandles_oops_do,
+ SH_PS_ObjectSynchronizer_oops_do,
+ SH_PS_FlatProfiler_oops_do,
+ SH_PS_Management_oops_do,
+ SH_PS_SystemDictionary_oops_do,
+ SH_PS_ClassLoaderDataGraph_oops_do,
+ SH_PS_jvmti_oops_do,
+ SH_PS_CodeCache_oops_do,
+ // Leave this one last.
+ SH_PS_NumElements
+ };
+ static const char* ext_roots_task_str(uint task);
private:
// For claiming strong_roots tasks.
SubTasksDone* _process_strong_tasks;
protected:
*** 238,258 ****
ScanningOption so,
OopClosure* strong_roots,
OopClosure* weak_roots,
CLDClosure* strong_cld_closure,
CLDClosure* weak_cld_closure,
! CodeBlobClosure* code_roots);
void process_all_roots(bool activate_scope,
ScanningOption so,
OopClosure* roots,
CLDClosure* cld_closure,
! CodeBlobClosure* code_roots);
void process_strong_roots(bool activate_scope,
ScanningOption so,
OopClosure* roots,
CLDClosure* cld_closure,
! CodeBlobClosure* code_roots);
// Apply "root_closure" to the JNI weak roots..
void process_weak_roots(OopClosure* root_closure);
--- 257,280 ----
ScanningOption so,
OopClosure* strong_roots,
OopClosure* weak_roots,
CLDClosure* strong_cld_closure,
CLDClosure* weak_cld_closure,
! CodeBlobClosure* code_roots,
! GCPhaseTimeTracker* phase_durations = NULL);
void process_all_roots(bool activate_scope,
ScanningOption so,
OopClosure* roots,
CLDClosure* cld_closure,
! CodeBlobClosure* code_roots,
! GCPhaseTimeTracker* phase_durations = NULL);
void process_strong_roots(bool activate_scope,
ScanningOption so,
OopClosure* roots,
CLDClosure* cld_closure,
! CodeBlobClosure* code_roots,
! GCPhaseTimeTracker* phase_durations = NULL);
// Apply "root_closure" to the JNI weak roots..
void process_weak_roots(OopClosure* root_closure);
< prev index next >