Tue, 28 Sep 2010 15:56:15 -0700
6423256: GC stacks should use a better data structure
6942771: SEGV in ParScanThreadState::take_from_overflow_stack
Reviewed-by: apetrusenko, ysr, pbk
1 //
2 // Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
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 //
19 // Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 // or visit www.oracle.com if you need additional information or have any
21 // questions.
22 //
23 //
25 // NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps!
28 adjoiningGenerations.hpp adjoiningVirtualSpaces.hpp
29 adjoiningGenerations.hpp asPSOldGen.hpp
30 adjoiningGenerations.hpp asPSYoungGen.hpp
31 adjoiningGenerations.hpp psPermGen.hpp
33 adjoiningGenerations.cpp adjoiningGenerations.hpp
34 adjoiningGenerations.cpp adjoiningVirtualSpaces.hpp
35 adjoiningGenerations.cpp parallelScavengeHeap.hpp
36 adjoiningGenerations.cpp psPermGen.hpp
38 adjoiningVirtualSpaces.hpp psVirtualspace.hpp
40 adjoiningVirtualSpaces.cpp java.hpp
41 adjoiningVirtualSpaces.cpp adjoiningVirtualSpaces.hpp
43 asPSOldGen.hpp generationCounters.hpp
44 asPSOldGen.hpp mutableSpace.hpp
45 asPSOldGen.hpp objectStartArray.hpp
46 asPSOldGen.hpp psVirtualspace.hpp
47 asPSOldGen.hpp spaceCounters.hpp
48 asPSOldGen.hpp psOldGen.hpp
50 asPSOldGen.cpp psAdaptiveSizePolicy.hpp
51 asPSOldGen.cpp cardTableModRefBS.hpp
52 asPSOldGen.cpp java.hpp
53 asPSOldGen.cpp oop.inline.hpp
54 asPSOldGen.cpp parallelScavengeHeap.hpp
55 asPSOldGen.cpp psMarkSweepDecorator.hpp
56 asPSOldGen.cpp asPSOldGen.hpp
58 asPSYoungGen.hpp generationCounters.hpp
59 asPSYoungGen.hpp mutableSpace.hpp
60 asPSYoungGen.hpp objectStartArray.hpp
61 asPSYoungGen.hpp spaceCounters.hpp
62 asPSYoungGen.hpp psVirtualspace.hpp
63 asPSYoungGen.hpp psYoungGen.hpp
64 asPSYoungGen.hpp spaceDecorator.hpp
66 asPSYoungGen.cpp gcUtil.hpp
67 asPSYoungGen.cpp java.hpp
68 asPSYoungGen.cpp oop.inline.hpp
69 asPSYoungGen.cpp parallelScavengeHeap.hpp
70 asPSYoungGen.cpp psMarkSweepDecorator.hpp
71 asPSYoungGen.cpp psScavenge.hpp
72 asPSYoungGen.cpp asPSYoungGen.hpp
73 asPSYoungGen.cpp psYoungGen.hpp
74 asPSYoungGen.cpp spaceDecorator.hpp
76 cardTableExtension.cpp cardTableExtension.hpp
77 cardTableExtension.cpp gcTaskManager.hpp
78 cardTableExtension.cpp oop.inline.hpp
79 cardTableExtension.cpp oop.psgc.inline.hpp
80 cardTableExtension.cpp parallelScavengeHeap.hpp
81 cardTableExtension.cpp psTasks.hpp
82 cardTableExtension.cpp psYoungGen.hpp
84 cardTableExtension.hpp cardTableModRefBS.hpp
86 gcTaskManager.hpp mutex.hpp
87 gcTaskManager.hpp growableArray.hpp
89 gcTaskManager.cpp allocation.hpp
90 gcTaskManager.cpp allocation.inline.hpp
91 gcTaskManager.cpp gcTaskManager.hpp
92 gcTaskManager.cpp gcTaskThread.hpp
93 gcTaskManager.cpp mutex.hpp
94 gcTaskManager.cpp mutexLocker.hpp
96 gcTaskThread.hpp thread.hpp
98 gcTaskThread.cpp allocation.hpp
99 gcTaskThread.cpp allocation.inline.hpp
100 gcTaskThread.cpp gcTaskManager.hpp
101 gcTaskThread.cpp gcTaskThread.hpp
102 gcTaskThread.cpp handles.hpp
103 gcTaskThread.cpp handles.inline.hpp
104 gcTaskThread.cpp os.hpp
105 gcTaskThread.cpp resourceArea.hpp
106 gcTaskThread.cpp thread.hpp
108 generationSizer.hpp collectorPolicy.hpp
110 objectStartArray.cpp allocation.inline.hpp
111 objectStartArray.cpp cardTableModRefBS.hpp
112 objectStartArray.cpp java.hpp
113 objectStartArray.cpp objectStartArray.hpp
114 objectStartArray.cpp oop.inline.hpp
116 objectStartArray.hpp allocation.hpp
117 objectStartArray.hpp memRegion.hpp
118 objectStartArray.hpp oop.hpp
119 objectStartArray.hpp psVirtualspace.hpp
121 parallelScavengeHeap.cpp adjoiningGenerations.hpp
122 parallelScavengeHeap.cpp adjoiningVirtualSpaces.hpp
123 parallelScavengeHeap.cpp cardTableExtension.hpp
124 parallelScavengeHeap.cpp gcLocker.inline.hpp
125 parallelScavengeHeap.cpp gcTaskManager.hpp
126 parallelScavengeHeap.cpp generationSizer.hpp
127 parallelScavengeHeap.cpp handles.inline.hpp
128 parallelScavengeHeap.cpp java.hpp
129 parallelScavengeHeap.cpp oop.inline.hpp
130 parallelScavengeHeap.cpp parallelScavengeHeap.inline.hpp
131 parallelScavengeHeap.cpp psAdaptiveSizePolicy.hpp
132 parallelScavengeHeap.cpp psMarkSweep.hpp
133 parallelScavengeHeap.cpp psParallelCompact.hpp
134 parallelScavengeHeap.cpp psPromotionManager.hpp
135 parallelScavengeHeap.cpp psScavenge.hpp
136 parallelScavengeHeap.cpp vmThread.hpp
137 parallelScavengeHeap.cpp vmPSOperations.hpp
139 parallelScavengeHeap.inline.hpp parallelScavengeHeap.hpp
140 parallelScavengeHeap.inline.hpp psMarkSweep.hpp
141 parallelScavengeHeap.inline.hpp psParallelCompact.hpp
142 parallelScavengeHeap.inline.hpp psScavenge.hpp
144 parallelScavengeHeap.hpp collectedHeap.inline.hpp
145 parallelScavengeHeap.hpp objectStartArray.hpp
146 parallelScavengeHeap.hpp gcPolicyCounters.hpp
147 parallelScavengeHeap.hpp psGCAdaptivePolicyCounters.hpp
148 parallelScavengeHeap.hpp psOldGen.hpp
149 parallelScavengeHeap.hpp psPermGen.hpp
150 parallelScavengeHeap.hpp psYoungGen.hpp
151 parallelScavengeHeap.hpp ostream.hpp
153 parMarkBitMap.cpp bitMap.inline.hpp
154 parMarkBitMap.cpp oop.inline.hpp
155 parMarkBitMap.cpp os.hpp
156 parMarkBitMap.cpp os_<os_family>.inline.hpp
157 parMarkBitMap.cpp parMarkBitMap.hpp
158 parMarkBitMap.cpp parMarkBitMap.inline.hpp
159 parMarkBitMap.cpp psParallelCompact.hpp
161 parMarkBitMap.hpp bitMap.inline.hpp
162 parMarkBitMap.hpp psVirtualspace.hpp
164 psAdaptiveSizePolicy.cpp collectorPolicy.hpp
165 psAdaptiveSizePolicy.cpp gcPolicyCounters.hpp
166 psAdaptiveSizePolicy.cpp gcCause.hpp
167 psAdaptiveSizePolicy.cpp generationSizer.hpp
168 psAdaptiveSizePolicy.cpp psAdaptiveSizePolicy.hpp
169 psAdaptiveSizePolicy.cpp psGCAdaptivePolicyCounters.hpp
170 psAdaptiveSizePolicy.cpp psScavenge.hpp
171 psAdaptiveSizePolicy.cpp timer.hpp
172 psAdaptiveSizePolicy.cpp top.hpp
174 psAdaptiveSizePolicy.hpp gcCause.hpp
175 psAdaptiveSizePolicy.hpp gcStats.hpp
176 psAdaptiveSizePolicy.hpp gcUtil.hpp
177 psAdaptiveSizePolicy.hpp adaptiveSizePolicy.hpp
179 psCompactionManager.cpp gcTaskManager.hpp
180 psCompactionManager.cpp objArrayKlass.inline.hpp
181 psCompactionManager.cpp objectStartArray.hpp
182 psCompactionManager.cpp oop.hpp
183 psCompactionManager.cpp oop.inline.hpp
184 psCompactionManager.cpp oop.pcgc.inline.hpp
185 psCompactionManager.cpp parallelScavengeHeap.hpp
186 psCompactionManager.cpp parMarkBitMap.hpp
187 psCompactionManager.cpp psParallelCompact.hpp
188 psCompactionManager.cpp psCompactionManager.hpp
189 psCompactionManager.cpp psOldGen.hpp
190 psCompactionManager.cpp stack.inline.hpp
191 psCompactionManager.cpp systemDictionary.hpp
193 psCompactionManager.hpp allocation.hpp
194 psCompactionManager.hpp stack.hpp
195 psCompactionManager.hpp taskqueue.hpp
197 psCompactionManager.inline.hpp psCompactionManager.hpp
198 psCompactionManager.inline.hpp psParallelCompact.hpp
200 psGCAdaptivePolicyCounters.hpp gcAdaptivePolicyCounters.hpp
201 psGCAdaptivePolicyCounters.hpp gcPolicyCounters.hpp
202 psGCAdaptivePolicyCounters.hpp psAdaptiveSizePolicy.hpp
204 psGCAdaptivePolicyCounters.cpp arguments.hpp
205 psGCAdaptivePolicyCounters.cpp resourceArea.hpp
206 psGCAdaptivePolicyCounters.cpp psGCAdaptivePolicyCounters.hpp
208 psGenerationCounters.cpp psGenerationCounters.hpp
209 psGenerationCounters.cpp resourceArea.hpp
211 psGenerationCounters.hpp generationCounters.hpp
212 psGenerationCounters.hpp perfData.hpp
213 psGenerationCounters.hpp psVirtualspace.hpp
215 psMarkSweep.cpp psAdaptiveSizePolicy.hpp
216 psMarkSweep.cpp biasedLocking.hpp
217 psMarkSweep.cpp codeCache.hpp
218 psMarkSweep.cpp events.hpp
219 psMarkSweep.cpp fprofiler.hpp
220 psMarkSweep.cpp gcCause.hpp
221 psMarkSweep.cpp gcLocker.inline.hpp
222 psMarkSweep.cpp generationSizer.hpp
223 psMarkSweep.cpp isGCActiveMark.hpp
224 psMarkSweep.cpp oop.inline.hpp
225 psMarkSweep.cpp memoryService.hpp
226 psMarkSweep.cpp management.hpp
227 psMarkSweep.cpp parallelScavengeHeap.hpp
228 psMarkSweep.cpp psMarkSweep.hpp
229 psMarkSweep.cpp psMarkSweepDecorator.hpp
230 psMarkSweep.cpp psOldGen.hpp
231 psMarkSweep.cpp psPermGen.hpp
232 psMarkSweep.cpp psScavenge.hpp
233 psMarkSweep.cpp psYoungGen.hpp
234 psMarkSweep.cpp referencePolicy.hpp
235 psMarkSweep.cpp referenceProcessor.hpp
236 psMarkSweep.cpp safepoint.hpp
237 psMarkSweep.cpp spaceDecorator.hpp
238 psMarkSweep.cpp stack.inline.hpp
239 psMarkSweep.cpp symbolTable.hpp
240 psMarkSweep.cpp systemDictionary.hpp
241 psMarkSweep.cpp vmThread.hpp
243 psMarkSweep.hpp markSweep.inline.hpp
244 psMarkSweep.hpp collectorCounters.hpp
245 psMarkSweep.hpp stack.hpp
247 psMarkSweepDecorator.cpp liveRange.hpp
248 psMarkSweepDecorator.cpp markSweep.inline.hpp
249 psMarkSweepDecorator.cpp objectStartArray.hpp
250 psMarkSweepDecorator.cpp oop.inline.hpp
251 psMarkSweepDecorator.cpp parallelScavengeHeap.hpp
252 psMarkSweepDecorator.cpp psMarkSweep.hpp
253 psMarkSweepDecorator.cpp psMarkSweepDecorator.hpp
254 psMarkSweepDecorator.cpp spaceDecorator.hpp
255 psMarkSweepDecorator.cpp systemDictionary.hpp
257 psMarkSweepDecorator.hpp mutableSpace.hpp
259 psParallelCompact.cpp psAdaptiveSizePolicy.hpp
260 psParallelCompact.cpp codeCache.hpp
261 psParallelCompact.cpp events.hpp
262 psParallelCompact.cpp fprofiler.hpp
263 psParallelCompact.cpp gcCause.hpp
264 psParallelCompact.cpp gcLocker.inline.hpp
265 psParallelCompact.cpp gcTaskManager.hpp
266 psParallelCompact.cpp generationSizer.hpp
267 psParallelCompact.cpp isGCActiveMark.hpp
268 psParallelCompact.cpp management.hpp
269 psParallelCompact.cpp memoryService.hpp
270 psParallelCompact.cpp methodDataOop.hpp
271 psParallelCompact.cpp oop.inline.hpp
272 psParallelCompact.cpp oop.pcgc.inline.hpp
273 psParallelCompact.cpp parallelScavengeHeap.inline.hpp
274 psParallelCompact.cpp pcTasks.hpp
275 psParallelCompact.cpp psMarkSweep.hpp
276 psParallelCompact.cpp psMarkSweepDecorator.hpp
277 psParallelCompact.cpp psCompactionManager.inline.hpp
278 psParallelCompact.cpp psPromotionManager.inline.hpp
279 psParallelCompact.cpp psOldGen.hpp
280 psParallelCompact.cpp psParallelCompact.hpp
281 psParallelCompact.cpp psPermGen.hpp
282 psParallelCompact.cpp psScavenge.hpp
283 psParallelCompact.cpp psYoungGen.hpp
284 psParallelCompact.cpp referencePolicy.hpp
285 psParallelCompact.cpp referenceProcessor.hpp
286 psParallelCompact.cpp safepoint.hpp
287 psParallelCompact.cpp stack.inline.hpp
288 psParallelCompact.cpp symbolTable.hpp
289 psParallelCompact.cpp systemDictionary.hpp
290 psParallelCompact.cpp vmThread.hpp
292 psParallelCompact.hpp collectorCounters.hpp
293 psParallelCompact.hpp markSweep.hpp
294 psParallelCompact.hpp mutableSpace.hpp
295 psParallelCompact.hpp objectStartArray.hpp
296 psParallelCompact.hpp oop.hpp
297 psParallelCompact.hpp parMarkBitMap.hpp
298 psParallelCompact.hpp psCompactionManager.hpp
299 psParallelCompact.hpp sharedHeap.hpp
301 psOldGen.cpp psAdaptiveSizePolicy.hpp
302 psOldGen.cpp cardTableModRefBS.hpp
303 psOldGen.cpp gcLocker.inline.hpp
304 psOldGen.cpp java.hpp
305 psOldGen.cpp oop.inline.hpp
306 psOldGen.cpp parallelScavengeHeap.hpp
307 psOldGen.cpp psMarkSweepDecorator.hpp
308 psOldGen.cpp psOldGen.hpp
309 psOldGen.cpp spaceDecorator.hpp
311 psOldGen.hpp psGenerationCounters.hpp
312 psOldGen.hpp mutableSpace.hpp
313 psOldGen.hpp objectStartArray.hpp
314 psOldGen.hpp psVirtualspace.hpp
315 psOldGen.hpp safepoint.hpp
316 psOldGen.hpp spaceCounters.hpp
318 psPermGen.cpp gcUtil.hpp
319 psPermGen.cpp markOop.inline.hpp
320 psPermGen.cpp markSweep.inline.hpp
321 psPermGen.cpp parallelScavengeHeap.hpp
322 psPermGen.cpp psMarkSweepDecorator.hpp
323 psPermGen.cpp psParallelCompact.hpp
324 psPermGen.cpp psPermGen.hpp
326 psPermGen.hpp psOldGen.hpp
328 psPromotionManager.cpp memRegion.hpp
329 psPromotionManager.cpp mutableSpace.hpp
330 psPromotionManager.cpp oop.inline.hpp
331 psPromotionManager.cpp oop.psgc.inline.hpp
332 psPromotionManager.cpp parallelScavengeHeap.hpp
333 psPromotionManager.cpp psOldGen.hpp
334 psPromotionManager.cpp psPromotionManager.inline.hpp
335 psPromotionManager.cpp psScavenge.inline.hpp
337 psPromotionManager.hpp allocation.hpp
338 psPromotionManager.hpp psPromotionLAB.hpp
339 psPromotionManager.hpp taskqueue.hpp
341 psPromotionManager.inline.hpp psPromotionManager.hpp
342 psPromotionManager.inline.hpp psScavenge.hpp
344 psPromotionLAB.cpp mutableSpace.hpp
345 psPromotionLAB.cpp oop.inline.hpp
346 psPromotionLAB.cpp parallelScavengeHeap.hpp
347 psPromotionLAB.cpp psPromotionLAB.hpp
349 psPromotionLAB.hpp allocation.hpp
350 psPromotionLAB.hpp objectStartArray.hpp
352 psScavenge.cpp psAdaptiveSizePolicy.hpp
353 psScavenge.cpp biasedLocking.hpp
354 psScavenge.cpp cardTableExtension.hpp
355 psScavenge.cpp collectorPolicy.hpp
356 psScavenge.cpp fprofiler.hpp
357 psScavenge.cpp gcCause.hpp
358 psScavenge.cpp gcLocker.inline.hpp
359 psScavenge.cpp gcTaskManager.hpp
360 psScavenge.cpp generationSizer.hpp
361 psScavenge.cpp handles.inline.hpp
362 psScavenge.cpp isGCActiveMark.hpp
363 psScavenge.cpp oop.inline.hpp
364 psScavenge.cpp oop.psgc.inline.hpp
365 psScavenge.cpp memoryService.hpp
366 psScavenge.cpp parallelScavengeHeap.hpp
367 psScavenge.cpp psMarkSweep.hpp
368 psScavenge.cpp psParallelCompact.hpp
369 psScavenge.cpp psScavenge.inline.hpp
370 psScavenge.cpp psTasks.hpp
371 psScavenge.cpp referencePolicy.hpp
372 psScavenge.cpp referenceProcessor.hpp
373 psScavenge.cpp resourceArea.hpp
374 psScavenge.cpp spaceDecorator.hpp
375 psScavenge.cpp stack.inline.hpp
376 psScavenge.cpp threadCritical.hpp
377 psScavenge.cpp vmThread.hpp
378 psScavenge.cpp vm_operations.hpp
380 psScavenge.hpp allocation.hpp
381 psScavenge.hpp cardTableExtension.hpp
382 psScavenge.hpp collectorCounters.hpp
383 psScavenge.hpp oop.hpp
384 psScavenge.hpp psVirtualspace.hpp
385 psScavenge.hpp stack.hpp
387 psScavenge.inline.hpp cardTableExtension.hpp
388 psScavenge.inline.hpp parallelScavengeHeap.hpp
389 psScavenge.inline.hpp psPromotionManager.hpp
390 psScavenge.inline.hpp psScavenge.hpp
392 pcTasks.cpp codeCache.hpp
393 pcTasks.cpp collectedHeap.hpp
394 pcTasks.cpp fprofiler.hpp
395 pcTasks.cpp jniHandles.hpp
396 pcTasks.cpp jvmtiExport.hpp
397 pcTasks.cpp management.hpp
398 pcTasks.cpp objArrayKlass.inline.hpp
399 pcTasks.cpp psParallelCompact.hpp
400 pcTasks.cpp pcTasks.hpp
401 pcTasks.cpp oop.inline.hpp
402 pcTasks.cpp oop.pcgc.inline.hpp
403 pcTasks.cpp systemDictionary.hpp
404 pcTasks.cpp thread.hpp
405 pcTasks.cpp universe.hpp
406 pcTasks.cpp vmThread.hpp
408 pcTasks.hpp gcTaskManager.hpp
409 pcTasks.hpp psTasks.hpp
411 psTasks.cpp cardTableExtension.hpp
412 psTasks.cpp codeCache.hpp
413 psTasks.cpp fprofiler.hpp
414 psTasks.cpp gcTaskManager.hpp
415 psTasks.cpp iterator.hpp
416 psTasks.cpp management.hpp
417 psTasks.cpp oop.inline.hpp
418 psTasks.cpp oop.psgc.inline.hpp
419 psTasks.cpp psMarkSweep.hpp
420 psTasks.cpp psPromotionManager.hpp
421 psTasks.cpp psPromotionManager.inline.hpp
422 psTasks.cpp psScavenge.hpp
423 psTasks.cpp psTasks.hpp
424 psTasks.cpp systemDictionary.hpp
425 psTasks.cpp taskqueue.hpp
426 psTasks.cpp thread.hpp
427 psTasks.cpp universe.hpp
428 psTasks.cpp vmThread.hpp
430 psTasks.hpp allocation.hpp
431 psTasks.hpp growableArray.hpp
433 psVirtualspace.hpp virtualspace.hpp
435 psVirtualspace.cpp os.hpp
436 psVirtualspace.cpp os_<os_family>.inline.hpp
437 psVirtualspace.cpp psVirtualspace.hpp
438 psVirtualspace.cpp virtualspace.hpp
440 psYoungGen.cpp gcUtil.hpp
441 psYoungGen.cpp java.hpp
442 psYoungGen.cpp oop.inline.hpp
443 psYoungGen.cpp parallelScavengeHeap.hpp
444 psYoungGen.cpp psMarkSweepDecorator.hpp
445 psYoungGen.cpp psScavenge.hpp
446 psYoungGen.cpp psYoungGen.hpp
447 psYoungGen.cpp mutableNUMASpace.hpp
448 psYoungGen.cpp spaceDecorator.hpp
450 psYoungGen.hpp psGenerationCounters.hpp
451 psYoungGen.hpp mutableSpace.hpp
452 psYoungGen.hpp objectStartArray.hpp
453 psYoungGen.hpp spaceCounters.hpp
454 psYoungGen.hpp psVirtualspace.hpp
456 vmPSOperations.cpp dtrace.hpp
457 vmPSOperations.cpp parallelScavengeHeap.inline.hpp
458 vmPSOperations.cpp gcLocker.inline.hpp
459 vmPSOperations.cpp psMarkSweep.hpp
460 vmPSOperations.cpp psScavenge.hpp
461 vmPSOperations.cpp psScavenge.inline.hpp
462 vmPSOperations.cpp vmPSOperations.hpp
464 vmPSOperations.hpp gcCause.hpp
465 vmPSOperations.hpp parallelScavengeHeap.hpp
466 vmPSOperations.hpp vmGCOperations.hpp