1.1 --- a/src/share/vm/runtime/globals.hpp Wed Dec 23 03:12:16 2009 -0800 1.2 +++ b/src/share/vm/runtime/globals.hpp Mon Jan 04 07:58:42 2010 -0800 1.3 @@ -1355,10 +1355,46 @@ 1.4 product(uintx, ParGCDesiredObjsFromOverflowList, 20, \ 1.5 "The desired number of objects to claim from the overflow list") \ 1.6 \ 1.7 - product(uintx, CMSParPromoteBlocksToClaim, 50, \ 1.8 + product(uintx, CMSParPromoteBlocksToClaim, 16, \ 1.9 "Number of blocks to attempt to claim when refilling CMS LAB for "\ 1.10 "parallel GC.") \ 1.11 \ 1.12 + product(uintx, OldPLABWeight, 50, \ 1.13 + "Percentage (0-100) used to weight the current sample when" \ 1.14 + "computing exponentially decaying average for resizing CMSParPromoteBlocksToClaim.") \ 1.15 + \ 1.16 + product(bool, ResizeOldPLAB, true, \ 1.17 + "Dynamically resize (old gen) promotion labs") \ 1.18 + \ 1.19 + product(bool, PrintOldPLAB, false, \ 1.20 + "Print (old gen) promotion labs sizing decisions") \ 1.21 + \ 1.22 + product(uintx, CMSOldPLABMin, 16, \ 1.23 + "Min size of CMS gen promotion lab caches per worker per blksize")\ 1.24 + \ 1.25 + product(uintx, CMSOldPLABMax, 1024, \ 1.26 + "Max size of CMS gen promotion lab caches per worker per blksize")\ 1.27 + \ 1.28 + product(uintx, CMSOldPLABNumRefills, 4, \ 1.29 + "Nominal number of refills of CMS gen promotion lab cache" \ 1.30 + " per worker per block size") \ 1.31 + \ 1.32 + product(bool, CMSOldPLABResizeQuicker, false, \ 1.33 + "Whether to react on-the-fly during a scavenge to a sudden" \ 1.34 + " change in block demand rate") \ 1.35 + \ 1.36 + product(uintx, CMSOldPLABToleranceFactor, 4, \ 1.37 + "The tolerance of the phase-change detector for on-the-fly" \ 1.38 + " PLAB resizing during a scavenge") \ 1.39 + \ 1.40 + product(uintx, CMSOldPLABReactivityFactor, 2, \ 1.41 + "The gain in the feedback loop for on-the-fly PLAB resizing" \ 1.42 + " during a scavenge") \ 1.43 + \ 1.44 + product(uintx, CMSOldPLABReactivityCeiling, 10, \ 1.45 + "The clamping of the gain in the feedback loop for on-the-fly" \ 1.46 + " PLAB resizing during a scavenge") \ 1.47 + \ 1.48 product(bool, AlwaysPreTouch, false, \ 1.49 "It forces all freshly committed pages to be pre-touched.") \ 1.50 \ 1.51 @@ -1400,27 +1436,54 @@ 1.52 "Percentage (0-100) by which the CMS incremental mode duty cycle" \ 1.53 " is shifted to the right within the period between young GCs") \ 1.54 \ 1.55 - product(uintx, CMSExpAvgFactor, 25, \ 1.56 - "Percentage (0-100) used to weight the current sample when " \ 1.57 - "computing exponential averages for CMS statistics") \ 1.58 - \ 1.59 - product(uintx, CMS_FLSWeight, 50, \ 1.60 - "Percentage (0-100) used to weight the current sample when " \ 1.61 - "computing exponentially decating averages for CMS FLS statistics") \ 1.62 - \ 1.63 - product(uintx, CMS_FLSPadding, 2, \ 1.64 - "The multiple of deviation from mean to use for buffering " \ 1.65 + product(uintx, CMSExpAvgFactor, 50, \ 1.66 + "Percentage (0-100) used to weight the current sample when" \ 1.67 + "computing exponential averages for CMS statistics.") \ 1.68 + \ 1.69 + product(uintx, CMS_FLSWeight, 75, \ 1.70 + "Percentage (0-100) used to weight the current sample when" \ 1.71 + "computing exponentially decating averages for CMS FLS statistics.") \ 1.72 + \ 1.73 + product(uintx, CMS_FLSPadding, 1, \ 1.74 + "The multiple of deviation from mean to use for buffering" \ 1.75 "against volatility in free list demand.") \ 1.76 \ 1.77 product(uintx, FLSCoalescePolicy, 2, \ 1.78 "CMS: Aggression level for coalescing, increasing from 0 to 4") \ 1.79 \ 1.80 - product(uintx, CMS_SweepWeight, 50, \ 1.81 + product(bool, FLSAlwaysCoalesceLarge, false, \ 1.82 + "CMS: Larger free blocks are always available for coalescing") \ 1.83 + \ 1.84 + product(double, FLSLargestBlockCoalesceProximity, 0.99, \ 1.85 + "CMS: the smaller the percentage the greater the coalition force")\ 1.86 + \ 1.87 + product(double, CMSSmallCoalSurplusPercent, 1.05, \ 1.88 + "CMS: the factor by which to inflate estimated demand of small" \ 1.89 + " block sizes to prevent coalescing with an adjoining block") \ 1.90 + \ 1.91 + product(double, CMSLargeCoalSurplusPercent, 0.95, \ 1.92 + "CMS: the factor by which to inflate estimated demand of large" \ 1.93 + " block sizes to prevent coalescing with an adjoining block") \ 1.94 + \ 1.95 + product(double, CMSSmallSplitSurplusPercent, 1.10, \ 1.96 + "CMS: the factor by which to inflate estimated demand of small" \ 1.97 + " block sizes to prevent splitting to supply demand for smaller" \ 1.98 + " blocks") \ 1.99 + \ 1.100 + product(double, CMSLargeSplitSurplusPercent, 1.00, \ 1.101 + "CMS: the factor by which to inflate estimated demand of large" \ 1.102 + " block sizes to prevent splitting to supply demand for smaller" \ 1.103 + " blocks") \ 1.104 + \ 1.105 + product(bool, CMSExtrapolateSweep, false, \ 1.106 + "CMS: cushion for block demand during sweep") \ 1.107 + \ 1.108 + product(uintx, CMS_SweepWeight, 75, \ 1.109 "Percentage (0-100) used to weight the current sample when " \ 1.110 "computing exponentially decaying average for inter-sweep " \ 1.111 "duration") \ 1.112 \ 1.113 - product(uintx, CMS_SweepPadding, 2, \ 1.114 + product(uintx, CMS_SweepPadding, 1, \ 1.115 "The multiple of deviation from mean to use for buffering " \ 1.116 "against volatility in inter-sweep duration.") \ 1.117 \ 1.118 @@ -1459,6 +1522,13 @@ 1.119 product(uintx, CMSIndexedFreeListReplenish, 4, \ 1.120 "Replenish and indexed free list with this number of chunks") \ 1.121 \ 1.122 + product(bool, CMSReplenishIntermediate, true, \ 1.123 + "Replenish all intermediate free-list caches") \ 1.124 + \ 1.125 + product(bool, CMSSplitIndexedFreeListBlocks, true, \ 1.126 + "When satisfying batched demand, splot blocks from the " \ 1.127 + "IndexedFreeList whose size is a multiple of requested size") \ 1.128 + \ 1.129 product(bool, CMSLoopWarn, false, \ 1.130 "Warn in case of excessive CMS looping") \ 1.131 \ 1.132 @@ -1593,6 +1663,18 @@ 1.133 "Bitmap operations should process at most this many bits" \ 1.134 "between yields") \ 1.135 \ 1.136 + product(bool, CMSDumpAtPromotionFailure, false, \ 1.137 + "Dump useful information about the state of the CMS old " \ 1.138 + " generation upon a promotion failure.") \ 1.139 + \ 1.140 + product(bool, CMSPrintChunksInDump, false, \ 1.141 + "In a dump enabled by CMSDumpAtPromotionFailure, include " \ 1.142 + " more detailed information about the free chunks.") \ 1.143 + \ 1.144 + product(bool, CMSPrintObjectsInDump, false, \ 1.145 + "In a dump enabled by CMSDumpAtPromotionFailure, include " \ 1.146 + " more detailed information about the allocated objects.") \ 1.147 + \ 1.148 diagnostic(bool, FLSVerifyAllHeapReferences, false, \ 1.149 "Verify that all refs across the FLS boundary " \ 1.150 " are to valid objects") \ 1.151 @@ -1677,6 +1759,10 @@ 1.152 "The youngest generation collection does not require " \ 1.153 "a guarantee of full promotion of all live objects.") \ 1.154 \ 1.155 + product(bool, PrintPromotionFailure, false, \ 1.156 + "Print additional diagnostic information following " \ 1.157 + " promotion failure") \ 1.158 + \ 1.159 notproduct(bool, PromotionFailureALot, false, \ 1.160 "Use promotion failure handling on every youngest generation " \ 1.161 "collection") \