< 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
rev 7855 : [mq]: 8027962-bengt-suggestions
@@ -1,7 +1,7 @@
/*
- * Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
@@ -101,11 +101,29 @@
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,21 +256,24 @@
ScanningOption so,
OopClosure* strong_roots,
OopClosure* weak_roots,
CLDClosure* strong_cld_closure,
CLDClosure* weak_cld_closure,
- CodeBlobClosure* code_roots);
+ CodeBlobClosure* code_roots,
+ PhaseTimeData* phase_durations = NULL);
void process_all_roots(bool activate_scope,
ScanningOption so,
OopClosure* roots,
CLDClosure* cld_closure,
- CodeBlobClosure* code_roots);
+ CodeBlobClosure* code_roots,
+ PhaseTimeData* phase_durations = NULL);
void process_strong_roots(bool activate_scope,
ScanningOption so,
OopClosure* roots,
CLDClosure* cld_closure,
- CodeBlobClosure* code_roots);
+ CodeBlobClosure* code_roots,
+ PhaseTimeData* phase_durations = NULL);
// Apply "root_closure" to the JNI weak roots..
void process_weak_roots(OopClosure* root_closure);
< prev index next >