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