Mercurial > hg > truffle
annotate src/share/vm/includeDB_jvmti @ 1716:be3f9c242c9d
6948538: CMS: BOT walkers can fall into object allocation and initialization cracks
Summary: GC workers now recognize an intermediate transient state of blocks which are allocated but have not yet completed initialization. blk_start() calls do not attempt to determine the size of a block in the transient state, rather waiting for the block to become initialized so that it is safe to query its size. Audited and ensured the order of initialization of object fields (klass, free bit and size) to respect block state transition protocol. Also included some new assertion checking code enabled in debug mode.
Reviewed-by: chrisphi, johnc, poonam
author | ysr |
---|---|
date | Mon, 16 Aug 2010 15:58:42 -0700 |
parents | c18cbe5936b8 |
children | fa83ab460c54 ce6848d0666d |
rev | line source |
---|---|
0 | 1 // |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
844
diff
changeset
|
2 // Copyright (c) 2007, 2009, 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:
844
diff
changeset
|
19 // Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
844
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:
844
diff
changeset
|
21 // questions. |
0 | 22 // |
23 // | |
24 | |
25 jvmtiAgentThread.hpp jvmtiEnv.hpp | |
26 | |
27 jvmtiClassFileReconstituter.cpp bytecodeStream.hpp | |
28 jvmtiClassFileReconstituter.cpp bytes_<arch>.hpp | |
29 jvmtiClassFileReconstituter.cpp jvmtiClassFileReconstituter.hpp | |
30 jvmtiClassFileReconstituter.cpp symbolTable.hpp | |
726
be93aad57795
6655646: dynamic languages need dynamically linked call sites
jrose
parents:
342
diff
changeset
|
31 jvmtiClassFileReconstituter.cpp signature.hpp |
0 | 32 |
33 jvmtiClassFileReconstituter.hpp jvmtiEnv.hpp | |
34 | |
35 // jvmtiCodeBlobEvents is jck optional, please put deps in includeDB_features | |
36 | |
37 jvmtiEnter.cpp jvmtiEnter.hpp | |
38 jvmtiEnter.cpp jvmtiUtil.hpp | |
39 | |
40 jvmtiEnter.hpp interfaceSupport.hpp | |
41 jvmtiEnter.hpp jvmtiEnv.hpp | |
42 jvmtiEnter.hpp jvmtiImpl.hpp | |
43 jvmtiEnter.hpp resourceArea.hpp | |
44 jvmtiEnter.hpp systemDictionary.hpp | |
45 | |
46 jvmtiEnterTrace.cpp jvmtiEnter.hpp | |
47 jvmtiEnterTrace.cpp jvmtiUtil.hpp | |
48 | |
49 jvmtiEnv.cpp arguments.hpp | |
50 jvmtiEnv.cpp bytecodeStream.hpp | |
51 jvmtiEnv.cpp cpCacheOop.hpp | |
52 jvmtiEnv.cpp deoptimization.hpp | |
53 jvmtiEnv.cpp exceptions.hpp | |
54 jvmtiEnv.cpp instanceKlass.hpp | |
55 jvmtiEnv.cpp interfaceSupport.hpp | |
56 jvmtiEnv.cpp interpreter.hpp | |
57 jvmtiEnv.cpp javaCalls.hpp | |
58 jvmtiEnv.cpp jfieldIDWorkaround.hpp | |
59 jvmtiEnv.cpp jniCheck.hpp | |
60 jvmtiEnv.cpp jvm_misc.hpp | |
61 jvmtiEnv.cpp jvmtiAgentThread.hpp | |
62 jvmtiEnv.cpp jvmtiClassFileReconstituter.hpp | |
63 jvmtiEnv.cpp jvmtiCodeBlobEvents.hpp | |
64 jvmtiEnv.cpp jvmtiEnv.hpp | |
65 jvmtiEnv.cpp jvmtiExtensions.hpp | |
66 jvmtiEnv.cpp jvmtiGetLoadedClasses.hpp | |
67 jvmtiEnv.cpp jvmtiImpl.hpp | |
68 jvmtiEnv.cpp jvmtiManageCapabilities.hpp | |
69 jvmtiEnv.cpp jvmtiRedefineClasses.hpp | |
70 jvmtiEnv.cpp jvmtiTagMap.hpp | |
71 jvmtiEnv.cpp jvmtiThreadState.inline.hpp | |
72 jvmtiEnv.cpp jvmtiUtil.hpp | |
73 jvmtiEnv.cpp objectMonitor.inline.hpp | |
74 jvmtiEnv.cpp osThread.hpp | |
75 jvmtiEnv.cpp preserveException.hpp | |
76 jvmtiEnv.cpp reflectionUtils.hpp | |
77 jvmtiEnv.cpp resourceArea.hpp | |
78 jvmtiEnv.cpp signature.hpp | |
79 jvmtiEnv.cpp systemDictionary.hpp | |
80 jvmtiEnv.cpp threadService.hpp | |
81 jvmtiEnv.cpp thread_<os_family>.inline.hpp | |
82 jvmtiEnv.cpp universe.inline.hpp | |
83 jvmtiEnv.cpp vframe.hpp | |
84 jvmtiEnv.cpp vmSymbols.hpp | |
85 jvmtiEnv.cpp vmThread.hpp | |
86 | |
87 jvmtiEnv.hpp jvmtiEnvBase.hpp | |
88 | |
89 jvmtiEnvBase.cpp biasedLocking.hpp | |
90 jvmtiEnvBase.cpp interfaceSupport.hpp | |
91 jvmtiEnvBase.cpp jfieldIDWorkaround.hpp | |
92 jvmtiEnvBase.cpp jvmtiEnv.hpp | |
93 jvmtiEnvBase.cpp jvmtiEnvBase.hpp | |
94 jvmtiEnvBase.cpp jvmtiEventController.inline.hpp | |
95 jvmtiEnvBase.cpp jvmtiExtensions.hpp | |
96 jvmtiEnvBase.cpp jvmtiImpl.hpp | |
97 jvmtiEnvBase.cpp jvmtiManageCapabilities.hpp | |
98 jvmtiEnvBase.cpp jvmtiTagMap.hpp | |
99 jvmtiEnvBase.cpp jvmtiThreadState.inline.hpp | |
100 jvmtiEnvBase.cpp objArrayKlass.hpp | |
101 jvmtiEnvBase.cpp objArrayOop.hpp | |
102 jvmtiEnvBase.cpp objectMonitor.hpp | |
103 jvmtiEnvBase.cpp objectMonitor.inline.hpp | |
104 jvmtiEnvBase.cpp signature.hpp | |
105 jvmtiEnvBase.cpp systemDictionary.hpp | |
106 jvmtiEnvBase.cpp vframe.hpp | |
107 jvmtiEnvBase.cpp vframe_hp.hpp | |
108 jvmtiEnvBase.cpp vmThread.hpp | |
109 jvmtiEnvBase.cpp vm_operations.hpp | |
110 | |
111 jvmtiEnvBase.hpp classLoader.hpp | |
112 jvmtiEnvBase.hpp fieldDescriptor.hpp | |
113 jvmtiEnvBase.hpp frame.hpp | |
114 jvmtiEnvBase.hpp growableArray.hpp | |
115 jvmtiEnvBase.hpp handles.inline.hpp | |
116 jvmtiEnvBase.hpp jvmtiEnvThreadState.hpp | |
117 jvmtiEnvBase.hpp jvmtiEventController.hpp | |
118 jvmtiEnvBase.hpp jvmtiThreadState.hpp | |
119 jvmtiEnvBase.hpp thread.hpp | |
120 jvmtiEnvBase.hpp vm_operations.hpp | |
121 | |
122 jvmtiEnvThreadState.cpp handles.hpp | |
123 jvmtiEnvThreadState.cpp handles.inline.hpp | |
124 jvmtiEnvThreadState.cpp interfaceSupport.hpp | |
125 jvmtiEnvThreadState.cpp interpreter.hpp | |
126 jvmtiEnvThreadState.cpp javaCalls.hpp | |
127 jvmtiEnvThreadState.cpp jvmtiEnv.hpp | |
128 jvmtiEnvThreadState.cpp jvmtiEnvThreadState.hpp | |
129 jvmtiEnvThreadState.cpp jvmtiEventController.inline.hpp | |
130 jvmtiEnvThreadState.cpp jvmtiImpl.hpp | |
131 jvmtiEnvThreadState.cpp resourceArea.hpp | |
132 jvmtiEnvThreadState.cpp signature.hpp | |
133 jvmtiEnvThreadState.cpp systemDictionary.hpp | |
134 jvmtiEnvThreadState.cpp vframe.hpp | |
135 jvmtiEnvThreadState.cpp vm_operations.hpp | |
136 | |
137 jvmtiEnvThreadState.hpp allocation.hpp | |
138 jvmtiEnvThreadState.hpp allocation.inline.hpp | |
139 jvmtiEnvThreadState.hpp globalDefinitions.hpp | |
140 jvmtiEnvThreadState.hpp growableArray.hpp | |
141 jvmtiEnvThreadState.hpp instanceKlass.hpp | |
142 jvmtiEnvThreadState.hpp jvmti.h | |
143 jvmtiEnvThreadState.hpp jvmtiEventController.hpp | |
144 | |
145 jvmtiEventController.cpp frame.hpp | |
146 jvmtiEventController.cpp interpreter.hpp | |
147 jvmtiEventController.cpp jvmtiEnv.hpp | |
148 jvmtiEventController.cpp jvmtiEventController.hpp | |
149 jvmtiEventController.cpp jvmtiEventController.inline.hpp | |
150 jvmtiEventController.cpp jvmtiExport.hpp | |
151 jvmtiEventController.cpp jvmtiImpl.hpp | |
152 jvmtiEventController.cpp jvmtiThreadState.inline.hpp | |
153 jvmtiEventController.cpp resourceArea.hpp | |
154 jvmtiEventController.cpp thread.hpp | |
155 jvmtiEventController.cpp vframe.hpp | |
156 jvmtiEventController.cpp vframe_hp.hpp | |
157 jvmtiEventController.cpp vmThread.hpp | |
158 jvmtiEventController.cpp vm_operations.hpp | |
159 | |
160 jvmtiEventController.hpp allocation.hpp | |
161 jvmtiEventController.hpp allocation.inline.hpp | |
162 jvmtiEventController.hpp globalDefinitions.hpp | |
163 jvmtiEventController.hpp jvmti.h | |
164 | |
165 jvmtiEventController.inline.hpp jvmtiEventController.hpp | |
166 jvmtiEventController.inline.hpp jvmtiImpl.hpp | |
167 jvmtiEventController.inline.hpp jvmtiUtil.hpp | |
168 | |
169 jvmtiExport.cpp arguments.hpp | |
170 jvmtiExport.cpp attachListener.hpp | |
171 jvmtiExport.cpp handles.hpp | |
172 jvmtiExport.cpp interfaceSupport.hpp | |
173 jvmtiExport.cpp interpreter.hpp | |
174 jvmtiExport.cpp jvmtiCodeBlobEvents.hpp | |
175 jvmtiExport.cpp jvmtiEnv.hpp | |
176 jvmtiExport.cpp jvmtiEventController.hpp | |
177 jvmtiExport.cpp jvmtiEventController.inline.hpp | |
178 jvmtiExport.cpp jvmtiExport.hpp | |
179 jvmtiExport.cpp jvmtiImpl.hpp | |
180 jvmtiExport.cpp jvmtiManageCapabilities.hpp | |
181 jvmtiExport.cpp jvmtiTagMap.hpp | |
182 jvmtiExport.cpp jvmtiThreadState.inline.hpp | |
183 jvmtiExport.cpp nmethod.hpp | |
184 jvmtiExport.cpp objArrayKlass.hpp | |
185 jvmtiExport.cpp objArrayOop.hpp | |
186 jvmtiExport.cpp objectMonitor.inline.hpp | |
187 jvmtiExport.cpp pcDesc.hpp | |
188 jvmtiExport.cpp resourceArea.hpp | |
189 jvmtiExport.cpp scopeDesc.hpp | |
190 jvmtiExport.cpp serviceUtil.hpp | |
191 jvmtiExport.cpp systemDictionary.hpp | |
192 jvmtiExport.cpp thread.hpp | |
193 jvmtiExport.cpp vframe.hpp | |
194 | |
195 // jvmtiExtensions is jck optional, please put deps in includeDB_features | |
196 | |
197 jvmtiGetLoadedClasses.cpp jvmtiGetLoadedClasses.hpp | |
198 jvmtiGetLoadedClasses.cpp systemDictionary.hpp | |
199 jvmtiGetLoadedClasses.cpp thread.hpp | |
200 jvmtiGetLoadedClasses.cpp universe.inline.hpp | |
201 | |
202 jvmtiGetLoadedClasses.hpp jvmtiEnv.hpp | |
203 | |
204 // jvmtiImpl is jck optional, please put deps in includeDB_features | |
205 | |
206 jvmtiManageCapabilities.cpp jvmtiEnv.hpp | |
207 jvmtiManageCapabilities.cpp jvmtiExport.hpp | |
208 jvmtiManageCapabilities.cpp jvmtiManageCapabilities.hpp | |
209 | |
210 jvmtiManageCapabilities.hpp allocation.hpp | |
211 jvmtiManageCapabilities.hpp jvmti.h | |
212 | |
342 | 213 jvmtiRedefineClasses.cpp bitMap.inline.hpp |
0 | 214 jvmtiRedefineClasses.cpp codeCache.hpp |
215 jvmtiRedefineClasses.cpp deoptimization.hpp | |
216 jvmtiRedefineClasses.cpp gcLocker.hpp | |
217 jvmtiRedefineClasses.cpp jvmtiImpl.hpp | |
218 jvmtiRedefineClasses.cpp jvmtiRedefineClasses.hpp | |
219 jvmtiRedefineClasses.cpp klassVtable.hpp | |
220 jvmtiRedefineClasses.cpp methodComparator.hpp | |
221 jvmtiRedefineClasses.cpp oopMapCache.hpp | |
222 jvmtiRedefineClasses.cpp relocator.hpp | |
223 jvmtiRedefineClasses.cpp rewriter.hpp | |
224 jvmtiRedefineClasses.cpp systemDictionary.hpp | |
225 jvmtiRedefineClasses.cpp universe.inline.hpp | |
226 jvmtiRedefineClasses.cpp verifier.hpp | |
227 | |
228 jvmtiRedefineClasses.hpp jvmtiEnv.hpp | |
229 jvmtiRedefineClasses.hpp jvmtiRedefineClassesTrace.hpp | |
230 jvmtiRedefineClasses.hpp objArrayKlass.hpp | |
231 jvmtiRedefineClasses.hpp objArrayOop.hpp | |
232 jvmtiRedefineClasses.hpp oopFactory.hpp | |
233 jvmtiRedefineClasses.hpp resourceArea.hpp | |
234 jvmtiRedefineClasses.hpp vm_operations.hpp | |
235 | |
236 // jvmtiTagMap is jck optional, please put deps in includeDB_features | |
237 // jvmtiTrace is jck optional, please put deps in includeDB_features | |
238 | |
239 jvmtiThreadState.cpp gcLocker.hpp | |
240 jvmtiThreadState.cpp jvmtiEnv.hpp | |
241 jvmtiThreadState.cpp jvmtiEventController.inline.hpp | |
242 jvmtiThreadState.cpp jvmtiImpl.hpp | |
243 jvmtiThreadState.cpp jvmtiThreadState.inline.hpp | |
244 jvmtiThreadState.cpp resourceArea.hpp | |
245 jvmtiThreadState.cpp vframe.hpp | |
246 | |
247 jvmtiThreadState.inline.hpp jvmtiEnvThreadState.hpp | |
248 jvmtiThreadState.inline.hpp jvmtiThreadState.hpp | |
249 | |
250 jvmtiUtil.cpp exceptions.hpp | |
251 jvmtiUtil.cpp handles.hpp | |
252 jvmtiUtil.cpp handles.inline.hpp | |
253 jvmtiUtil.cpp interfaceSupport.hpp | |
254 jvmtiUtil.cpp jvmtiUtil.hpp | |
255 jvmtiUtil.cpp vm_operations.hpp | |
256 | |
257 jvmtiUtil.hpp jvmti.h | |
258 jvmtiUtil.hpp jvmtiEventController.hpp | |
259 jvmtiUtil.hpp resourceArea.hpp |