Wed, 13 Jan 2010 15:26:39 -0800
6896647: card marks can be deferred too long
Summary: Deferred card marks are now flushed during the gc prologue. Parallel[Scavege,OldGC] and SerialGC no longer defer card marks generated by COMPILER2 as a result of ReduceInitialCardMarks. For these cases, introduced a diagnostic option to defer the card marks, only for the purposes of testing and diagnostics. CMS and G1 continue to defer card marks. Potential performance concern related to single-threaded flushing of deferred card marks in the gc prologue will be addressed in the future.
Reviewed-by: never, johnc
1 //
2 // Copyright (c) 2007 Sun Microsystems, Inc. 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 // CA 95054 USA or visit www.sun.com if you need additional information or
21 // have any questions.
22 //
24 arguments.cpp compactibleFreeListSpace.hpp
26 assembler_<arch>.cpp g1SATBCardTableModRefBS.hpp
27 assembler_<arch>.cpp g1CollectedHeap.inline.hpp
28 assembler_<arch>.cpp heapRegion.hpp
30 collectorPolicy.cpp cmsAdaptiveSizePolicy.hpp
31 collectorPolicy.cpp cmsGCAdaptivePolicyCounters.hpp
33 compiledICHolderKlass.cpp oop.pcgc.inline.hpp
35 constantPoolKlass.cpp cardTableRS.hpp
36 constantPoolKlass.cpp oop.pcgc.inline.hpp
37 constantPoolKlass.cpp psPromotionManager.inline.hpp
38 constantPoolKlass.cpp psScavenge.inline.hpp
39 constantPoolKlass.cpp parOopClosures.inline.hpp
41 constantPoolKlass.cpp cardTableRS.hpp
42 constantPoolKlass.cpp oop.pcgc.inline.hpp
43 constantPoolKlass.cpp psPromotionManager.inline.hpp
44 constantPoolKlass.cpp psScavenge.inline.hpp
45 constantPoolKlass.cpp parOopClosures.inline.hpp
47 cpCacheKlass.cpp cardTableRS.hpp
48 cpCacheKlass.cpp oop.pcgc.inline.hpp
49 cpCacheKlass.cpp psPromotionManager.inline.hpp
50 cpCacheKlass.cpp psScavenge.inline.hpp
51 cpCacheKlass.cpp parOopClosures.inline.hpp
53 genCollectedHeap.cpp concurrentMarkSweepThread.hpp
54 genCollectedHeap.cpp vmCMSOperations.hpp
56 generationSpec.cpp asParNewGeneration.hpp
57 generationSpec.cpp cmsPermGen.hpp
58 generationSpec.cpp parNewGeneration.hpp
60 heapDumper.cpp parallelScavengeHeap.hpp
62 heapInspection.cpp parallelScavengeHeap.hpp
64 instanceKlass.cpp heapRegionSeq.inline.hpp
65 instanceKlass.cpp g1CollectedHeap.inline.hpp
66 instanceKlass.cpp g1OopClosures.inline.hpp
67 instanceKlass.cpp oop.pcgc.inline.hpp
68 instanceKlass.cpp psPromotionManager.inline.hpp
69 instanceKlass.cpp psScavenge.inline.hpp
70 instanceKlass.cpp parOopClosures.inline.hpp
72 instanceKlassKlass.cpp cardTableRS.hpp
73 instanceKlassKlass.cpp oop.pcgc.inline.hpp
74 instanceKlassKlass.cpp psPromotionManager.inline.hpp
75 instanceKlassKlass.cpp psScavenge.inline.hpp
76 instanceKlassKlass.cpp parOopClosures.inline.hpp
78 instanceRefKlass.cpp heapRegionSeq.inline.hpp
79 instanceRefKlass.cpp g1CollectedHeap.inline.hpp
80 instanceRefKlass.cpp g1OopClosures.inline.hpp
81 instanceRefKlass.cpp oop.pcgc.inline.hpp
82 instanceRefKlass.cpp psPromotionManager.inline.hpp
83 instanceRefKlass.cpp psScavenge.inline.hpp
84 instanceRefKlass.cpp parOopClosures.inline.hpp
86 java.cpp concurrentMarkSweepThread.hpp
87 java.cpp psScavenge.hpp
88 java.cpp psScavenge.inline.hpp
90 jvmtiExport.cpp psMarkSweep.hpp
92 jvmtiTagMap.cpp parallelScavengeHeap.hpp
94 klassKlass.cpp oop.pcgc.inline.hpp
96 klass.hpp cmsOopClosures.hpp
97 klass.hpp parOopClosures.hpp
99 memoryPool.hpp compactibleFreeListSpace.hpp
101 memoryService.cpp cmsPermGen.hpp
102 memoryService.cpp concurrentMarkSweepGeneration.hpp
103 memoryService.cpp g1CollectedHeap.inline.hpp
104 memoryService.cpp parNewGeneration.hpp
105 memoryService.cpp parallelScavengeHeap.hpp
106 memoryService.cpp psMemoryPool.hpp
107 memoryService.cpp psOldGen.hpp
108 memoryService.cpp psPermGen.hpp
109 memoryService.cpp psYoungGen.hpp
111 methodDataKlass.cpp oop.pcgc.inline.hpp
112 methodDataKlass.cpp psScavenge.inline.hpp
114 objArrayKlass.cpp heapRegionSeq.inline.hpp
115 objArrayKlass.cpp g1CollectedHeap.inline.hpp
116 objArrayKlass.cpp g1OopClosures.inline.hpp
117 objArrayKlass.cpp oop.pcgc.inline.hpp
118 objArrayKlass.cpp psPromotionManager.inline.hpp
119 objArrayKlass.cpp psScavenge.inline.hpp
120 objArrayKlass.cpp parOopClosures.inline.hpp
122 oop.pcgc.inline.hpp parNewGeneration.hpp
123 oop.pcgc.inline.hpp parallelScavengeHeap.hpp
124 oop.pcgc.inline.hpp psCompactionManager.hpp
125 oop.pcgc.inline.hpp psParallelCompact.hpp
126 oop.pcgc.inline.hpp psScavenge.hpp
127 oop.pcgc.inline.hpp psScavenge.inline.hpp
129 oop.psgc.inline.hpp parallelScavengeHeap.hpp
130 oop.psgc.inline.hpp psScavenge.hpp
131 oop.psgc.inline.hpp psScavenge.inline.hpp
133 psMemoryPool.cpp handles.inline.hpp
134 psMemoryPool.cpp javaCalls.hpp
135 psMemoryPool.cpp lowMemoryDetector.hpp
136 psMemoryPool.cpp management.hpp
137 psMemoryPool.cpp memoryManager.hpp
138 psMemoryPool.cpp oop.inline.hpp
139 psMemoryPool.cpp psMemoryPool.hpp
140 psMemoryPool.cpp psPermGen.hpp
141 psMemoryPool.cpp systemDictionary.hpp
142 psMemoryPool.cpp vmSymbols.hpp
144 psMemoryPool.hpp defNewGeneration.hpp
145 psMemoryPool.hpp heap.hpp
146 psMemoryPool.hpp memoryUsage.hpp
147 psMemoryPool.hpp memoryPool.hpp
148 psMemoryPool.hpp mutableSpace.hpp
149 psMemoryPool.hpp psOldGen.hpp
150 psMemoryPool.hpp psYoungGen.hpp
151 psMemoryPool.hpp space.hpp
153 safepoint.cpp concurrentGCThread.hpp
154 safepoint.cpp concurrentMarkSweepThread.hpp
156 thread.cpp concurrentMarkSweepThread.hpp
157 thread.cpp pcTasks.hpp
159 thread.hpp dirtyCardQueue.hpp
160 thread.hpp satbQueue.hpp
162 universe.cpp parallelScavengeHeap.hpp
163 universe.cpp cmsCollectorPolicy.hpp
164 universe.cpp cmsAdaptiveSizePolicy.hpp
166 vmStructs.cpp asPSOldGen.hpp
167 vmStructs.cpp asPSYoungGen.hpp
168 vmStructs.cpp cmsPermGen.hpp
169 vmStructs.cpp compactibleFreeListSpace.hpp
170 vmStructs.cpp concurrentMarkSweepGeneration.hpp
171 vmStructs.cpp concurrentMarkSweepThread.hpp
172 vmStructs.cpp parNewGeneration.hpp
173 vmStructs.cpp parallelScavengeHeap.hpp
174 vmStructs.cpp psOldGen.hpp
175 vmStructs.cpp psPermGen.hpp
176 vmStructs.cpp psVirtualspace.hpp
177 vmStructs.cpp psYoungGen.hpp
178 vmStructs.cpp vmStructs_cms.hpp
179 vmStructs.cpp vmStructs_parallelgc.hpp
180 vmStructs.cpp vmStructs_parNew.hpp