annotate src/share/vm/includeDB_gc_parallel @ 1145:e018e6884bd8

6631166: CMS: better heuristics when combatting fragmentation Summary: Autonomic per-worker free block cache sizing, tunable coalition policies, fixes to per-size block statistics, retuned gain and bandwidth of some feedback loop filters to allow quicker reactivity to abrupt changes in ambient demand, and other heuristics to reduce fragmentation of the CMS old gen. Also tightened some assertions, including those related to locking. Reviewed-by: jmasa
author ysr
date Wed, 23 Dec 2009 09:23:54 -0800
parents be93aad57795
children 2a1472c30599
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
a61af66fc99e Initial load
duke
parents:
diff changeset
1 //
a61af66fc99e Initial load
duke
parents:
diff changeset
2 // Copyright (c) 2007 Sun Microsystems, Inc. All Rights Reserved.
a61af66fc99e Initial load
duke
parents:
diff changeset
3 // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a61af66fc99e Initial load
duke
parents:
diff changeset
4 //
a61af66fc99e Initial load
duke
parents:
diff changeset
5 // This code is free software; you can redistribute it and/or modify it
a61af66fc99e Initial load
duke
parents:
diff changeset
6 // under the terms of the GNU General Public License version 2 only, as
a61af66fc99e Initial load
duke
parents:
diff changeset
7 // published by the Free Software Foundation.
a61af66fc99e Initial load
duke
parents:
diff changeset
8 //
a61af66fc99e Initial load
duke
parents:
diff changeset
9 // This code is distributed in the hope that it will be useful, but WITHOUT
a61af66fc99e Initial load
duke
parents:
diff changeset
10 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a61af66fc99e Initial load
duke
parents:
diff changeset
11 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a61af66fc99e Initial load
duke
parents:
diff changeset
12 // version 2 for more details (a copy is included in the LICENSE file that
a61af66fc99e Initial load
duke
parents:
diff changeset
13 // accompanied this code).
a61af66fc99e Initial load
duke
parents:
diff changeset
14 //
a61af66fc99e Initial load
duke
parents:
diff changeset
15 // You should have received a copy of the GNU General Public License version
a61af66fc99e Initial load
duke
parents:
diff changeset
16 // 2 along with this work; if not, write to the Free Software Foundation,
a61af66fc99e Initial load
duke
parents:
diff changeset
17 // Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a61af66fc99e Initial load
duke
parents:
diff changeset
18 //
a61af66fc99e Initial load
duke
parents:
diff changeset
19 // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
a61af66fc99e Initial load
duke
parents:
diff changeset
20 // CA 95054 USA or visit www.sun.com if you need additional information or
a61af66fc99e Initial load
duke
parents:
diff changeset
21 // have any questions.
a61af66fc99e Initial load
duke
parents:
diff changeset
22 //
a61af66fc99e Initial load
duke
parents:
diff changeset
23
1145
e018e6884bd8 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 726
diff changeset
24 arguments.cpp compactibleFreeListSpace.hpp
e018e6884bd8 6631166: CMS: better heuristics when combatting fragmentation
ysr
parents: 726
diff changeset
25
362
apetrusenko
parents: 342
diff changeset
26 assembler_<arch>.cpp g1SATBCardTableModRefBS.hpp
apetrusenko
parents: 342
diff changeset
27 assembler_<arch>.cpp g1CollectedHeap.inline.hpp
apetrusenko
parents: 342
diff changeset
28 assembler_<arch>.cpp heapRegion.hpp
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
29
0
a61af66fc99e Initial load
duke
parents:
diff changeset
30 collectorPolicy.cpp cmsAdaptiveSizePolicy.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
31 collectorPolicy.cpp cmsGCAdaptivePolicyCounters.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
32
a61af66fc99e Initial load
duke
parents:
diff changeset
33 compiledICHolderKlass.cpp oop.pcgc.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
34
431
a45484ea312d 6653858: dynamic languages need to be able to load anonymous classes
jrose
parents: 362
diff changeset
35 constantPoolKlass.cpp cardTableRS.hpp
a45484ea312d 6653858: dynamic languages need to be able to load anonymous classes
jrose
parents: 362
diff changeset
36 constantPoolKlass.cpp oop.pcgc.inline.hpp
a45484ea312d 6653858: dynamic languages need to be able to load anonymous classes
jrose
parents: 362
diff changeset
37 constantPoolKlass.cpp psPromotionManager.inline.hpp
a45484ea312d 6653858: dynamic languages need to be able to load anonymous classes
jrose
parents: 362
diff changeset
38 constantPoolKlass.cpp psScavenge.inline.hpp
a45484ea312d 6653858: dynamic languages need to be able to load anonymous classes
jrose
parents: 362
diff changeset
39 constantPoolKlass.cpp parOopClosures.inline.hpp
a45484ea312d 6653858: dynamic languages need to be able to load anonymous classes
jrose
parents: 362
diff changeset
40
710
e5b0439ef4ae 6655638: dynamic languages need method handles
jrose
parents: 431
diff changeset
41 constantPoolKlass.cpp cardTableRS.hpp
e5b0439ef4ae 6655638: dynamic languages need method handles
jrose
parents: 431
diff changeset
42 constantPoolKlass.cpp oop.pcgc.inline.hpp
e5b0439ef4ae 6655638: dynamic languages need method handles
jrose
parents: 431
diff changeset
43 constantPoolKlass.cpp psPromotionManager.inline.hpp
e5b0439ef4ae 6655638: dynamic languages need method handles
jrose
parents: 431
diff changeset
44 constantPoolKlass.cpp psScavenge.inline.hpp
e5b0439ef4ae 6655638: dynamic languages need method handles
jrose
parents: 431
diff changeset
45 constantPoolKlass.cpp parOopClosures.inline.hpp
e5b0439ef4ae 6655638: dynamic languages need method handles
jrose
parents: 431
diff changeset
46
726
be93aad57795 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 710
diff changeset
47 cpCacheKlass.cpp cardTableRS.hpp
be93aad57795 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 710
diff changeset
48 cpCacheKlass.cpp oop.pcgc.inline.hpp
be93aad57795 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 710
diff changeset
49 cpCacheKlass.cpp psPromotionManager.inline.hpp
be93aad57795 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 710
diff changeset
50 cpCacheKlass.cpp psScavenge.inline.hpp
be93aad57795 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 710
diff changeset
51 cpCacheKlass.cpp parOopClosures.inline.hpp
be93aad57795 6655646: dynamic languages need dynamically linked call sites
jrose
parents: 710
diff changeset
52
0
a61af66fc99e Initial load
duke
parents:
diff changeset
53 genCollectedHeap.cpp concurrentMarkSweepThread.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
54 genCollectedHeap.cpp vmCMSOperations.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
55
a61af66fc99e Initial load
duke
parents:
diff changeset
56 generationSpec.cpp asParNewGeneration.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
57 generationSpec.cpp cmsPermGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
58 generationSpec.cpp parNewGeneration.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
59
a61af66fc99e Initial load
duke
parents:
diff changeset
60 heapDumper.cpp parallelScavengeHeap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
61
a61af66fc99e Initial load
duke
parents:
diff changeset
62 heapInspection.cpp parallelScavengeHeap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
63
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
64 instanceKlass.cpp heapRegionSeq.inline.hpp
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
65 instanceKlass.cpp g1CollectedHeap.inline.hpp
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
66 instanceKlass.cpp g1OopClosures.inline.hpp
0
a61af66fc99e Initial load
duke
parents:
diff changeset
67 instanceKlass.cpp oop.pcgc.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
68 instanceKlass.cpp psPromotionManager.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
69 instanceKlass.cpp psScavenge.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
70 instanceKlass.cpp parOopClosures.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
71
a61af66fc99e Initial load
duke
parents:
diff changeset
72 instanceKlassKlass.cpp cardTableRS.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
73 instanceKlassKlass.cpp oop.pcgc.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
74 instanceKlassKlass.cpp psPromotionManager.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
75 instanceKlassKlass.cpp psScavenge.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
76 instanceKlassKlass.cpp parOopClosures.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
77
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
78 instanceRefKlass.cpp heapRegionSeq.inline.hpp
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
79 instanceRefKlass.cpp g1CollectedHeap.inline.hpp
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
80 instanceRefKlass.cpp g1OopClosures.inline.hpp
0
a61af66fc99e Initial load
duke
parents:
diff changeset
81 instanceRefKlass.cpp oop.pcgc.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
82 instanceRefKlass.cpp psPromotionManager.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
83 instanceRefKlass.cpp psScavenge.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
84 instanceRefKlass.cpp parOopClosures.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
85
a61af66fc99e Initial load
duke
parents:
diff changeset
86 java.cpp concurrentMarkSweepThread.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
87 java.cpp psScavenge.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
88 java.cpp psScavenge.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
89
a61af66fc99e Initial load
duke
parents:
diff changeset
90 jvmtiExport.cpp psMarkSweep.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
91
a61af66fc99e Initial load
duke
parents:
diff changeset
92 jvmtiTagMap.cpp parallelScavengeHeap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
93
a61af66fc99e Initial load
duke
parents:
diff changeset
94 klassKlass.cpp oop.pcgc.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
95
a61af66fc99e Initial load
duke
parents:
diff changeset
96 klass.hpp cmsOopClosures.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
97 klass.hpp parOopClosures.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
98
a61af66fc99e Initial load
duke
parents:
diff changeset
99 memoryPool.hpp compactibleFreeListSpace.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
100
a61af66fc99e Initial load
duke
parents:
diff changeset
101 memoryService.cpp cmsPermGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
102 memoryService.cpp concurrentMarkSweepGeneration.hpp
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
103 memoryService.cpp g1CollectedHeap.inline.hpp
0
a61af66fc99e Initial load
duke
parents:
diff changeset
104 memoryService.cpp parNewGeneration.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
105 memoryService.cpp parallelScavengeHeap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
106 memoryService.cpp psMemoryPool.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
107 memoryService.cpp psOldGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
108 memoryService.cpp psPermGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
109 memoryService.cpp psYoungGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
110
a61af66fc99e Initial load
duke
parents:
diff changeset
111 methodDataKlass.cpp oop.pcgc.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
112 methodDataKlass.cpp psScavenge.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
113
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
114 objArrayKlass.cpp heapRegionSeq.inline.hpp
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
115 objArrayKlass.cpp g1CollectedHeap.inline.hpp
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
116 objArrayKlass.cpp g1OopClosures.inline.hpp
0
a61af66fc99e Initial load
duke
parents:
diff changeset
117 objArrayKlass.cpp oop.pcgc.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
118 objArrayKlass.cpp psPromotionManager.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
119 objArrayKlass.cpp psScavenge.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
120 objArrayKlass.cpp parOopClosures.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
121
a61af66fc99e Initial load
duke
parents:
diff changeset
122 oop.pcgc.inline.hpp parNewGeneration.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
123 oop.pcgc.inline.hpp parallelScavengeHeap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
124 oop.pcgc.inline.hpp psCompactionManager.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
125 oop.pcgc.inline.hpp psParallelCompact.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
126 oop.pcgc.inline.hpp psScavenge.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
127 oop.pcgc.inline.hpp psScavenge.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
128
a61af66fc99e Initial load
duke
parents:
diff changeset
129 oop.psgc.inline.hpp parallelScavengeHeap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
130 oop.psgc.inline.hpp psScavenge.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
131 oop.psgc.inline.hpp psScavenge.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
132
a61af66fc99e Initial load
duke
parents:
diff changeset
133 psMemoryPool.cpp handles.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
134 psMemoryPool.cpp javaCalls.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
135 psMemoryPool.cpp lowMemoryDetector.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
136 psMemoryPool.cpp management.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
137 psMemoryPool.cpp memoryManager.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
138 psMemoryPool.cpp oop.inline.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
139 psMemoryPool.cpp psMemoryPool.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
140 psMemoryPool.cpp psPermGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
141 psMemoryPool.cpp systemDictionary.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
142 psMemoryPool.cpp vmSymbols.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
143
a61af66fc99e Initial load
duke
parents:
diff changeset
144 psMemoryPool.hpp defNewGeneration.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
145 psMemoryPool.hpp heap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
146 psMemoryPool.hpp memoryUsage.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
147 psMemoryPool.hpp memoryPool.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
148 psMemoryPool.hpp mutableSpace.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
149 psMemoryPool.hpp psOldGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
150 psMemoryPool.hpp psYoungGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
151 psMemoryPool.hpp space.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
152
a61af66fc99e Initial load
duke
parents:
diff changeset
153 safepoint.cpp concurrentGCThread.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
154 safepoint.cpp concurrentMarkSweepThread.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
155
a61af66fc99e Initial load
duke
parents:
diff changeset
156 thread.cpp concurrentMarkSweepThread.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
157 thread.cpp pcTasks.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
158
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
159 thread.hpp dirtyCardQueue.hpp
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
160 thread.hpp satbQueue.hpp
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents: 0
diff changeset
161
0
a61af66fc99e Initial load
duke
parents:
diff changeset
162 universe.cpp parallelScavengeHeap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
163 universe.cpp cmsCollectorPolicy.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
164 universe.cpp cmsAdaptiveSizePolicy.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
165
a61af66fc99e Initial load
duke
parents:
diff changeset
166 vmStructs.cpp asPSOldGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
167 vmStructs.cpp asPSYoungGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
168 vmStructs.cpp cmsPermGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
169 vmStructs.cpp compactibleFreeListSpace.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
170 vmStructs.cpp concurrentMarkSweepGeneration.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
171 vmStructs.cpp concurrentMarkSweepThread.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
172 vmStructs.cpp parNewGeneration.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
173 vmStructs.cpp parallelScavengeHeap.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
174 vmStructs.cpp psOldGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
175 vmStructs.cpp psPermGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
176 vmStructs.cpp psVirtualspace.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
177 vmStructs.cpp psYoungGen.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
178 vmStructs.cpp vmStructs_cms.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
179 vmStructs.cpp vmStructs_parallelgc.hpp
a61af66fc99e Initial load
duke
parents:
diff changeset
180 vmStructs.cpp vmStructs_parNew.hpp