Mercurial > hg > graal-compiler
annotate src/share/vm/gc_implementation/includeDB_gc_shared @ 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 |
rev | line source |
---|---|
0 | 1 // |
1552
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
936
diff
changeset
|
2 // Copyright (c) 2001, 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:
936
diff
changeset
|
19 // Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA |
c18cbe5936b8
6941466: Oracle rebranding changes for Hotspot repositories
trims
parents:
936
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:
936
diff
changeset
|
21 // questions. |
12
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
22 // |
0 | 23 // |
24 | |
25 // NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! | |
26 | |
342
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
27 concurrentGCThread.cpp concurrentGCThread.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
28 concurrentGCThread.cpp init.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
29 concurrentGCThread.cpp instanceRefKlass.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
30 concurrentGCThread.cpp interfaceSupport.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
31 concurrentGCThread.cpp java.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
32 concurrentGCThread.cpp javaCalls.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
33 concurrentGCThread.cpp oop.inline.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
34 concurrentGCThread.cpp systemDictionary.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
35 |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
36 concurrentGCThread.hpp thread.hpp |
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
37 |
12
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
38 allocationStats.cpp allocationStats.hpp |
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
39 allocationStats.cpp ostream.hpp |
0 | 40 |
12
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
41 allocationStats.hpp allocation.hpp |
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
42 allocationStats.hpp gcUtil.hpp |
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
43 allocationStats.hpp globalDefinitions.hpp |
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
44 |
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
45 gcAdaptivePolicyCounters.hpp adaptiveSizePolicy.hpp |
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
46 gcAdaptivePolicyCounters.hpp gcPolicyCounters.hpp |
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
47 |
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
48 gcAdaptivePolicyCounters.cpp resourceArea.hpp |
0 | 49 gcAdaptivePolicyCounters.cpp gcAdaptivePolicyCounters.hpp |
50 | |
51 gSpaceCounters.cpp generation.hpp | |
52 gSpaceCounters.cpp resourceArea.hpp | |
53 gSpaceCounters.cpp gSpaceCounters.hpp | |
54 | |
55 gSpaceCounters.hpp generation.hpp | |
56 gSpaceCounters.hpp perfData.hpp | |
57 gSpaceCounters.hpp generationCounters.hpp | |
58 | |
59 immutableSpace.cpp immutableSpace.hpp | |
60 immutableSpace.cpp oop.inline.hpp | |
61 immutableSpace.cpp universe.hpp | |
62 | |
63 isGCActiveMark.hpp parallelScavengeHeap.hpp | |
64 | |
12
6432c3bb6240
6668743: CMS: Consolidate block statistics reporting code
ysr
parents:
0
diff
changeset
|
65 markSweep.inline.hpp psParallelCompact.hpp |
0 | 66 |
67 mutableNUMASpace.cpp mutableNUMASpace.hpp | |
165
437d03ea40b1
6703888: Compressed Oops: use the 32-bits gap after klass in a object
kvn
parents:
12
diff
changeset
|
68 mutableNUMASpace.cpp oop.inline.hpp |
0 | 69 mutableNUMASpace.cpp sharedHeap.hpp |
263
12eea04c8b06
6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents:
165
diff
changeset
|
70 mutableNUMASpace.cpp spaceDecorator.hpp |
0 | 71 mutableNUMASpace.cpp thread_<os_family>.inline.hpp |
72 | |
73 mutableNUMASpace.hpp mutableSpace.hpp | |
74 mutableNUMASpace.hpp gcUtil.hpp | |
75 | |
76 mutableSpace.cpp mutableSpace.hpp | |
77 mutableSpace.cpp oop.inline.hpp | |
78 mutableSpace.cpp safepoint.hpp | |
263
12eea04c8b06
6672698: mangle_unused_area() should not remangle the entire heap at each collection.
jmasa
parents:
165
diff
changeset
|
79 mutableSpace.cpp spaceDecorator.hpp |
0 | 80 mutableSpace.cpp thread.hpp |
81 | |
82 spaceCounters.cpp resourceArea.hpp | |
83 spaceCounters.cpp spaceCounters.hpp | |
84 | |
85 spaceCounters.hpp immutableSpace.hpp | |
86 spaceCounters.hpp mutableSpace.hpp | |
87 spaceCounters.hpp perfData.hpp | |
88 spaceCounters.hpp generationCounters.hpp | |
342
37f87013dfd8
6711316: Open source the Garbage-First garbage collector
ysr
parents:
12
diff
changeset
|
89 |
526 | 90 vmGCOperations.cpp g1CollectedHeap.inline.hpp |