comparison src/share/vm/runtime/globals.hpp @ 10408:836a62f43af9

Merge with http://hg.openjdk.java.net/hsx/hsx25/hotspot/
author Doug Simon <doug.simon@oracle.com>
date Wed, 19 Jun 2013 10:45:56 +0200
parents b2934877ba61 f2110083203d
children 36bcc10e01c0
comparison
equal deleted inserted replaced
10086:e0fb8a213650 10408:836a62f43af9
298 CounterSetting(intx* cnt) { counter = cnt; (*counter)++; } 298 CounterSetting(intx* cnt) { counter = cnt; (*counter)++; }
299 ~CounterSetting() { (*counter)--; } 299 ~CounterSetting() { (*counter)--; }
300 }; 300 };
301 301
302 302
303 class IntFlagSetting { 303 class UIntFlagSetting {
304 intx val; 304 uintx val;
305 intx* flag; 305 uintx* flag;
306 public: 306 public:
307 IntFlagSetting(intx& fl, intx newValue) { flag = &fl; val = fl; fl = newValue; } 307 UIntFlagSetting(uintx& fl, uintx newValue) { flag = &fl; val = fl; fl = newValue; }
308 ~IntFlagSetting() { *flag = val; } 308 ~UIntFlagSetting() { *flag = val; }
309 }; 309 };
310 310
311 311
312 class DoubleFlagSetting { 312 class DoubleFlagSetting {
313 double val; 313 double val;
525 "Granularity to use for NUMA interleaving on Windows OS") \ 525 "Granularity to use for NUMA interleaving on Windows OS") \
526 \ 526 \
527 product(bool, ForceNUMA, false, \ 527 product(bool, ForceNUMA, false, \
528 "Force NUMA optimizations on single-node/UMA systems") \ 528 "Force NUMA optimizations on single-node/UMA systems") \
529 \ 529 \
530 product(intx, NUMAChunkResizeWeight, 20, \ 530 product(uintx, NUMAChunkResizeWeight, 20, \
531 "Percentage (0-100) used to weight the current sample when " \ 531 "Percentage (0-100) used to weigh the current sample when " \
532 "computing exponentially decaying average for " \ 532 "computing exponentially decaying average for " \
533 "AdaptiveNUMAChunkSizing") \ 533 "AdaptiveNUMAChunkSizing") \
534 \ 534 \
535 product(intx, NUMASpaceResizeRate, 1*G, \ 535 product(uintx, NUMASpaceResizeRate, 1*G, \
536 "Do not reallocate more that this amount per collection") \ 536 "Do not reallocate more that this amount per collection") \
537 \ 537 \
538 product(bool, UseAdaptiveNUMAChunkSizing, true, \ 538 product(bool, UseAdaptiveNUMAChunkSizing, true, \
539 "Enable adaptive chunk sizing for NUMA") \ 539 "Enable adaptive chunk sizing for NUMA") \
540 \ 540 \
541 product(bool, NUMAStats, false, \ 541 product(bool, NUMAStats, false, \
542 "Print NUMA stats in detailed heap information") \ 542 "Print NUMA stats in detailed heap information") \
543 \ 543 \
544 product(intx, NUMAPageScanRate, 256, \ 544 product(uintx, NUMAPageScanRate, 256, \
545 "Maximum number of pages to include in the page scan procedure") \ 545 "Maximum number of pages to include in the page scan procedure") \
546 \ 546 \
547 product_pd(bool, NeedsDeoptSuspend, \ 547 product_pd(bool, NeedsDeoptSuspend, \
548 "True for register window machines (sparc/ia64)") \ 548 "True for register window machines (sparc/ia64)") \
549 \ 549 \
727 "Bump the number of file descriptors to max in solaris.") \ 727 "Bump the number of file descriptors to max in solaris.") \
728 \ 728 \
729 diagnostic(bool, LogEvents, true, \ 729 diagnostic(bool, LogEvents, true, \
730 "Enable the various ring buffer event logs") \ 730 "Enable the various ring buffer event logs") \
731 \ 731 \
732 diagnostic(intx, LogEventsBufferEntries, 10, \ 732 diagnostic(uintx, LogEventsBufferEntries, 10, \
733 "Enable the various ring buffer event logs") \ 733 "Enable the various ring buffer event logs") \
734 \ 734 \
735 product(bool, BytecodeVerificationRemote, true, \ 735 product(bool, BytecodeVerificationRemote, true, \
736 "Enables the Java bytecode verifier for remote classes") \ 736 "Enables the Java bytecode verifier for remote classes") \
737 \ 737 \
1173 "0 - type based with oops first, 1 - with oops last, " \ 1173 "0 - type based with oops first, 1 - with oops last, " \
1174 "2 - oops in super and sub classes are together") \ 1174 "2 - oops in super and sub classes are together") \
1175 \ 1175 \
1176 product(bool, CompactFields, true, \ 1176 product(bool, CompactFields, true, \
1177 "Allocate nonstatic fields in gaps between previous fields") \ 1177 "Allocate nonstatic fields in gaps between previous fields") \
1178 \
1179 notproduct(bool, PrintCompactFieldsSavings, false, \
1180 "Print how many words were saved with CompactFields") \
1181 \ 1178 \
1182 notproduct(bool, PrintFieldLayout, false, \ 1179 notproduct(bool, PrintFieldLayout, false, \
1183 "Print field layout for each class") \ 1180 "Print field layout for each class") \
1184 \ 1181 \
1185 product(intx, ContendedPaddingWidth, 128, \ 1182 product(intx, ContendedPaddingWidth, 128, \
1447 "Use parallel threads in the new generation.") \ 1444 "Use parallel threads in the new generation.") \
1448 \ 1445 \
1449 product(bool, ParallelGCVerbose, false, \ 1446 product(bool, ParallelGCVerbose, false, \
1450 "Verbose output for parallel GC.") \ 1447 "Verbose output for parallel GC.") \
1451 \ 1448 \
1452 product(intx, ParallelGCBufferWastePct, 10, \ 1449 product(uintx, ParallelGCBufferWastePct, 10, \
1453 "wasted fraction of parallel allocation buffer.") \ 1450 "Wasted fraction of parallel allocation buffer.") \
1454 \ 1451 \
1455 diagnostic(bool, ParallelGCRetainPLAB, false, \ 1452 diagnostic(bool, ParallelGCRetainPLAB, false, \
1456 "Retain parallel allocation buffers across scavenges; " \ 1453 "Retain parallel allocation buffers across scavenges; " \
1457 " -- disabled because this currently conflicts with " \ 1454 " -- disabled because this currently conflicts with " \
1458 " parallel card scanning under certain conditions ") \ 1455 " parallel card scanning under certain conditions ") \
1459 \ 1456 \
1460 product(intx, TargetPLABWastePct, 10, \ 1457 product(uintx, TargetPLABWastePct, 10, \
1461 "target wasted space in last buffer as pct of overall allocation")\ 1458 "Target wasted space in last buffer as percent of overall " \
1459 "allocation") \
1462 \ 1460 \
1463 product(uintx, PLABWeight, 75, \ 1461 product(uintx, PLABWeight, 75, \
1464 "Percentage (0-100) used to weight the current sample when" \ 1462 "Percentage (0-100) used to weight the current sample when" \
1465 "computing exponentially decaying average for ResizePLAB.") \ 1463 "computing exponentially decaying average for ResizePLAB.") \
1466 \ 1464 \
1534 " during a scavenge") \ 1532 " during a scavenge") \
1535 \ 1533 \
1536 product(bool, AlwaysPreTouch, false, \ 1534 product(bool, AlwaysPreTouch, false, \
1537 "It forces all freshly committed pages to be pre-touched.") \ 1535 "It forces all freshly committed pages to be pre-touched.") \
1538 \ 1536 \
1539 product_pd(intx, CMSYoungGenPerWorker, \ 1537 product_pd(uintx, CMSYoungGenPerWorker, \
1540 "The maximum size of young gen chosen by default per GC worker " \ 1538 "The maximum size of young gen chosen by default per GC worker " \
1541 "thread available") \ 1539 "thread available") \
1542 \ 1540 \
1543 product(bool, CMSIncrementalMode, false, \ 1541 product(bool, CMSIncrementalMode, false, \
1544 "Whether CMS GC should operate in \"incremental\" mode") \ 1542 "Whether CMS GC should operate in \"incremental\" mode") \
1852 "denotes 'do constant GC cycles'.") \ 1850 "denotes 'do constant GC cycles'.") \
1853 \ 1851 \
1854 product(bool, UseCMSInitiatingOccupancyOnly, false, \ 1852 product(bool, UseCMSInitiatingOccupancyOnly, false, \
1855 "Only use occupancy as a crierion for starting a CMS collection") \ 1853 "Only use occupancy as a crierion for starting a CMS collection") \
1856 \ 1854 \
1857 product(intx, CMSIsTooFullPercentage, 98, \ 1855 product(uintx, CMSIsTooFullPercentage, 98, \
1858 "An absolute ceiling above which CMS will always consider the " \ 1856 "An absolute ceiling above which CMS will always consider the " \
1859 "unloading of classes when class unloading is enabled") \ 1857 "unloading of classes when class unloading is enabled") \
1860 \ 1858 \
1861 develop(bool, CMSTestInFreeList, false, \ 1859 develop(bool, CMSTestInFreeList, false, \
1862 "Check if the coalesced range is already in the " \ 1860 "Check if the coalesced range is already in the " \
1891 "(other young collectors) ") \ 1889 "(other young collectors) ") \
1892 \ 1890 \
1893 develop(uintx, PromotionFailureALotInterval, 5, \ 1891 develop(uintx, PromotionFailureALotInterval, 5, \
1894 "Total collections between promotion failures alot") \ 1892 "Total collections between promotion failures alot") \
1895 \ 1893 \
1896 experimental(intx, WorkStealingSleepMillis, 1, \ 1894 experimental(uintx, WorkStealingSleepMillis, 1, \
1897 "Sleep time when sleep is used for yields") \ 1895 "Sleep time when sleep is used for yields") \
1898 \ 1896 \
1899 experimental(uintx, WorkStealingYieldsBeforeSleep, 5000, \ 1897 experimental(uintx, WorkStealingYieldsBeforeSleep, 5000, \
1900 "Number of yields before a sleep is done during workstealing") \ 1898 "Number of yields before a sleep is done during workstealing") \
1901 \ 1899 \
2035 \ 2033 \
2036 develop(uintx, AdaptiveSizePolicyReadyThreshold, 5, \ 2034 develop(uintx, AdaptiveSizePolicyReadyThreshold, 5, \
2037 "Number of collections before the adaptive sizing is started") \ 2035 "Number of collections before the adaptive sizing is started") \
2038 \ 2036 \
2039 product(uintx, AdaptiveSizePolicyOutputInterval, 0, \ 2037 product(uintx, AdaptiveSizePolicyOutputInterval, 0, \
2040 "Collecton interval for printing information; zero => never") \ 2038 "Collection interval for printing information; zero means never") \
2041 \ 2039 \
2042 product(bool, UseAdaptiveSizePolicyFootprintGoal, true, \ 2040 product(bool, UseAdaptiveSizePolicyFootprintGoal, true, \
2043 "Use adaptive minimum footprint as a goal") \ 2041 "Use adaptive minimum footprint as a goal") \
2044 \ 2042 \
2045 product(uintx, AdaptiveSizePolicyWeight, 10, \ 2043 product(uintx, AdaptiveSizePolicyWeight, 10, \
2138 "How far ahead to prefetch scan area (<= 0 means off)") \ 2136 "How far ahead to prefetch scan area (<= 0 means off)") \
2139 \ 2137 \
2140 product(intx, PrefetchFieldsAhead, -1, \ 2138 product(intx, PrefetchFieldsAhead, -1, \
2141 "How many fields ahead to prefetch in oop scan (<= 0 means off)") \ 2139 "How many fields ahead to prefetch in oop scan (<= 0 means off)") \
2142 \ 2140 \
2141 diagnostic(bool, VerifySilently, false, \
2142 "Don't print print the verification progress") \
2143 \
2143 diagnostic(bool, VerifyDuringStartup, false, \ 2144 diagnostic(bool, VerifyDuringStartup, false, \
2144 "Verify memory system before executing any Java code " \ 2145 "Verify memory system before executing any Java code " \
2145 "during VM initialization") \ 2146 "during VM initialization") \
2146 \ 2147 \
2147 diagnostic(bool, VerifyBeforeExit, trueInDebug, \ 2148 diagnostic(bool, VerifyBeforeExit, trueInDebug, \
2324 "Suppress workaround for libthread GP fault") \ 2325 "Suppress workaround for libthread GP fault") \
2325 \ 2326 \
2326 product(bool, PrintJNIGCStalls, false, \ 2327 product(bool, PrintJNIGCStalls, false, \
2327 "Print diagnostic message when GC is stalled" \ 2328 "Print diagnostic message when GC is stalled" \
2328 "by JNI critical section") \ 2329 "by JNI critical section") \
2330 \
2331 experimental(double, ObjectCountCutOffPercent, 0.5, \
2332 "The percentage of the used heap that the instances of a class " \
2333 "must occupy for the class to generate a trace event.") \
2329 \ 2334 \
2330 /* GC log rotation setting */ \ 2335 /* GC log rotation setting */ \
2331 \ 2336 \
2332 product(bool, UseGCLogFileRotation, false, \ 2337 product(bool, UseGCLogFileRotation, false, \
2333 "Prevent large gclog file for long running app. " \ 2338 "Prevent large gclog file for long running app. " \
2986 product_pd(intx, PreInflateSpin, \ 2991 product_pd(intx, PreInflateSpin, \
2987 "Number of times to spin wait before inflation") \ 2992 "Number of times to spin wait before inflation") \
2988 \ 2993 \
2989 /* gc parameters */ \ 2994 /* gc parameters */ \
2990 product(uintx, InitialHeapSize, 0, \ 2995 product(uintx, InitialHeapSize, 0, \
2991 "Initial heap size (in bytes); zero means OldSize + NewSize") \ 2996 "Initial heap size (in bytes); zero means use ergonomics") \
2992 \ 2997 \
2993 product(uintx, MaxHeapSize, ScaleForWordSize(96*M), \ 2998 product(uintx, MaxHeapSize, ScaleForWordSize(96*M), \
2994 "Maximum heap size (in bytes)") \ 2999 "Maximum heap size (in bytes)") \
2995 \ 3000 \
2996 product(uintx, OldSize, ScaleForWordSize(4*M), \ 3001 product(uintx, OldSize, ScaleForWordSize(4*M), \
3067 "Max percentage of Metaspace free after GC to avoid shrinking") \ 3072 "Max percentage of Metaspace free after GC to avoid shrinking") \
3068 \ 3073 \
3069 product(uintx, MaxMetaspaceExpansion, ScaleForWordSize(4*M), \ 3074 product(uintx, MaxMetaspaceExpansion, ScaleForWordSize(4*M), \
3070 "Max expansion of Metaspace without full GC (in bytes)") \ 3075 "Max expansion of Metaspace without full GC (in bytes)") \
3071 \ 3076 \
3072 product(intx, QueuedAllocationWarningCount, 0, \ 3077 product(uintx, QueuedAllocationWarningCount, 0, \
3073 "Number of times an allocation that queues behind a GC " \ 3078 "Number of times an allocation that queues behind a GC " \
3074 "will retry before printing a warning") \ 3079 "will retry before printing a warning") \
3075 \ 3080 \
3076 diagnostic(uintx, VerifyGCStartAt, 0, \ 3081 diagnostic(uintx, VerifyGCStartAt, 0, \
3077 "GC invoke count where +VerifyBefore/AfterGC kicks in") \ 3082 "GC invoke count where +VerifyBefore/AfterGC kicks in") \
3095 "Par compact uses a variable scale based on the density of the" \ 3100 "Par compact uses a variable scale based on the density of the" \
3096 "generation and treats this as the max value when the heap is" \ 3101 "generation and treats this as the max value when the heap is" \
3097 "either completely full or completely empty. Par compact also" \ 3102 "either completely full or completely empty. Par compact also" \
3098 "has a smaller default value; see arguments.cpp.") \ 3103 "has a smaller default value; see arguments.cpp.") \
3099 \ 3104 \
3100 product(intx, MarkSweepAlwaysCompactCount, 4, \ 3105 product(uintx, MarkSweepAlwaysCompactCount, 4, \
3101 "How often should we fully compact the heap (ignoring the dead " \ 3106 "How often should we fully compact the heap (ignoring the dead " \
3102 "space parameters)") \ 3107 "space parameters)") \
3103 \ 3108 \
3104 product(intx, PrintCMSStatistics, 0, \ 3109 product(intx, PrintCMSStatistics, 0, \
3105 "Statistics for CMS") \ 3110 "Statistics for CMS") \
3200 "Min number of seconds between code cache cleaning sessions") \ 3205 "Min number of seconds between code cache cleaning sessions") \
3201 \ 3206 \
3202 product(uintx, CodeCacheFlushingMinimumFreeSpace, 1500*K, \ 3207 product(uintx, CodeCacheFlushingMinimumFreeSpace, 1500*K, \
3203 "When less than X space left, start code cache cleaning") \ 3208 "When less than X space left, start code cache cleaning") \
3204 \ 3209 \
3210 product(uintx, CodeCacheFlushingFraction, 2, \
3211 "Fraction of the code cache that is flushed when full") \
3212 \
3205 /* interpreter debugging */ \ 3213 /* interpreter debugging */ \
3206 develop(intx, BinarySwitchThreshold, 5, \ 3214 develop(intx, BinarySwitchThreshold, 5, \
3207 "Minimal number of lookupswitch entries for rewriting to binary " \ 3215 "Minimal number of lookupswitch entries for rewriting to binary " \
3208 "switch") \ 3216 "switch") \
3209 \ 3217 \
3244 "Prepend to .hotspot_compiler; e.g. log,java/lang/String.<init>") \ 3252 "Prepend to .hotspot_compiler; e.g. log,java/lang/String.<init>") \
3245 \ 3253 \
3246 develop(bool, ReplayCompiles, false, \ 3254 develop(bool, ReplayCompiles, false, \
3247 "Enable replay of compilations from ReplayDataFile") \ 3255 "Enable replay of compilations from ReplayDataFile") \
3248 \ 3256 \
3249 develop(ccstr, ReplayDataFile, "replay.txt", \ 3257 product(ccstr, ReplayDataFile, NULL, \
3250 "file containing compilation replay information") \ 3258 "File containing compilation replay information" \
3259 "[default: ./replay_pid%p.log] (%p replaced with pid)") \
3251 \ 3260 \
3252 develop(intx, ReplaySuppressInitializers, 2, \ 3261 develop(intx, ReplaySuppressInitializers, 2, \
3253 "Controls handling of class initialization during replay" \ 3262 "Controls handling of class initialization during replay" \
3254 "0 - don't do anything special" \ 3263 "0 - don't do anything special" \
3255 "1 - treat all class initializers as empty" \ 3264 "1 - treat all class initializers as empty" \
3258 " pretend they are empty after starting replay") \ 3267 " pretend they are empty after starting replay") \
3259 \ 3268 \
3260 develop(bool, ReplayIgnoreInitErrors, false, \ 3269 develop(bool, ReplayIgnoreInitErrors, false, \
3261 "Ignore exceptions thrown during initialization for replay") \ 3270 "Ignore exceptions thrown during initialization for replay") \
3262 \ 3271 \
3263 develop(bool, DumpReplayDataOnError, true, \ 3272 product(bool, DumpReplayDataOnError, true, \
3264 "record replay data for crashing compiler threads") \ 3273 "Record replay data for crashing compiler threads") \
3265 \ 3274 \
3266 product(bool, CICompilerCountPerCPU, false, \ 3275 product(bool, CICompilerCountPerCPU, false, \
3267 "1 compiler thread for log(N CPUs)") \ 3276 "1 compiler thread for log(N CPUs)") \
3268 \ 3277 \
3269 develop(intx, CIFireOOMAt, -1, \ 3278 develop(intx, CIFireOOMAt, -1, \
3270 "Fire OutOfMemoryErrors throughout CI for testing the compiler " \ 3279 "Fire OutOfMemoryErrors throughout CI for testing the compiler " \
3271 "(non-negative value throws OOM after this many CI accesses " \ 3280 "(non-negative value throws OOM after this many CI accesses " \
3272 "in each compile)") \ 3281 "in each compile)") \
3273 \ 3282 notproduct(intx, CICrashAt, -1, \
3283 "id of compilation to trigger assert in compiler thread for " \
3284 "the purpose of testing, e.g. generation of replay data") \
3274 notproduct(bool, CIObjectFactoryVerify, false, \ 3285 notproduct(bool, CIObjectFactoryVerify, false, \
3275 "enable potentially expensive verification in ciObjectFactory") \ 3286 "enable potentially expensive verification in ciObjectFactory") \
3276 \ 3287 \
3277 /* Priorities */ \ 3288 /* Priorities */ \
3278 product_pd(bool, UseThreadPriorities, "Use native thread priorities") \ 3289 product_pd(bool, UseThreadPriorities, "Use native thread priorities") \
3450 \ 3461 \
3451 product(intx, Tier0ProfilingStartPercentage, 200, \ 3462 product(intx, Tier0ProfilingStartPercentage, 200, \
3452 "Start profiling in interpreter if the counters exceed tier 3" \ 3463 "Start profiling in interpreter if the counters exceed tier 3" \
3453 "thresholds by the specified percentage") \ 3464 "thresholds by the specified percentage") \
3454 \ 3465 \
3466 product(uintx, IncreaseFirstTierCompileThresholdAt, 50, \
3467 "Increase the compile threshold for C1 compilation if the code" \
3468 "cache is filled by the specified percentage.") \
3469 \
3455 product(intx, TieredRateUpdateMinTime, 1, \ 3470 product(intx, TieredRateUpdateMinTime, 1, \
3456 "Minimum rate sampling interval (in milliseconds)") \ 3471 "Minimum rate sampling interval (in milliseconds)") \
3457 \ 3472 \
3458 product(intx, TieredRateUpdateMaxTime, 25, \ 3473 product(intx, TieredRateUpdateMaxTime, 25, \
3459 "Maximum rate sampling interval (in milliseconds)") \ 3474 "Maximum rate sampling interval (in milliseconds)") \
3692 "Include GC cause in GC logging") \ 3707 "Include GC cause in GC logging") \
3693 \ 3708 \
3694 product(bool , AllowNonVirtualCalls, false, \ 3709 product(bool , AllowNonVirtualCalls, false, \
3695 "Obey the ACC_SUPER flag and allow invokenonvirtual calls") \ 3710 "Obey the ACC_SUPER flag and allow invokenonvirtual calls") \
3696 \ 3711 \
3697 product(bool, TraceWarpLoading, false, \ 3712 diagnostic(ccstr, SharedArchiveFile, NULL, \
3698 "trace external GPU warp loading") \ 3713 "Override the default location of the CDS archive file") \
3699 \ 3714 \
3700 experimental(uintx, ArrayAllocatorMallocLimit, \ 3715 experimental(uintx, ArrayAllocatorMallocLimit, \
3701 SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx), \ 3716 SOLARIS_ONLY(64*K) NOT_SOLARIS(max_uintx), \
3702 "Allocation less than this value will be allocated " \ 3717 "Allocation less than this value will be allocated " \
3703 "using malloc. Larger allocations will use mmap.") 3718 "using malloc. Larger allocations will use mmap.") \
3719 \
3720 product(bool, EnableTracing, false, \
3721 "Enable event-based tracing") \
3722 product(bool, UseLockedTracing, false, \
3723 "Use locked-tracing when doing event-based tracing")
3724
3704 3725
3705 /* 3726 /*
3706 * Macros for factoring of globals 3727 * Macros for factoring of globals
3707 */ 3728 */
3708 3729