src/share/vm/gc_implementation/includeDB_gc_g1

Thu, 20 Nov 2008 16:56:09 -0800

author
ysr
date
Thu, 20 Nov 2008 16:56:09 -0800
changeset 888
c96030fff130
parent 794
d515536da189
child 905
ad8c8ca4ab0f
permissions
-rw-r--r--

6684579: SoftReference processing can be made more efficient
Summary: For current soft-ref clearing policies, we can decide at marking time if a soft-reference will definitely not be cleared, postponing the decision of whether it will definitely be cleared to the final reference processing phase. This can be especially beneficial in the case of concurrent collectors where the marking is usually concurrent but reference processing is usually not.
Reviewed-by: jmasa

ysr@777 1 //
ysr@777 2 // Copyright 2004-2006 Sun Microsystems, Inc. All Rights Reserved.
ysr@777 3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ysr@777 4 //
ysr@777 5 // This code is free software; you can redistribute it and/or modify it
ysr@777 6 // under the terms of the GNU General Public License version 2 only, as
ysr@777 7 // published by the Free Software Foundation.
ysr@777 8 //
ysr@777 9 // This code is distributed in the hope that it will be useful, but WITHOUT
ysr@777 10 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ysr@777 11 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ysr@777 12 // version 2 for more details (a copy is included in the LICENSE file that
ysr@777 13 // accompanied this code).
ysr@777 14 //
ysr@777 15 // You should have received a copy of the GNU General Public License version
ysr@777 16 // 2 along with this work; if not, write to the Free Software Foundation,
ysr@777 17 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ysr@777 18 //
ysr@777 19 // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
ysr@777 20 // CA 95054 USA or visit www.sun.com if you need additional information or
ysr@777 21 // have any questions.
iveresov@793 22 //
ysr@777 23 //
ysr@777 24
ysr@777 25 // NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps!
ysr@777 26
ysr@777 27 bufferingOopClosure.hpp genOopClosures.hpp
ysr@777 28 bufferingOopClosure.hpp generation.hpp
ysr@777 29 bufferingOopClosure.hpp os.hpp
ysr@777 30
ysr@777 31 cardTableRS.cpp concurrentMark.hpp
ysr@777 32 cardTableRS.cpp g1SATBCardTableModRefBS.hpp
ysr@777 33
ysr@777 34 collectionSetChooser.cpp g1CollectedHeap.hpp
ysr@777 35 collectionSetChooser.cpp g1CollectorPolicy.hpp
ysr@777 36 collectionSetChooser.cpp collectionSetChooser.hpp
ysr@777 37
ysr@777 38 collectionSetChooser.hpp heapRegion.hpp
ysr@777 39 collectionSetChooser.hpp growableArray.hpp
ysr@777 40
ysr@777 41 concurrentG1Refine.cpp atomic.hpp
ysr@777 42 concurrentG1Refine.cpp concurrentG1Refine.hpp
ysr@777 43 concurrentG1Refine.cpp concurrentG1RefineThread.hpp
ysr@777 44 concurrentG1Refine.cpp copy.hpp
ysr@777 45 concurrentG1Refine.cpp g1CollectedHeap.hpp
ysr@777 46 concurrentG1Refine.cpp g1RemSet.hpp
ysr@777 47
ysr@777 48 concurrentG1Refine.hpp globalDefinitions.hpp
ysr@777 49
ysr@777 50 concurrentG1RefineThread.cpp concurrentG1Refine.hpp
ysr@777 51 concurrentG1RefineThread.cpp concurrentG1RefineThread.hpp
ysr@777 52 concurrentG1RefineThread.cpp g1CollectedHeap.hpp
ysr@777 53 concurrentG1RefineThread.cpp g1CollectorPolicy.hpp
ysr@777 54 concurrentG1RefineThread.cpp handles.inline.hpp
ysr@777 55 concurrentG1RefineThread.cpp mutexLocker.hpp
ysr@777 56 concurrentG1RefineThread.cpp resourceArea.hpp
ysr@777 57
ysr@777 58 concurrentG1RefineThread.hpp concurrentGCThread.hpp
ysr@777 59 concurrentG1RefineThread.hpp coTracker.hpp
ysr@777 60
ysr@777 61 concurrentMark.cpp concurrentMark.hpp
ysr@777 62 concurrentMark.cpp concurrentMarkThread.inline.hpp
ysr@777 63 concurrentMark.cpp g1CollectedHeap.inline.hpp
ysr@777 64 concurrentMark.cpp g1CollectorPolicy.hpp
ysr@777 65 concurrentMark.cpp g1RemSet.hpp
ysr@777 66 concurrentMark.cpp gcOverheadReporter.hpp
ysr@777 67 concurrentMark.cpp genOopClosures.inline.hpp
ysr@777 68 concurrentMark.cpp heapRegionRemSet.hpp
ysr@777 69 concurrentMark.cpp heapRegionSeq.inline.hpp
ysr@777 70 concurrentMark.cpp handles.inline.hpp
ysr@777 71 concurrentMark.cpp java.hpp
ysr@777 72 concurrentMark.cpp oop.inline.hpp
ysr@777 73 concurrentMark.cpp referencePolicy.hpp
ysr@777 74 concurrentMark.cpp resourceArea.hpp
ysr@777 75 concurrentMark.cpp symbolTable.hpp
ysr@777 76
ysr@777 77 concurrentMark.hpp coTracker.hpp
ysr@777 78 concurrentMark.hpp heapRegion.hpp
ysr@777 79 concurrentMark.hpp taskqueue.hpp
ysr@777 80
ysr@777 81 concurrentMarkThread.cpp concurrentMarkThread.inline.hpp
ysr@777 82 concurrentMarkThread.cpp g1CollectedHeap.inline.hpp
ysr@777 83 concurrentMarkThread.cpp g1CollectorPolicy.hpp
ysr@777 84 concurrentMarkThread.cpp g1MMUTracker.hpp
ysr@777 85 concurrentMarkThread.cpp resourceArea.hpp
ysr@777 86 concurrentMarkThread.cpp vm_operations_g1.hpp
ysr@777 87 concurrentMarkThread.cpp vmThread.hpp
ysr@777 88
ysr@777 89 concurrentMarkThread.hpp concurrentGCThread.hpp
ysr@777 90
ysr@777 91 concurrentMarkThread.inline.hpp concurrentMark.hpp
ysr@777 92 concurrentMarkThread.inline.hpp concurrentMarkThread.hpp
ysr@777 93
ysr@777 94 concurrentZFThread.cpp concurrentZFThread.hpp
ysr@777 95 concurrentZFThread.cpp heapRegion.hpp
ysr@777 96 concurrentZFThread.cpp g1CollectedHeap.inline.hpp
ysr@777 97 concurrentZFThread.cpp copy.hpp
ysr@777 98 concurrentZFThread.cpp mutexLocker.hpp
ysr@777 99 concurrentZFThread.cpp space.inline.hpp
ysr@777 100
ysr@777 101 concurrentZFThread.hpp concurrentGCThread.hpp
ysr@777 102 concurrentZFThread.hpp coTracker.hpp
iveresov@793 103
ysr@777 104 dirtyCardQueue.cpp atomic.hpp
ysr@777 105 dirtyCardQueue.cpp dirtyCardQueue.hpp
ysr@777 106 dirtyCardQueue.cpp heapRegionRemSet.hpp
ysr@777 107 dirtyCardQueue.cpp mutexLocker.hpp
ysr@777 108 dirtyCardQueue.cpp ptrQueue.inline.hpp
ysr@777 109 dirtyCardQueue.cpp safepoint.hpp
ysr@777 110 dirtyCardQueue.cpp thread.hpp
ysr@777 111 dirtyCardQueue.cpp thread_<os_family>.inline.hpp
ysr@777 112 dirtyCardQueue.cpp workgroup.hpp
ysr@777 113
ysr@777 114 dirtyCardQueue.hpp allocation.hpp
ysr@777 115 dirtyCardQueue.hpp ptrQueue.hpp
ysr@777 116
ysr@777 117 g1BlockOffsetTable.cpp g1BlockOffsetTable.inline.hpp
ysr@777 118 g1BlockOffsetTable.cpp java.hpp
ysr@777 119 g1BlockOffsetTable.cpp oop.inline.hpp
ysr@777 120 g1BlockOffsetTable.cpp space.hpp
ysr@777 121
ysr@777 122 g1BlockOffsetTable.hpp globalDefinitions.hpp
ysr@777 123 g1BlockOffsetTable.hpp memRegion.hpp
ysr@777 124 g1BlockOffsetTable.hpp virtualspace.hpp
ysr@777 125
ysr@777 126 g1BlockOffsetTable.inline.hpp g1BlockOffsetTable.hpp
ysr@777 127 g1BlockOffsetTable.inline.hpp space.hpp
ysr@777 128
ysr@777 129 g1CollectedHeap.cpp aprofiler.hpp
ysr@777 130 g1CollectedHeap.cpp bufferingOopClosure.hpp
ysr@777 131 g1CollectedHeap.cpp concurrentG1Refine.hpp
ysr@777 132 g1CollectedHeap.cpp concurrentG1RefineThread.hpp
ysr@777 133 g1CollectedHeap.cpp concurrentMarkThread.inline.hpp
ysr@777 134 g1CollectedHeap.cpp concurrentZFThread.hpp
ysr@777 135 g1CollectedHeap.cpp g1CollectedHeap.inline.hpp
ysr@777 136 g1CollectedHeap.cpp g1CollectorPolicy.hpp
ysr@777 137 g1CollectedHeap.cpp g1MarkSweep.hpp
ysr@777 138 g1CollectedHeap.cpp g1RemSet.hpp
ysr@777 139 g1CollectedHeap.cpp g1OopClosures.inline.hpp
ysr@777 140 g1CollectedHeap.cpp genOopClosures.inline.hpp
ysr@777 141 g1CollectedHeap.cpp gcLocker.inline.hpp
ysr@777 142 g1CollectedHeap.cpp gcOverheadReporter.hpp
ysr@777 143 g1CollectedHeap.cpp generationSpec.hpp
ysr@777 144 g1CollectedHeap.cpp heapRegionRemSet.hpp
ysr@777 145 g1CollectedHeap.cpp heapRegionSeq.inline.hpp
ysr@777 146 g1CollectedHeap.cpp icBuffer.hpp
ysr@777 147 g1CollectedHeap.cpp isGCActiveMark.hpp
ysr@777 148 g1CollectedHeap.cpp oop.inline.hpp
ysr@777 149 g1CollectedHeap.cpp oop.pcgc.inline.hpp
ysr@777 150 g1CollectedHeap.cpp parGCAllocBuffer.hpp
ysr@777 151 g1CollectedHeap.cpp vm_operations_g1.hpp
ysr@777 152 g1CollectedHeap.cpp vmThread.hpp
ysr@777 153
ysr@777 154 g1CollectedHeap.hpp barrierSet.hpp
ysr@777 155 g1CollectedHeap.hpp heapRegion.hpp
ysr@777 156 g1CollectedHeap.hpp memRegion.hpp
ysr@777 157 g1CollectedHeap.hpp sharedHeap.hpp
ysr@777 158
ysr@777 159 g1CollectedHeap.inline.hpp concurrentMark.hpp
ysr@777 160 g1CollectedHeap.inline.hpp g1CollectedHeap.hpp
ysr@777 161 g1CollectedHeap.inline.hpp heapRegionSeq.hpp
ysr@777 162 g1CollectedHeap.inline.hpp taskqueue.hpp
ysr@777 163
ysr@777 164 g1CollectorPolicy.cpp concurrentG1Refine.hpp
ysr@777 165 g1CollectorPolicy.cpp concurrentMark.hpp
ysr@777 166 g1CollectorPolicy.cpp concurrentMarkThread.inline.hpp
ysr@777 167 g1CollectorPolicy.cpp debug.hpp
ysr@777 168 g1CollectorPolicy.cpp java.hpp
ysr@777 169 g1CollectorPolicy.cpp g1CollectedHeap.hpp
ysr@777 170 g1CollectorPolicy.cpp g1CollectorPolicy.hpp
ysr@777 171 g1CollectorPolicy.cpp heapRegionRemSet.hpp
ysr@777 172 g1CollectorPolicy.cpp mutexLocker.hpp
ysr@777 173
ysr@777 174 g1CollectorPolicy.hpp collectorPolicy.hpp
ysr@777 175 g1CollectorPolicy.hpp collectionSetChooser.hpp
ysr@777 176 g1CollectorPolicy.hpp g1MMUTracker.hpp
ysr@777 177
ysr@777 178 g1_globals.cpp g1_globals.hpp
ysr@777 179
ysr@777 180 g1_globals.hpp globals.hpp
ysr@777 181
ysr@777 182 globals.cpp g1_globals.hpp
ysr@777 183 top.hpp g1_globals.hpp
ysr@777 184
ysr@777 185 g1MarkSweep.cpp aprofiler.hpp
iveresov@793 186 g1MarkSweep.cpp biasedLocking.hpp
ysr@777 187 g1MarkSweep.cpp codeCache.hpp
ysr@777 188 g1MarkSweep.cpp events.hpp
ysr@777 189 g1MarkSweep.cpp fprofiler.hpp
ysr@777 190 g1MarkSweep.hpp g1CollectedHeap.hpp
ysr@777 191 g1MarkSweep.cpp g1MarkSweep.hpp
ysr@777 192 g1MarkSweep.cpp gcLocker.hpp
ysr@777 193 g1MarkSweep.cpp genCollectedHeap.hpp
ysr@777 194 g1MarkSweep.hpp heapRegion.hpp
ysr@777 195 g1MarkSweep.cpp icBuffer.hpp
ysr@777 196 g1MarkSweep.cpp instanceRefKlass.hpp
ysr@777 197 g1MarkSweep.cpp javaClasses.hpp
ysr@777 198 g1MarkSweep.cpp jvmtiExport.hpp
ysr@777 199 g1MarkSweep.cpp copy.hpp
ysr@777 200 g1MarkSweep.cpp modRefBarrierSet.hpp
ysr@777 201 g1MarkSweep.cpp oop.inline.hpp
ysr@777 202 g1MarkSweep.cpp referencePolicy.hpp
ysr@777 203 g1MarkSweep.cpp space.hpp
ysr@777 204 g1MarkSweep.cpp symbolTable.hpp
ysr@777 205 g1MarkSweep.cpp synchronizer.hpp
ysr@777 206 g1MarkSweep.cpp systemDictionary.hpp
ysr@777 207 g1MarkSweep.cpp thread.hpp
ysr@777 208 g1MarkSweep.cpp vmSymbols.hpp
ysr@777 209 g1MarkSweep.cpp vmThread.hpp
ysr@777 210
ysr@777 211 g1MarkSweep.hpp generation.hpp
ysr@777 212 g1MarkSweep.hpp growableArray.hpp
ysr@777 213 g1MarkSweep.hpp markOop.hpp
ysr@777 214 g1MarkSweep.hpp genMarkSweep.hpp
ysr@777 215 g1MarkSweep.hpp oop.hpp
ysr@777 216 g1MarkSweep.hpp timer.hpp
ysr@777 217 g1MarkSweep.hpp universe.hpp
ysr@777 218
ysr@777 219 g1OopClosures.inline.hpp concurrentMark.hpp
ysr@777 220 g1OopClosures.inline.hpp g1OopClosures.hpp
ysr@777 221 g1OopClosures.inline.hpp g1CollectedHeap.hpp
ysr@777 222 g1OopClosures.inline.hpp g1RemSet.hpp
ysr@777 223
ysr@777 224 g1MMUTracker.cpp g1MMUTracker.hpp
ysr@777 225 g1MMUTracker.cpp ostream.hpp
ysr@777 226 g1MMUTracker.cpp mutexLocker.hpp
ysr@777 227
ysr@777 228 g1MMUTracker.hpp debug.hpp
ysr@777 229
ysr@777 230 g1RemSet.cpp bufferingOopClosure.hpp
ysr@777 231 g1RemSet.cpp concurrentG1Refine.hpp
ysr@777 232 g1RemSet.cpp concurrentG1RefineThread.hpp
ysr@777 233 g1RemSet.cpp g1BlockOffsetTable.inline.hpp
ysr@777 234 g1RemSet.cpp g1CollectedHeap.inline.hpp
ysr@777 235 g1RemSet.cpp g1CollectorPolicy.hpp
ysr@777 236 g1RemSet.cpp g1RemSet.inline.hpp
ysr@777 237 g1RemSet.cpp g1OopClosures.inline.hpp
ysr@777 238 g1RemSet.cpp heapRegionSeq.inline.hpp
ysr@777 239 g1RemSet.cpp intHisto.hpp
ysr@777 240 g1RemSet.cpp iterator.hpp
ysr@777 241 g1RemSet.cpp oop.inline.hpp
ysr@777 242
ysr@777 243 g1RemSet.inline.hpp g1RemSet.hpp
ysr@777 244 g1RemSet.inline.hpp heapRegionRemSet.hpp
ysr@777 245
ysr@777 246 g1SATBCardTableModRefBS.cpp g1SATBCardTableModRefBS.hpp
ysr@777 247 g1SATBCardTableModRefBS.cpp heapRegion.hpp
ysr@777 248 g1SATBCardTableModRefBS.cpp mutexLocker.hpp
ysr@777 249 g1SATBCardTableModRefBS.cpp thread.hpp
ysr@777 250 g1SATBCardTableModRefBS.cpp thread_<os_family>.inline.hpp
ysr@777 251 g1SATBCardTableModRefBS.cpp satbQueue.hpp
ysr@777 252
ysr@777 253 g1SATBCardTableModRefBS.hpp cardTableModRefBS.hpp
ysr@777 254 g1SATBCardTableModRefBS.hpp memRegion.hpp
ysr@777 255
ysr@777 256 heapRegion.cpp concurrentZFThread.hpp
ysr@777 257 heapRegion.cpp g1BlockOffsetTable.inline.hpp
ysr@777 258 heapRegion.cpp g1CollectedHeap.inline.hpp
ysr@777 259 heapRegion.cpp g1OopClosures.inline.hpp
ysr@777 260 heapRegion.cpp genOopClosures.inline.hpp
ysr@777 261 heapRegion.cpp heapRegion.inline.hpp
ysr@777 262 heapRegion.cpp heapRegionRemSet.hpp
ysr@777 263 heapRegion.cpp heapRegionSeq.inline.hpp
ysr@777 264 heapRegion.cpp iterator.hpp
ysr@777 265 heapRegion.cpp oop.inline.hpp
ysr@777 266
ysr@777 267 heapRegion.hpp space.hpp
tonyp@791 268 heapRegion.hpp spaceDecorator.hpp
tonyp@794 269 heapRegion.hpp g1BlockOffsetTable.inline.hpp
ysr@777 270 heapRegion.hpp watermark.hpp
ysr@777 271 heapRegion.hpp g1_specialized_oop_closures.hpp
ysr@777 272 heapRegion.hpp survRateGroup.hpp
ysr@777 273
ysr@777 274 heapRegionRemSet.hpp sparsePRT.hpp
ysr@777 275
ysr@777 276 heapRegionRemSet.cpp allocation.hpp
ysr@777 277 heapRegionRemSet.cpp bitMap.inline.hpp
ysr@777 278 heapRegionRemSet.cpp g1BlockOffsetTable.inline.hpp
ysr@777 279 heapRegionRemSet.cpp g1CollectedHeap.inline.hpp
ysr@777 280 heapRegionRemSet.cpp heapRegionRemSet.hpp
ysr@777 281 heapRegionRemSet.cpp heapRegionSeq.inline.hpp
ysr@777 282 heapRegionRemSet.cpp globalDefinitions.hpp
ysr@777 283 heapRegionRemSet.cpp space.inline.hpp
ysr@777 284
ysr@777 285 heapRegionSeq.cpp allocation.hpp
ysr@777 286 heapRegionSeq.cpp g1CollectedHeap.hpp
ysr@777 287 heapRegionSeq.cpp heapRegionSeq.hpp
ysr@777 288
ysr@777 289 heapRegionSeq.hpp growableArray.hpp
ysr@777 290 heapRegionSeq.hpp heapRegion.hpp
ysr@777 291
ysr@777 292 heapRegionSeq.inline.hpp heapRegionSeq.hpp
ysr@777 293
ysr@777 294 klass.hpp g1OopClosures.hpp
ysr@777 295
ysr@777 296 ptrQueue.cpp allocation.hpp
ysr@777 297 ptrQueue.cpp allocation.inline.hpp
ysr@777 298 ptrQueue.cpp mutex.hpp
ysr@777 299 ptrQueue.cpp mutexLocker.hpp
ysr@777 300 ptrQueue.cpp ptrQueue.hpp
ysr@777 301 ptrQueue.cpp ptrQueue.inline.hpp
ysr@777 302 ptrQueue.cpp thread_<os_family>.inline.hpp
ysr@777 303
ysr@777 304 ptrQueue.hpp allocation.hpp
ysr@777 305 ptrQueue.hpp sizes.hpp
ysr@777 306
ysr@777 307 ptrQueue.inline.hpp ptrQueue.hpp
ysr@777 308
ysr@777 309 satbQueue.cpp allocation.inline.hpp
ysr@777 310 satbQueue.cpp mutexLocker.hpp
ysr@777 311 satbQueue.cpp ptrQueue.inline.hpp
ysr@777 312 satbQueue.cpp satbQueue.hpp
ysr@777 313 satbQueue.cpp sharedHeap.hpp
ysr@777 314 satbQueue.cpp thread.hpp
ysr@777 315
ysr@777 316 satbQueue.hpp ptrQueue.hpp
ysr@777 317
ysr@777 318 sparsePRT.cpp allocation.inline.hpp
ysr@777 319 sparsePRT.cpp cardTableModRefBS.hpp
ysr@777 320 sparsePRT.cpp heapRegion.hpp
ysr@777 321 sparsePRT.cpp heapRegionRemSet.hpp
ysr@777 322 sparsePRT.cpp mutexLocker.hpp
ysr@777 323 sparsePRT.cpp sparsePRT.hpp
ysr@777 324 sparsePRT.cpp space.inline.hpp
ysr@777 325
ysr@777 326 sparsePRT.hpp allocation.hpp
ysr@777 327 sparsePRT.hpp cardTableModRefBS.hpp
ysr@777 328 sparsePRT.hpp globalDefinitions.hpp
ysr@777 329 sparsePRT.hpp heapRegion.hpp
ysr@777 330 sparsePRT.hpp mutex.hpp
ysr@777 331
ysr@777 332 specialized_oop_closures.hpp g1_specialized_oop_closures.hpp
ysr@777 333
ysr@777 334 survRateGroup.hpp numberSeq.hpp
ysr@777 335
ysr@777 336 survRateGroup.cpp allocation.hpp
ysr@777 337 survRateGroup.cpp g1CollectedHeap.hpp
ysr@777 338 survRateGroup.cpp g1CollectorPolicy.hpp
ysr@777 339 survRateGroup.cpp heapRegion.hpp
ysr@777 340 survRateGroup.cpp survRateGroup.hpp
ysr@777 341
ysr@777 342 thread.cpp concurrentMarkThread.inline.hpp
ysr@777 343
ysr@777 344 universe.cpp g1CollectedHeap.hpp
ysr@777 345 universe.cpp g1CollectorPolicy.hpp
ysr@777 346
ysr@777 347 vm_operations_g1.hpp vmGCOperations.hpp
ysr@777 348
ysr@777 349 vm_operations_g1.cpp vm_operations_g1.hpp
ysr@777 350 vm_operations_g1.cpp g1CollectedHeap.hpp
ysr@777 351 vm_operations_g1.cpp isGCActiveMark.hpp

mercurial