src/share/vm/gc_implementation/includeDB_gc_concurrentMarkSweep

Mon, 02 Aug 2010 12:51:43 -0700

author
johnc
date
Mon, 02 Aug 2010 12:51:43 -0700
changeset 2060
2d160770d2e5
parent 2058
f6f3eef8a521
child 2071
be3f9c242c9d
permissions
-rw-r--r--

6814437: G1: remove the _new_refs array
Summary: The per-worker _new_refs array is used to hold references that point into the collection set. It is populated during RSet updating and subsequently processed. In the event of an evacuation failure it processed again to recreate the RSets of regions in the collection set. Remove the per-worker _new_refs array by processing the references directly. Use a DirtyCardQueue to hold the cards containing the references so that the RSets of regions in the collection set can be recreated when handling an evacuation failure.
Reviewed-by: iveresov, jmasa, tonyp

duke@435 1 //
trims@1907 2 // Copyright (c) 2004, 2009, Oracle and/or its affiliates. All rights reserved.
duke@435 3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
duke@435 4 //
duke@435 5 // This code is free software; you can redistribute it and/or modify it
duke@435 6 // under the terms of the GNU General Public License version 2 only, as
duke@435 7 // published by the Free Software Foundation.
duke@435 8 //
duke@435 9 // This code is distributed in the hope that it will be useful, but WITHOUT
duke@435 10 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
duke@435 11 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
duke@435 12 // version 2 for more details (a copy is included in the LICENSE file that
duke@435 13 // accompanied this code).
duke@435 14 //
duke@435 15 // You should have received a copy of the GNU General Public License version
duke@435 16 // 2 along with this work; if not, write to the Free Software Foundation,
duke@435 17 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
duke@435 18 //
trims@1907 19 // Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
trims@1907 20 // or visit www.oracle.com if you need additional information or have any
trims@1907 21 // questions.
duke@435 22 //
duke@435 23 //
duke@435 24
duke@435 25 // NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps!
duke@435 26
duke@435 27 binaryTreeDictionary.cpp allocationStats.hpp
duke@435 28 binaryTreeDictionary.cpp binaryTreeDictionary.hpp
duke@435 29 binaryTreeDictionary.cpp globals.hpp
duke@435 30 binaryTreeDictionary.cpp ostream.hpp
coleenp@963 31 binaryTreeDictionary.cpp space.inline.hpp
jmasa@698 32 binaryTreeDictionary.cpp spaceDecorator.hpp
duke@435 33
duke@435 34 binaryTreeDictionary.hpp freeBlockDictionary.hpp
duke@435 35 binaryTreeDictionary.hpp freeList.hpp
duke@435 36
duke@435 37 cmsAdaptiveSizePolicy.cpp cmsAdaptiveSizePolicy.hpp
duke@435 38 cmsAdaptiveSizePolicy.cpp defNewGeneration.hpp
duke@435 39 cmsAdaptiveSizePolicy.cpp gcStats.hpp
duke@435 40 cmsAdaptiveSizePolicy.cpp genCollectedHeap.hpp
duke@435 41 cmsAdaptiveSizePolicy.cpp thread.hpp
duke@435 42 cmsAdaptiveSizePolicy.cpp os_<os_family>.inline.hpp
duke@435 43
duke@435 44 cmsAdaptiveSizePolicy.hpp adaptiveSizePolicy.hpp
duke@435 45 cmsAdaptiveSizePolicy.hpp timer.hpp
duke@435 46
duke@435 47 cmsCollectorPolicy.cpp arguments.hpp
duke@435 48 cmsCollectorPolicy.cpp cardTableRS.hpp
duke@435 49 cmsCollectorPolicy.cpp cmsAdaptiveSizePolicy.hpp
duke@435 50 cmsCollectorPolicy.cpp cmsGCAdaptivePolicyCounters.hpp
duke@435 51 cmsCollectorPolicy.cpp cmsCollectorPolicy.hpp
duke@435 52 cmsCollectorPolicy.cpp collectorPolicy.hpp
duke@435 53 cmsCollectorPolicy.cpp gcLocker.inline.hpp
duke@435 54 cmsCollectorPolicy.cpp genCollectedHeap.hpp
duke@435 55 cmsCollectorPolicy.cpp gcPolicyCounters.hpp
duke@435 56 cmsCollectorPolicy.cpp generationSpec.hpp
duke@435 57 cmsCollectorPolicy.cpp globals_extension.hpp
duke@435 58 cmsCollectorPolicy.cpp handles.inline.hpp
duke@435 59 cmsCollectorPolicy.cpp java.hpp
duke@435 60 cmsCollectorPolicy.cpp parNewGeneration.hpp
duke@435 61 cmsCollectorPolicy.cpp space.hpp
duke@435 62 cmsCollectorPolicy.cpp thread_<os_family>.inline.hpp
duke@435 63 cmsCollectorPolicy.cpp universe.hpp
duke@435 64 cmsCollectorPolicy.cpp vmGCOperations.hpp
duke@435 65 cmsCollectorPolicy.cpp vmThread.hpp
duke@435 66
duke@435 67 cmsCollectorPolicy.hpp collectorPolicy.hpp
duke@435 68
duke@435 69 cmsGCAdaptivePolicyCounters.cpp cmsGCAdaptivePolicyCounters.hpp
duke@435 70 cmsGCAdaptivePolicyCounters.cpp resourceArea.hpp
duke@435 71
duke@435 72 cmsGCAdaptivePolicyCounters.hpp cmsAdaptiveSizePolicy.hpp
duke@435 73 cmsGCAdaptivePolicyCounters.hpp gcAdaptivePolicyCounters.hpp
duke@435 74 cmsGCAdaptivePolicyCounters.hpp gcStats.hpp
duke@435 75 cmsGCAdaptivePolicyCounters.hpp perfData.hpp
duke@435 76
duke@435 77 cmsLockVerifier.cpp cmsLockVerifier.hpp
duke@435 78 cmsLockVerifier.cpp concurrentMarkSweepThread.hpp
duke@435 79 cmsLockVerifier.cpp vmThread.hpp
duke@435 80
duke@435 81 cmsLockVerifier.hpp mutex.hpp
duke@435 82
duke@435 83 cmsOopClosures.hpp genOopClosures.hpp
duke@435 84
duke@435 85 cmsOopClosures.inline.hpp cmsOopClosures.hpp
duke@435 86 cmsOopClosures.inline.hpp concurrentMarkSweepGeneration.hpp
duke@435 87
duke@435 88 cmsPermGen.cpp blockOffsetTable.hpp
duke@435 89 cmsPermGen.cpp cSpaceCounters.hpp
duke@435 90 cmsPermGen.cpp cmsPermGen.hpp
duke@435 91 cmsPermGen.cpp collectedHeap.inline.hpp
duke@435 92 cmsPermGen.cpp compactPermGen.hpp
duke@435 93 cmsPermGen.cpp concurrentMarkSweepGeneration.inline.hpp
duke@435 94 cmsPermGen.cpp genCollectedHeap.hpp
duke@435 95 cmsPermGen.cpp generation.inline.hpp
duke@435 96 cmsPermGen.cpp java.hpp
duke@435 97 cmsPermGen.cpp oop.inline.hpp
duke@435 98 cmsPermGen.cpp permGen.hpp
duke@435 99 cmsPermGen.cpp universe.hpp
duke@435 100
duke@435 101 cmsPermGen.hpp concurrentMarkSweepGeneration.hpp
duke@435 102 cmsPermGen.hpp permGen.hpp
duke@435 103
duke@435 104 compactibleFreeListSpace.cpp allocation.inline.hpp
duke@435 105 compactibleFreeListSpace.cpp blockOffsetTable.inline.hpp
duke@435 106 compactibleFreeListSpace.cpp cmsLockVerifier.hpp
duke@435 107 compactibleFreeListSpace.cpp collectedHeap.hpp
duke@435 108 compactibleFreeListSpace.cpp compactibleFreeListSpace.hpp
duke@435 109 compactibleFreeListSpace.cpp concurrentMarkSweepGeneration.inline.hpp
duke@435 110 compactibleFreeListSpace.cpp concurrentMarkSweepThread.hpp
duke@435 111 compactibleFreeListSpace.cpp copy.hpp
duke@435 112 compactibleFreeListSpace.cpp globals.hpp
duke@435 113 compactibleFreeListSpace.cpp handles.inline.hpp
duke@435 114 compactibleFreeListSpace.cpp init.hpp
duke@435 115 compactibleFreeListSpace.cpp java.hpp
duke@435 116 compactibleFreeListSpace.cpp liveRange.hpp
duke@435 117 compactibleFreeListSpace.cpp oop.inline.hpp
duke@435 118 compactibleFreeListSpace.cpp resourceArea.hpp
jmasa@698 119 compactibleFreeListSpace.cpp spaceDecorator.hpp
duke@435 120 compactibleFreeListSpace.cpp universe.inline.hpp
duke@435 121 compactibleFreeListSpace.cpp vmThread.hpp
duke@435 122
duke@435 123 compactibleFreeListSpace.hpp binaryTreeDictionary.hpp
duke@435 124 compactibleFreeListSpace.hpp freeList.hpp
ysr@1876 125 compactibleFreeListSpace.hpp promotionInfo.hpp
duke@435 126 compactibleFreeListSpace.hpp space.hpp
duke@435 127
duke@435 128 compactingPermGenGen.cpp concurrentMarkSweepGeneration.inline.hpp
duke@435 129
duke@435 130 concurrentMarkSweepGeneration.cpp cardTableRS.hpp
duke@435 131 concurrentMarkSweepGeneration.cpp cmsAdaptiveSizePolicy.hpp
duke@435 132 concurrentMarkSweepGeneration.cpp cmsCollectorPolicy.hpp
duke@435 133 concurrentMarkSweepGeneration.cpp cmsGCAdaptivePolicyCounters.hpp
duke@435 134 concurrentMarkSweepGeneration.cpp cmsOopClosures.inline.hpp
duke@435 135 concurrentMarkSweepGeneration.cpp codeCache.hpp
duke@435 136 concurrentMarkSweepGeneration.cpp collectedHeap.inline.hpp
duke@435 137 concurrentMarkSweepGeneration.cpp collectorCounters.hpp
duke@435 138 concurrentMarkSweepGeneration.cpp collectorPolicy.hpp
duke@435 139 concurrentMarkSweepGeneration.cpp compactibleFreeListSpace.hpp
duke@435 140 concurrentMarkSweepGeneration.cpp concurrentMarkSweepGeneration.inline.hpp
duke@435 141 concurrentMarkSweepGeneration.cpp concurrentMarkSweepThread.hpp
duke@435 142 concurrentMarkSweepGeneration.cpp gcLocker.inline.hpp
duke@435 143 concurrentMarkSweepGeneration.cpp genCollectedHeap.hpp
duke@435 144 concurrentMarkSweepGeneration.cpp genMarkSweep.hpp
duke@435 145 concurrentMarkSweepGeneration.cpp genOopClosures.inline.hpp
duke@435 146 concurrentMarkSweepGeneration.cpp globals_extension.hpp
duke@435 147 concurrentMarkSweepGeneration.cpp handles.inline.hpp
duke@435 148 concurrentMarkSweepGeneration.cpp isGCActiveMark.hpp
jmasa@1370 149 concurrentMarkSweepGeneration.cpp iterator.hpp
duke@435 150 concurrentMarkSweepGeneration.cpp java.hpp
duke@435 151 concurrentMarkSweepGeneration.cpp jvmtiExport.hpp
kevinw@2058 152 concurrentMarkSweepGeneration.cpp memoryService.hpp
duke@435 153 concurrentMarkSweepGeneration.cpp oop.inline.hpp
duke@435 154 concurrentMarkSweepGeneration.cpp parNewGeneration.hpp
duke@435 155 concurrentMarkSweepGeneration.cpp referencePolicy.hpp
duke@435 156 concurrentMarkSweepGeneration.cpp resourceArea.hpp
duke@435 157 concurrentMarkSweepGeneration.cpp runtimeService.hpp
duke@435 158 concurrentMarkSweepGeneration.cpp symbolTable.hpp
duke@435 159 concurrentMarkSweepGeneration.cpp systemDictionary.hpp
duke@435 160 concurrentMarkSweepGeneration.cpp vmCMSOperations.hpp
duke@435 161 concurrentMarkSweepGeneration.cpp vmThread.hpp
duke@435 162
ysr@777 163 concurrentMarkSweepGeneration.hpp bitMap.inline.hpp
duke@435 164 concurrentMarkSweepGeneration.hpp freeBlockDictionary.hpp
duke@435 165 concurrentMarkSweepGeneration.hpp gSpaceCounters.hpp
duke@435 166 concurrentMarkSweepGeneration.hpp gcStats.hpp
duke@435 167 concurrentMarkSweepGeneration.hpp generation.hpp
duke@435 168 concurrentMarkSweepGeneration.hpp generationCounters.hpp
kevinw@2058 169 concurrentMarkSweepGeneration.hpp memoryService.hpp
duke@435 170 concurrentMarkSweepGeneration.hpp mutexLocker.hpp
duke@435 171 concurrentMarkSweepGeneration.hpp taskqueue.hpp
duke@435 172 concurrentMarkSweepGeneration.hpp virtualspace.hpp
duke@435 173 concurrentMarkSweepGeneration.hpp yieldingWorkgroup.hpp
duke@435 174
duke@435 175 concurrentMarkSweepGeneration.inline.hpp cmsLockVerifier.hpp
duke@435 176 concurrentMarkSweepGeneration.inline.hpp compactibleFreeListSpace.hpp
duke@435 177 concurrentMarkSweepGeneration.inline.hpp concurrentMarkSweepGeneration.hpp
duke@435 178 concurrentMarkSweepGeneration.inline.hpp concurrentMarkSweepThread.hpp
duke@435 179 concurrentMarkSweepGeneration.inline.hpp defNewGeneration.hpp
duke@435 180 concurrentMarkSweepGeneration.inline.hpp gcUtil.hpp
duke@435 181
duke@435 182 concurrentMarkSweepThread.cpp concurrentMarkSweepGeneration.inline.hpp
duke@435 183 concurrentMarkSweepThread.cpp concurrentMarkSweepThread.hpp
duke@435 184 concurrentMarkSweepThread.cpp genCollectedHeap.hpp
duke@435 185 concurrentMarkSweepThread.cpp init.hpp
duke@435 186 concurrentMarkSweepThread.cpp instanceRefKlass.hpp
duke@435 187 concurrentMarkSweepThread.cpp interfaceSupport.hpp
duke@435 188 concurrentMarkSweepThread.cpp java.hpp
duke@435 189 concurrentMarkSweepThread.cpp javaCalls.hpp
duke@435 190 concurrentMarkSweepThread.cpp mutexLocker.hpp
duke@435 191 concurrentMarkSweepThread.cpp oop.inline.hpp
duke@435 192 concurrentMarkSweepThread.cpp os.hpp
duke@435 193 concurrentMarkSweepThread.cpp systemDictionary.hpp
duke@435 194 concurrentMarkSweepThread.cpp vmThread.hpp
duke@435 195
duke@435 196 concurrentMarkSweepThread.hpp concurrentGCThread.hpp
duke@435 197 concurrentMarkSweepThread.hpp concurrentMarkSweepGeneration.hpp
duke@435 198 concurrentMarkSweepThread.hpp thread_<os_family>.inline.hpp
duke@435 199
duke@435 200 freeBlockDictionary.cpp freeBlockDictionary.hpp
duke@435 201 freeBlockDictionary.cpp thread_<os_family>.inline.hpp
duke@435 202
duke@435 203 freeBlockDictionary.hpp allocation.hpp
duke@435 204 freeBlockDictionary.hpp debug.hpp
coleenp@622 205 freeBlockDictionary.hpp freeChunk.hpp
duke@435 206 freeBlockDictionary.hpp globalDefinitions.hpp
duke@435 207 freeBlockDictionary.hpp memRegion.hpp
duke@435 208 freeBlockDictionary.hpp mutex.hpp
duke@435 209 freeBlockDictionary.hpp ostream.hpp
duke@435 210
duke@435 211 freeChunk.cpp copy.hpp
duke@435 212 freeChunk.cpp freeBlockDictionary.hpp
duke@435 213
coleenp@622 214 freeChunk.hpp allocation.hpp
coleenp@622 215 freeChunk.hpp debug.hpp
coleenp@622 216 freeChunk.hpp globalDefinitions.hpp
coleenp@622 217 freeChunk.hpp markOop.hpp
coleenp@622 218 freeChunk.hpp memRegion.hpp
coleenp@622 219 freeChunk.hpp mutex.hpp
coleenp@622 220 freeChunk.hpp ostream.hpp
coleenp@622 221
duke@435 222 freeList.cpp freeBlockDictionary.hpp
duke@435 223 freeList.cpp freeList.hpp
duke@435 224 freeList.cpp globals.hpp
duke@435 225 freeList.cpp mutex.hpp
duke@435 226 freeList.cpp sharedHeap.hpp
ysr@1580 227 freeList.cpp vmThread.hpp
duke@435 228
duke@435 229 freeList.hpp allocationStats.hpp
duke@435 230
ysr@1876 231 promotionInfo.cpp compactibleFreeListSpace.hpp
ysr@1876 232 promotionInfo.cpp markOop.inline.hpp
ysr@1876 233 promotionInfo.cpp oop.inline.hpp
ysr@1876 234 promotionInfo.cpp promotionInfo.hpp
ysr@1876 235
ysr@1876 236 promotionInfo.hpp allocation.hpp
ysr@1876 237 promotionInfo.hpp freeChunk.hpp
ysr@1876 238
duke@435 239 vmCMSOperations.cpp concurrentMarkSweepGeneration.inline.hpp
duke@435 240 vmCMSOperations.cpp concurrentMarkSweepThread.hpp
duke@435 241 vmCMSOperations.cpp dtrace.hpp
duke@435 242 vmCMSOperations.cpp gcLocker.inline.hpp
duke@435 243 vmCMSOperations.cpp isGCActiveMark.hpp
duke@435 244 vmCMSOperations.cpp interfaceSupport.hpp
duke@435 245 vmCMSOperations.cpp vmCMSOperations.hpp
duke@435 246
duke@435 247 vmCMSOperations.hpp concurrentMarkSweepGeneration.hpp
duke@435 248 vmCMSOperations.hpp gcCause.hpp
duke@435 249 vmCMSOperations.hpp vm_operations.hpp
duke@435 250 vmCMSOperations.hpp vmGCOperations.hpp
duke@435 251
duke@435 252 yieldingWorkgroup.cpp yieldingWorkgroup.hpp
duke@435 253
duke@435 254 yieldingWorkgroup.hpp workgroup.hpp

mercurial