Mercurial > hg > truffle
annotate src/share/vm/services/management.hpp @ 8733:9def4075da6d
8008079: G1: Add nextObject routine to CMBitMapRO and replace nextWord
Summary: Update the task local finger to the start of the next object when marking aborts, in order to avoid the redundant scanning of all 0's when the marking task restarts, if otherwise updating to the next word. In addition, reuse the routine nextObject() in routine iterate().
Reviewed-by: johnc, ysr
Contributed-by: tamao <tao.mao@oracle.com>
author | tamao |
---|---|
date | Tue, 05 Mar 2013 15:36:56 -0800 |
parents | fb19af007ffc |
children | 31a4e55f8c9d |
rev | line source |
---|---|
0 | 1 /* |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
2 * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. |
0 | 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * | |
5 * This code is free software; you can redistribute it and/or modify it | |
6 * under the terms of the GNU General Public License version 2 only, as | |
7 * published by the Free Software Foundation. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
20 * or visit www.oracle.com if you need additional information or have any |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
0
diff
changeset
|
21 * questions. |
0 | 22 * |
23 */ | |
24 | |
1972 | 25 #ifndef SHARE_VM_SERVICES_MANAGEMENT_HPP |
26 #define SHARE_VM_SERVICES_MANAGEMENT_HPP | |
27 | |
28 #include "memory/allocation.hpp" | |
29 #include "runtime/handles.hpp" | |
30 #include "runtime/timer.hpp" | |
31 #include "services/jmm.h" | |
32 | |
0 | 33 class OopClosure; |
34 class ThreadSnapshot; | |
35 | |
36 class Management : public AllStatic { | |
37 private: | |
38 static PerfVariable* _begin_vm_creation_time; | |
39 static PerfVariable* _end_vm_creation_time; | |
40 static PerfVariable* _vm_init_done_time; | |
41 static jmmOptionalSupport _optional_support; | |
42 static TimeStamp _stamp; // Timestamp since vm init done time | |
43 | |
44 // Management klasses | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
45 static Klass* _sensor_klass; |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
46 static Klass* _threadInfo_klass; |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
47 static Klass* _memoryUsage_klass; |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
48 static Klass* _memoryPoolMXBean_klass; |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
49 static Klass* _memoryManagerMXBean_klass; |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
50 static Klass* _garbageCollectorMXBean_klass; |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
51 static Klass* _managementFactory_klass; |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
52 static Klass* _garbageCollectorImpl_klass; |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
53 static Klass* _gcInfo_klass; |
0 | 54 |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
55 static Klass* load_and_initialize_klass(Symbol* sh, TRAPS); |
0 | 56 |
57 public: | |
58 static void init(); | |
59 static void initialize(TRAPS); | |
60 | |
6854
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
61 static jlong ticks_to_ms(jlong ticks) NOT_MANAGEMENT_RETURN_(0L); |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
62 static jlong timestamp() NOT_MANAGEMENT_RETURN_(0L); |
0 | 63 |
6854
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
64 static void oops_do(OopClosure* f) NOT_MANAGEMENT_RETURN; |
0 | 65 static void* get_jmm_interface(int version); |
66 static void get_optional_support(jmmOptionalSupport* support); | |
67 | |
68 static void get_loaded_classes(JavaThread* cur_thread, GrowableArray<KlassHandle>* klass_handle_array); | |
69 | |
6854
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
70 static void record_vm_startup_time(jlong begin, jlong duration) |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
71 NOT_MANAGEMENT_RETURN; |
0 | 72 static void record_vm_init_completed() { |
73 // Initialize the timestamp to get the current time | |
74 _vm_init_done_time->set_value(os::javaTimeMillis()); | |
75 | |
76 // Update the timestamp to the vm init done time | |
77 _stamp.update(); | |
78 } | |
79 | |
4753
2e0ef19fc891
7126480: Make JVM start time in milliseconds since the Java epoch available
phh
parents:
3356
diff
changeset
|
80 static jlong begin_vm_creation_time() { |
2e0ef19fc891
7126480: Make JVM start time in milliseconds since the Java epoch available
phh
parents:
3356
diff
changeset
|
81 return _begin_vm_creation_time->get_value(); |
2e0ef19fc891
7126480: Make JVM start time in milliseconds since the Java epoch available
phh
parents:
3356
diff
changeset
|
82 } |
0 | 83 static jlong vm_init_done_time() { |
84 return _vm_init_done_time->get_value(); | |
85 } | |
86 | |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
87 // methods to return a Klass*. |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
88 static Klass* java_lang_management_ThreadInfo_klass(TRAPS); |
6854
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
89 static Klass* java_lang_management_MemoryUsage_klass(TRAPS) |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
90 NOT_MANAGEMENT_RETURN_(NULL); |
6725
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
91 static Klass* java_lang_management_MemoryPoolMXBean_klass(TRAPS); |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
92 static Klass* java_lang_management_MemoryManagerMXBean_klass(TRAPS); |
da91efe96a93
6964458: Reimplement class meta-data storage to use native memory
coleenp
parents:
4753
diff
changeset
|
93 static Klass* java_lang_management_GarbageCollectorMXBean_klass(TRAPS); |
6854
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
94 static Klass* sun_management_Sensor_klass(TRAPS) |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
95 NOT_MANAGEMENT_RETURN_(NULL); |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
96 static Klass* sun_management_ManagementFactory_klass(TRAPS) |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
97 NOT_MANAGEMENT_RETURN_(NULL); |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
98 static Klass* sun_management_GarbageCollectorImpl_klass(TRAPS) |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
99 NOT_MANAGEMENT_RETURN_(NULL); |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
100 static Klass* com_sun_management_GcInfo_klass(TRAPS) |
fb19af007ffc
7189254: Change makefiles for more flexibility to override defaults
jprovino
parents:
6725
diff
changeset
|
101 NOT_MANAGEMENT_RETURN_(NULL); |
0 | 102 |
103 static instanceOop create_thread_info_instance(ThreadSnapshot* snapshot, TRAPS); | |
104 static instanceOop create_thread_info_instance(ThreadSnapshot* snapshot, objArrayHandle monitors_array, typeArrayHandle depths_array, objArrayHandle synchronizers_array, TRAPS); | |
105 }; | |
106 | |
107 class TraceVmCreationTime : public StackObj { | |
108 private: | |
109 TimeStamp _timer; | |
110 jlong _begin_time; | |
111 | |
112 public: | |
113 TraceVmCreationTime() {} | |
114 ~TraceVmCreationTime() {} | |
115 | |
116 void start() | |
117 { _timer.update_to(0); _begin_time = os::javaTimeMillis(); } | |
118 | |
119 /** | |
120 * Only call this if initialization completes successfully; it will | |
121 * crash if PerfMemory_exit() has already been called (usually by | |
122 * os::shutdown() when there was an initialization failure). | |
123 */ | |
124 void end() | |
125 { Management::record_vm_startup_time(_begin_time, _timer.milliseconds()); } | |
126 | |
127 }; | |
1972 | 128 |
129 #endif // SHARE_VM_SERVICES_MANAGEMENT_HPP |