45 define_pd_global(intx, Tier4BackEdgeThreshold, 0); |
45 define_pd_global(intx, Tier4BackEdgeThreshold, 0); |
46 |
46 |
47 define_pd_global(intx, OnStackReplacePercentage, 0); |
47 define_pd_global(intx, OnStackReplacePercentage, 0); |
48 define_pd_global(bool, ResizeTLAB, false); |
48 define_pd_global(bool, ResizeTLAB, false); |
49 define_pd_global(intx, FreqInlineSize, 0); |
49 define_pd_global(intx, FreqInlineSize, 0); |
|
50 define_pd_global(intx, InlineSmallCode, 0); |
50 define_pd_global(intx, NewSizeThreadIncrease, 4*K); |
51 define_pd_global(intx, NewSizeThreadIncrease, 4*K); |
51 define_pd_global(intx, NewRatio, 4); |
|
52 define_pd_global(intx, InlineClassNatives, true); |
52 define_pd_global(intx, InlineClassNatives, true); |
53 define_pd_global(intx, InlineUnsafeOps, true); |
53 define_pd_global(intx, InlineUnsafeOps, true); |
54 define_pd_global(intx, InitialCodeCacheSize, 160*K); |
54 define_pd_global(intx, InitialCodeCacheSize, 160*K); |
55 define_pd_global(intx, ReservedCodeCacheSize, 32*M); |
55 define_pd_global(intx, ReservedCodeCacheSize, 32*M); |
56 define_pd_global(intx, CodeCacheExpansionSize, 32*K); |
56 define_pd_global(intx, CodeCacheExpansionSize, 32*K); |
57 define_pd_global(intx, CodeCacheMinBlockLength, 1); |
57 define_pd_global(intx, CodeCacheMinBlockLength, 1); |
58 define_pd_global(uintx,PermSize, ScaleForWordSize(4*M)); |
58 define_pd_global(uintx,PermSize, ScaleForWordSize(4*M)); |
59 define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M)); |
59 define_pd_global(uintx,MaxPermSize, ScaleForWordSize(64*M)); |
60 define_pd_global(bool, NeverActAsServerClassMachine, true); |
60 define_pd_global(bool, NeverActAsServerClassMachine, true); |
61 define_pd_global(uintx, DefaultMaxRAM, 1*G); |
61 define_pd_global(uint64_t,MaxRAM, 1ULL*G); |
62 #define CI_COMPILER_COUNT 0 |
62 #define CI_COMPILER_COUNT 0 |
63 #else |
63 #else |
64 |
64 |
65 #ifdef COMPILER2 |
65 #ifdef COMPILER2 |
66 #define CI_COMPILER_COUNT 2 |
66 #define CI_COMPILER_COUNT 2 |
111 |
111 |
112 bool is_uintx() const { return strcmp(type, "uintx") == 0; } |
112 bool is_uintx() const { return strcmp(type, "uintx") == 0; } |
113 uintx get_uintx() const { return *((uintx*) addr); } |
113 uintx get_uintx() const { return *((uintx*) addr); } |
114 void set_uintx(uintx value) { *((uintx*) addr) = value; } |
114 void set_uintx(uintx value) { *((uintx*) addr) = value; } |
115 |
115 |
|
116 bool is_uint64_t() const { return strcmp(type, "uint64_t") == 0; } |
|
117 uint64_t get_uint64_t() const { return *((uint64_t*) addr); } |
|
118 void set_uint64_t(uint64_t value) { *((uint64_t*) addr) = value; } |
|
119 |
116 bool is_double() const { return strcmp(type, "double") == 0; } |
120 bool is_double() const { return strcmp(type, "double") == 0; } |
117 double get_double() const { return *((double*) addr); } |
121 double get_double() const { return *((double*) addr); } |
118 void set_double(double value) { *((double*) addr) = value; } |
122 void set_double(double value) { *((double*) addr) = value; } |
119 |
123 |
120 bool is_ccstr() const { return strcmp(type, "ccstr") == 0 || strcmp(type, "ccstrlist") == 0; } |
124 bool is_ccstr() const { return strcmp(type, "ccstr") == 0 || strcmp(type, "ccstrlist") == 0; } |
185 |
189 |
186 static bool uintxAt(char* name, size_t len, uintx* value); |
190 static bool uintxAt(char* name, size_t len, uintx* value); |
187 static bool uintxAt(char* name, uintx* value) { return uintxAt(name, strlen(name), value); } |
191 static bool uintxAt(char* name, uintx* value) { return uintxAt(name, strlen(name), value); } |
188 static bool uintxAtPut(char* name, size_t len, uintx* value, FlagValueOrigin origin); |
192 static bool uintxAtPut(char* name, size_t len, uintx* value, FlagValueOrigin origin); |
189 static bool uintxAtPut(char* name, uintx* value, FlagValueOrigin origin) { return uintxAtPut(name, strlen(name), value, origin); } |
193 static bool uintxAtPut(char* name, uintx* value, FlagValueOrigin origin) { return uintxAtPut(name, strlen(name), value, origin); } |
|
194 |
|
195 static bool uint64_tAt(char* name, size_t len, uint64_t* value); |
|
196 static bool uint64_tAt(char* name, uint64_t* value) { return uint64_tAt(name, strlen(name), value); } |
|
197 static bool uint64_tAtPut(char* name, size_t len, uint64_t* value, FlagValueOrigin origin); |
|
198 static bool uint64_tAtPut(char* name, uint64_t* value, FlagValueOrigin origin) { return uint64_tAtPut(name, strlen(name), value, origin); } |
190 |
199 |
191 static bool doubleAt(char* name, size_t len, double* value); |
200 static bool doubleAt(char* name, size_t len, double* value); |
192 static bool doubleAt(char* name, double* value) { return doubleAt(name, strlen(name), value); } |
201 static bool doubleAt(char* name, double* value) { return doubleAt(name, strlen(name), value); } |
193 static bool doubleAtPut(char* name, size_t len, double* value, FlagValueOrigin origin); |
202 static bool doubleAtPut(char* name, size_t len, double* value, FlagValueOrigin origin); |
194 static bool doubleAtPut(char* name, double* value, FlagValueOrigin origin) { return doubleAtPut(name, strlen(name), value, origin); } |
203 static bool doubleAtPut(char* name, double* value, FlagValueOrigin origin) { return doubleAtPut(name, strlen(name), value, origin); } |
783 "Prints byte code statictics when dumping profiler output") \ |
792 "Prints byte code statictics when dumping profiler output") \ |
784 \ |
793 \ |
785 product(bool, ProfilerRecordPC, false, \ |
794 product(bool, ProfilerRecordPC, false, \ |
786 "Collects tick for each 16 byte interval of compiled code") \ |
795 "Collects tick for each 16 byte interval of compiled code") \ |
787 \ |
796 \ |
788 product(bool, ProfileVM, false, \ |
797 product(bool, ProfileVM, false, \ |
789 "Profiles ticks that fall within VM (either in the VM Thread " \ |
798 "Profiles ticks that fall within VM (either in the VM Thread " \ |
790 "or VM code called through stubs)") \ |
799 "or VM code called through stubs)") \ |
791 \ |
800 \ |
792 product(bool, ProfileIntervals, false, \ |
801 product(bool, ProfileIntervals, false, \ |
793 "Prints profiles for each interval (see ProfileIntervalsTicks)") \ |
802 "Prints profiles for each interval (see ProfileIntervalsTicks)") \ |
860 "and defineClass.") \ |
869 "and defineClass.") \ |
861 \ |
870 \ |
862 product(bool, AlwaysLockClassLoader, false, \ |
871 product(bool, AlwaysLockClassLoader, false, \ |
863 "Require the VM to acquire the class loader lock before calling " \ |
872 "Require the VM to acquire the class loader lock before calling " \ |
864 "loadClass() even for class loaders registering " \ |
873 "loadClass() even for class loaders registering " \ |
865 "as parallel capable. Default false. ") \ |
874 "as parallel capable") \ |
866 \ |
875 \ |
867 product(bool, AllowParallelDefineClass, false, \ |
876 product(bool, AllowParallelDefineClass, false, \ |
868 "Allow parallel defineClass requests for class loaders " \ |
877 "Allow parallel defineClass requests for class loaders " \ |
869 "registering as parallel capable. Default false") \ |
878 "registering as parallel capable") \ |
870 \ |
879 \ |
871 product(bool, MustCallLoadClassInternal, false, \ |
880 product(bool, MustCallLoadClassInternal, false, \ |
872 "Call loadClassInternal() rather than loadClass().Default false") \ |
881 "Call loadClassInternal() rather than loadClass()") \ |
873 \ |
882 \ |
874 product_pd(bool, DontYieldALot, \ |
883 product_pd(bool, DontYieldALot, \ |
875 "Throw away obvious excess yield calls (for SOLARIS only)") \ |
884 "Throw away obvious excess yield calls (for SOLARIS only)") \ |
876 \ |
885 \ |
877 product_pd(bool, ConvertSleepToYield, \ |
886 product_pd(bool, ConvertSleepToYield, \ |
919 \ |
928 \ |
920 product(intx, WorkAroundNPTLTimedWaitHang, 1, \ |
929 product(intx, WorkAroundNPTLTimedWaitHang, 1, \ |
921 "(Unstable, Linux-specific)" \ |
930 "(Unstable, Linux-specific)" \ |
922 " avoid NPTL-FUTEX hang pthread_cond_timedwait" ) \ |
931 " avoid NPTL-FUTEX hang pthread_cond_timedwait" ) \ |
923 \ |
932 \ |
924 product(bool, FilterSpuriousWakeups , true, \ |
933 product(bool, FilterSpuriousWakeups, true, \ |
925 "Prevent spurious or premature wakeups from object.wait" \ |
934 "Prevent spurious or premature wakeups from object.wait " \ |
926 "(Solaris only)") \ |
935 "(Solaris only)") \ |
927 \ |
936 \ |
928 product(intx, NativeMonitorTimeout, -1, "(Unstable)" ) \ |
937 product(intx, NativeMonitorTimeout, -1, "(Unstable)" ) \ |
929 product(intx, NativeMonitorFlags, 0, "(Unstable)" ) \ |
938 product(intx, NativeMonitorFlags, 0, "(Unstable)" ) \ |
930 product(intx, NativeMonitorSpinLimit, 20, "(Unstable)" ) \ |
939 product(intx, NativeMonitorSpinLimit, 20, "(Unstable)" ) \ |
931 \ |
940 \ |
971 "Use signal-chaining to invoke signal handlers installed " \ |
980 "Use signal-chaining to invoke signal handlers installed " \ |
972 "by the application (Solaris & Linux only)") \ |
981 "by the application (Solaris & Linux only)") \ |
973 \ |
982 \ |
974 product(bool, UseAltSigs, false, \ |
983 product(bool, UseAltSigs, false, \ |
975 "Use alternate signals instead of SIGUSR1 & SIGUSR2 for VM " \ |
984 "Use alternate signals instead of SIGUSR1 & SIGUSR2 for VM " \ |
976 "internal signals. (Solaris only)") \ |
985 "internal signals (Solaris only)") \ |
977 \ |
986 \ |
978 product(bool, UseSpinning, false, \ |
987 product(bool, UseSpinning, false, \ |
979 "Use spinning in monitor inflation and before entry") \ |
988 "Use spinning in monitor inflation and before entry") \ |
980 \ |
989 \ |
981 product(bool, PreSpinYield, false, \ |
990 product(bool, PreSpinYield, false, \ |
1263 \ |
1272 \ |
1264 product(bool, AlwaysTenure, false, \ |
1273 product(bool, AlwaysTenure, false, \ |
1265 "Always tenure objects in eden. (ParallelGC only)") \ |
1274 "Always tenure objects in eden. (ParallelGC only)") \ |
1266 \ |
1275 \ |
1267 product(bool, NeverTenure, false, \ |
1276 product(bool, NeverTenure, false, \ |
1268 "Never tenure objects in eden, May tenure on overflow" \ |
1277 "Never tenure objects in eden, May tenure on overflow " \ |
1269 " (ParallelGC only)") \ |
1278 "(ParallelGC only)") \ |
1270 \ |
1279 \ |
1271 product(bool, ScavengeBeforeFullGC, true, \ |
1280 product(bool, ScavengeBeforeFullGC, true, \ |
1272 "Scavenge youngest generation before each full GC," \ |
1281 "Scavenge youngest generation before each full GC, " \ |
1273 " used with UseParallelGC") \ |
1282 "used with UseParallelGC") \ |
1274 \ |
1283 \ |
1275 develop(bool, ScavengeWithObjectsInToSpace, false, \ |
1284 develop(bool, ScavengeWithObjectsInToSpace, false, \ |
1276 "Allow scavenges to occur when to_space contains objects.") \ |
1285 "Allow scavenges to occur when to_space contains objects.") \ |
1277 \ |
1286 \ |
1278 product(bool, UseConcMarkSweepGC, false, \ |
1287 product(bool, UseConcMarkSweepGC, false, \ |
1281 product(bool, ExplicitGCInvokesConcurrent, false, \ |
1290 product(bool, ExplicitGCInvokesConcurrent, false, \ |
1282 "A System.gc() request invokes a concurrent collection;" \ |
1291 "A System.gc() request invokes a concurrent collection;" \ |
1283 " (effective only when UseConcMarkSweepGC)") \ |
1292 " (effective only when UseConcMarkSweepGC)") \ |
1284 \ |
1293 \ |
1285 product(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false, \ |
1294 product(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false, \ |
1286 "A System.gc() request invokes a concurrent collection and" \ |
1295 "A System.gc() request invokes a concurrent collection and " \ |
1287 " also unloads classes during such a concurrent gc cycle " \ |
1296 "also unloads classes during such a concurrent gc cycle " \ |
1288 " (effective only when UseConcMarkSweepGC)") \ |
1297 "(effective only when UseConcMarkSweepGC)") \ |
1289 \ |
1298 \ |
1290 develop(bool, UseCMSAdaptiveFreeLists, true, \ |
1299 develop(bool, UseCMSAdaptiveFreeLists, true, \ |
1291 "Use Adaptive Free Lists in the CMS generation") \ |
1300 "Use Adaptive Free Lists in the CMS generation") \ |
1292 \ |
1301 \ |
1293 develop(bool, UseAsyncConcMarkSweepGC, true, \ |
1302 develop(bool, UseAsyncConcMarkSweepGC, true, \ |
1338 \ |
1347 \ |
1339 notproduct(bool, ParGCWorkQueueOverflowALot, false, \ |
1348 notproduct(bool, ParGCWorkQueueOverflowALot, false, \ |
1340 "Whether we should simulate work queue overflow in ParNew") \ |
1349 "Whether we should simulate work queue overflow in ParNew") \ |
1341 \ |
1350 \ |
1342 notproduct(uintx, ParGCWorkQueueOverflowInterval, 1000, \ |
1351 notproduct(uintx, ParGCWorkQueueOverflowInterval, 1000, \ |
1343 "An `interval' counter that determines how frequently" \ |
1352 "An `interval' counter that determines how frequently " \ |
1344 " we simulate overflow; a smaller number increases frequency") \ |
1353 "we simulate overflow; a smaller number increases frequency") \ |
1345 \ |
1354 \ |
1346 product(uintx, ParGCDesiredObjsFromOverflowList, 20, \ |
1355 product(uintx, ParGCDesiredObjsFromOverflowList, 20, \ |
1347 "The desired number of objects to claim from the overflow list") \ |
1356 "The desired number of objects to claim from the overflow list") \ |
1348 \ |
1357 \ |
1349 product(uintx, CMSParPromoteBlocksToClaim, 50, \ |
1358 product(uintx, CMSParPromoteBlocksToClaim, 50, \ |
1352 \ |
1361 \ |
1353 product(bool, AlwaysPreTouch, false, \ |
1362 product(bool, AlwaysPreTouch, false, \ |
1354 "It forces all freshly committed pages to be pre-touched.") \ |
1363 "It forces all freshly committed pages to be pre-touched.") \ |
1355 \ |
1364 \ |
1356 product(bool, CMSUseOldDefaults, false, \ |
1365 product(bool, CMSUseOldDefaults, false, \ |
1357 "A flag temporarily introduced to allow reverting to some older" \ |
1366 "A flag temporarily introduced to allow reverting to some " \ |
1358 "default settings; older as of 6.0 ") \ |
1367 "older default settings; older as of 6.0") \ |
1359 \ |
1368 \ |
1360 product(intx, CMSYoungGenPerWorker, 16*M, \ |
1369 product(intx, CMSYoungGenPerWorker, 16*M, \ |
1361 "The amount of young gen chosen by default per GC worker " \ |
1370 "The amount of young gen chosen by default per GC worker " \ |
1362 "thread available ") \ |
1371 "thread available") \ |
1363 \ |
1372 \ |
1364 product(bool, GCOverheadReporting, false, \ |
1373 product(bool, GCOverheadReporting, false, \ |
1365 "Enables the GC overhead reporting facility") \ |
1374 "Enables the GC overhead reporting facility") \ |
1366 \ |
1375 \ |
1367 product(intx, GCOverheadReportingPeriodMS, 100, \ |
1376 product(intx, GCOverheadReportingPeriodMS, 100, \ |
1378 product(bool, CMSIncrementalPacing, true, \ |
1387 product(bool, CMSIncrementalPacing, true, \ |
1379 "Whether the CMS incremental mode duty cycle should be " \ |
1388 "Whether the CMS incremental mode duty cycle should be " \ |
1380 "automatically adjusted") \ |
1389 "automatically adjusted") \ |
1381 \ |
1390 \ |
1382 product(uintx, CMSIncrementalDutyCycleMin, 0, \ |
1391 product(uintx, CMSIncrementalDutyCycleMin, 0, \ |
1383 "Lower bound on the duty cycle when CMSIncrementalPacing is" \ |
1392 "Lower bound on the duty cycle when CMSIncrementalPacing is " \ |
1384 "enabled (a percentage, 0-100).") \ |
1393 "enabled (a percentage, 0-100)") \ |
1385 \ |
1394 \ |
1386 product(uintx, CMSIncrementalSafetyFactor, 10, \ |
1395 product(uintx, CMSIncrementalSafetyFactor, 10, \ |
1387 "Percentage (0-100) used to add conservatism when computing the" \ |
1396 "Percentage (0-100) used to add conservatism when computing the " \ |
1388 "duty cycle.") \ |
1397 "duty cycle") \ |
1389 \ |
1398 \ |
1390 product(uintx, CMSIncrementalOffset, 0, \ |
1399 product(uintx, CMSIncrementalOffset, 0, \ |
1391 "Percentage (0-100) by which the CMS incremental mode duty cycle" \ |
1400 "Percentage (0-100) by which the CMS incremental mode duty cycle" \ |
1392 "is shifted to the right within the period between young GCs") \ |
1401 " is shifted to the right within the period between young GCs") \ |
1393 \ |
1402 \ |
1394 product(uintx, CMSExpAvgFactor, 25, \ |
1403 product(uintx, CMSExpAvgFactor, 25, \ |
1395 "Percentage (0-100) used to weight the current sample when" \ |
1404 "Percentage (0-100) used to weight the current sample when " \ |
1396 "computing exponential averages for CMS statistics.") \ |
1405 "computing exponential averages for CMS statistics") \ |
1397 \ |
1406 \ |
1398 product(uintx, CMS_FLSWeight, 50, \ |
1407 product(uintx, CMS_FLSWeight, 50, \ |
1399 "Percentage (0-100) used to weight the current sample when" \ |
1408 "Percentage (0-100) used to weight the current sample when " \ |
1400 "computing exponentially decating averages for CMS FLS statistics.") \ |
1409 "computing exponentially decating averages for CMS FLS statistics") \ |
1401 \ |
1410 \ |
1402 product(uintx, CMS_FLSPadding, 2, \ |
1411 product(uintx, CMS_FLSPadding, 2, \ |
1403 "The multiple of deviation from mean to use for buffering" \ |
1412 "The multiple of deviation from mean to use for buffering " \ |
1404 "against volatility in free list demand.") \ |
1413 "against volatility in free list demand.") \ |
1405 \ |
1414 \ |
1406 product(uintx, FLSCoalescePolicy, 2, \ |
1415 product(uintx, FLSCoalescePolicy, 2, \ |
1407 "CMS: Aggression level for coalescing, increasing from 0 to 4") \ |
1416 "CMS: Aggression level for coalescing, increasing from 0 to 4") \ |
1408 \ |
1417 \ |
1409 product(uintx, CMS_SweepWeight, 50, \ |
1418 product(uintx, CMS_SweepWeight, 50, \ |
1410 "Percentage (0-100) used to weight the current sample when" \ |
1419 "Percentage (0-100) used to weight the current sample when " \ |
1411 "computing exponentially decaying average for inter-sweep duration.") \ |
1420 "computing exponentially decaying average for inter-sweep " \ |
|
1421 "duration") \ |
1412 \ |
1422 \ |
1413 product(uintx, CMS_SweepPadding, 2, \ |
1423 product(uintx, CMS_SweepPadding, 2, \ |
1414 "The multiple of deviation from mean to use for buffering" \ |
1424 "The multiple of deviation from mean to use for buffering " \ |
1415 "against volatility in inter-sweep duration.") \ |
1425 "against volatility in inter-sweep duration.") \ |
1416 \ |
1426 \ |
1417 product(uintx, CMS_SweepTimerThresholdMillis, 10, \ |
1427 product(uintx, CMS_SweepTimerThresholdMillis, 10, \ |
1418 "Skip block flux-rate sampling for an epoch unless inter-sweep " \ |
1428 "Skip block flux-rate sampling for an epoch unless inter-sweep " \ |
1419 " duration exceeds this threhold in milliseconds") \ |
1429 "duration exceeds this threhold in milliseconds") \ |
1420 \ |
1430 \ |
1421 develop(bool, CMSTraceIncrementalMode, false, \ |
1431 develop(bool, CMSTraceIncrementalMode, false, \ |
1422 "Trace CMS incremental mode") \ |
1432 "Trace CMS incremental mode") \ |
1423 \ |
1433 \ |
1424 develop(bool, CMSTraceIncrementalPacing, false, \ |
1434 develop(bool, CMSTraceIncrementalPacing, false, \ |
1615 product(bool, ParallelRefProcBalancingEnabled, true, \ |
1625 product(bool, ParallelRefProcBalancingEnabled, true, \ |
1616 "Enable balancing of reference processing queues") \ |
1626 "Enable balancing of reference processing queues") \ |
1617 \ |
1627 \ |
1618 product(intx, CMSTriggerRatio, 80, \ |
1628 product(intx, CMSTriggerRatio, 80, \ |
1619 "Percentage of MinHeapFreeRatio in CMS generation that is " \ |
1629 "Percentage of MinHeapFreeRatio in CMS generation that is " \ |
1620 " allocated before a CMS collection cycle commences") \ |
1630 "allocated before a CMS collection cycle commences") \ |
1621 \ |
1631 \ |
1622 product(intx, CMSTriggerPermRatio, 80, \ |
1632 product(intx, CMSTriggerPermRatio, 80, \ |
1623 "Percentage of MinHeapFreeRatio in the CMS perm generation that" \ |
1633 "Percentage of MinHeapFreeRatio in the CMS perm generation that " \ |
1624 " is allocated before a CMS collection cycle commences, that " \ |
1634 "is allocated before a CMS collection cycle commences, that " \ |
1625 " also collects the perm generation") \ |
1635 "also collects the perm generation") \ |
1626 \ |
1636 \ |
1627 product(uintx, CMSBootstrapOccupancy, 50, \ |
1637 product(uintx, CMSBootstrapOccupancy, 50, \ |
1628 "Percentage CMS generation occupancy at which to " \ |
1638 "Percentage CMS generation occupancy at which to " \ |
1629 " initiate CMS collection for bootstrapping collection stats") \ |
1639 "initiate CMS collection for bootstrapping collection stats") \ |
1630 \ |
1640 \ |
1631 product(intx, CMSInitiatingOccupancyFraction, -1, \ |
1641 product(intx, CMSInitiatingOccupancyFraction, -1, \ |
1632 "Percentage CMS generation occupancy to start a CMS collection " \ |
1642 "Percentage CMS generation occupancy to start a CMS collection " \ |
1633 " cycle (A negative value means that CMSTriggerRatio is used)") \ |
1643 "cycle. A negative value means that CMSTriggerRatio is used") \ |
1634 \ |
1644 \ |
1635 product(intx, CMSInitiatingPermOccupancyFraction, -1, \ |
1645 product(intx, CMSInitiatingPermOccupancyFraction, -1, \ |
1636 "Percentage CMS perm generation occupancy to start a CMScollection"\ |
1646 "Percentage CMS perm generation occupancy to start a " \ |
1637 " cycle (A negative value means that CMSTriggerPermRatio is used)")\ |
1647 "CMScollection cycle. A negative value means that " \ |
|
1648 "CMSTriggerPermRatio is used") \ |
1638 \ |
1649 \ |
1639 product(bool, UseCMSInitiatingOccupancyOnly, false, \ |
1650 product(bool, UseCMSInitiatingOccupancyOnly, false, \ |
1640 "Only use occupancy as a crierion for starting a CMS collection") \ |
1651 "Only use occupancy as a crierion for starting a CMS collection") \ |
1641 \ |
1652 \ |
1642 product(intx, CMSIsTooFullPercentage, 98, \ |
1653 product(intx, CMSIsTooFullPercentage, 98, \ |
1643 "An absolute ceiling above which CMS will always consider the" \ |
1654 "An absolute ceiling above which CMS will always consider the " \ |
1644 " perm gen ripe for collection") \ |
1655 "perm gen ripe for collection") \ |
1645 \ |
1656 \ |
1646 develop(bool, CMSTestInFreeList, false, \ |
1657 develop(bool, CMSTestInFreeList, false, \ |
1647 "Check if the coalesced range is already in the " \ |
1658 "Check if the coalesced range is already in the " \ |
1648 "free lists as claimed.") \ |
1659 "free lists as claimed") \ |
1649 \ |
1660 \ |
1650 notproduct(bool, CMSVerifyReturnedBytes, false, \ |
1661 notproduct(bool, CMSVerifyReturnedBytes, false, \ |
1651 "Check that all the garbage collected was returned to the " \ |
1662 "Check that all the garbage collected was returned to the " \ |
1652 "free lists.") \ |
1663 "free lists.") \ |
1653 \ |
1664 \ |
1661 \ |
1672 \ |
1662 notproduct(bool, GCALotAtAllSafepoints, false, \ |
1673 notproduct(bool, GCALotAtAllSafepoints, false, \ |
1663 "Enforce ScavengeALot/GCALot at all potential safepoints") \ |
1674 "Enforce ScavengeALot/GCALot at all potential safepoints") \ |
1664 \ |
1675 \ |
1665 product(bool, HandlePromotionFailure, true, \ |
1676 product(bool, HandlePromotionFailure, true, \ |
1666 "The youngest generation collection does not require" \ |
1677 "The youngest generation collection does not require " \ |
1667 " a guarantee of full promotion of all live objects.") \ |
1678 "a guarantee of full promotion of all live objects.") \ |
1668 \ |
1679 \ |
1669 notproduct(bool, PromotionFailureALot, false, \ |
1680 notproduct(bool, PromotionFailureALot, false, \ |
1670 "Use promotion failure handling on every youngest generation " \ |
1681 "Use promotion failure handling on every youngest generation " \ |
1671 "collection") \ |
1682 "collection") \ |
1672 \ |
1683 \ |
1690 \ |
1701 \ |
1691 develop(uintx, WorkStealingSpinToYieldRatio, 10, \ |
1702 develop(uintx, WorkStealingSpinToYieldRatio, 10, \ |
1692 "Ratio of hard spins to calls to yield") \ |
1703 "Ratio of hard spins to calls to yield") \ |
1693 \ |
1704 \ |
1694 product(uintx, PreserveMarkStackSize, 1024, \ |
1705 product(uintx, PreserveMarkStackSize, 1024, \ |
1695 "Size for stack used in promotion failure handling") \ |
1706 "Size for stack used in promotion failure handling") \ |
1696 \ |
1707 \ |
1697 product_pd(bool, UseTLAB, "Use thread-local object allocation") \ |
1708 product_pd(bool, UseTLAB, "Use thread-local object allocation") \ |
1698 \ |
1709 \ |
1699 product_pd(bool, ResizeTLAB, \ |
1710 product_pd(bool, ResizeTLAB, \ |
1700 "Dynamically resize tlab size for threads") \ |
1711 "Dynamically resize tlab size for threads") \ |
1718 "Never act like a server-class machine") \ |
1729 "Never act like a server-class machine") \ |
1719 \ |
1730 \ |
1720 product(bool, AlwaysActAsServerClassMachine, false, \ |
1731 product(bool, AlwaysActAsServerClassMachine, false, \ |
1721 "Always act like a server-class machine") \ |
1732 "Always act like a server-class machine") \ |
1722 \ |
1733 \ |
1723 product_pd(uintx, DefaultMaxRAM, \ |
1734 product_pd(uint64_t, MaxRAM, \ |
1724 "Maximum real memory size for setting server class heap size") \ |
1735 "Real memory size (in bytes) used to set maximum heap size") \ |
|
1736 \ |
|
1737 product(uintx, ErgoHeapSizeLimit, 0, \ |
|
1738 "Maximum ergonomically set heap size (in bytes); zero means use " \ |
|
1739 "MaxRAM / MaxRAMFraction") \ |
|
1740 \ |
|
1741 product(uintx, MaxRAMFraction, 4, \ |
|
1742 "Maximum fraction (1/n) of real memory used for maximum heap " \ |
|
1743 "size") \ |
1725 \ |
1744 \ |
1726 product(uintx, DefaultMaxRAMFraction, 4, \ |
1745 product(uintx, DefaultMaxRAMFraction, 4, \ |
1727 "Fraction (1/n) of real memory used for server class max heap") \ |
1746 "Maximum fraction (1/n) of real memory used for maximum heap " \ |
1728 \ |
1747 "size; deprecated: to be renamed to MaxRAMFraction") \ |
1729 product(uintx, DefaultInitialRAMFraction, 64, \ |
1748 \ |
1730 "Fraction (1/n) of real memory used for server class initial heap") \ |
1749 product(uintx, MinRAMFraction, 2, \ |
|
1750 "Minimum fraction (1/n) of real memory used for maxmimum heap " \ |
|
1751 "size on systems with small physical memory size") \ |
|
1752 \ |
|
1753 product(uintx, InitialRAMFraction, 64, \ |
|
1754 "Fraction (1/n) of real memory used for initial heap size") \ |
1731 \ |
1755 \ |
1732 product(bool, UseAutoGCSelectPolicy, false, \ |
1756 product(bool, UseAutoGCSelectPolicy, false, \ |
1733 "Use automatic collection selection policy") \ |
1757 "Use automatic collection selection policy") \ |
1734 \ |
1758 \ |
1735 product(uintx, AutoGCSelectPauseMillis, 5000, \ |
1759 product(uintx, AutoGCSelectPauseMillis, 5000, \ |
1776 \ |
1800 \ |
1777 develop(uintx, AdaptiveSizePolicyReadyThreshold, 5, \ |
1801 develop(uintx, AdaptiveSizePolicyReadyThreshold, 5, \ |
1778 "Number of collections before the adaptive sizing is started") \ |
1802 "Number of collections before the adaptive sizing is started") \ |
1779 \ |
1803 \ |
1780 product(uintx, AdaptiveSizePolicyOutputInterval, 0, \ |
1804 product(uintx, AdaptiveSizePolicyOutputInterval, 0, \ |
1781 "Collecton interval for printing information, zero => never") \ |
1805 "Collecton interval for printing information; zero => never") \ |
1782 \ |
1806 \ |
1783 product(bool, UseAdaptiveSizePolicyFootprintGoal, true, \ |
1807 product(bool, UseAdaptiveSizePolicyFootprintGoal, true, \ |
1784 "Use adaptive minimum footprint as a goal") \ |
1808 "Use adaptive minimum footprint as a goal") \ |
1785 \ |
1809 \ |
1786 product(uintx, AdaptiveSizePolicyWeight, 10, \ |
1810 product(uintx, AdaptiveSizePolicyWeight, 10, \ |
1806 \ |
1830 \ |
1807 product(uintx, ThresholdTolerance, 10, \ |
1831 product(uintx, ThresholdTolerance, 10, \ |
1808 "Allowed collection cost difference between generations") \ |
1832 "Allowed collection cost difference between generations") \ |
1809 \ |
1833 \ |
1810 product(uintx, AdaptiveSizePolicyCollectionCostMargin, 50, \ |
1834 product(uintx, AdaptiveSizePolicyCollectionCostMargin, 50, \ |
1811 "If collection costs are within margin, reduce both by full delta") \ |
1835 "If collection costs are within margin, reduce both by full " \ |
|
1836 "delta") \ |
1812 \ |
1837 \ |
1813 product(uintx, YoungGenerationSizeIncrement, 20, \ |
1838 product(uintx, YoungGenerationSizeIncrement, 20, \ |
1814 "Adaptive size percentage change in young generation") \ |
1839 "Adaptive size percentage change in young generation") \ |
1815 \ |
1840 \ |
1816 product(uintx, YoungGenerationSizeSupplement, 80, \ |
1841 product(uintx, YoungGenerationSizeSupplement, 80, \ |
2525 develop(bool, VerifyDataPointer, trueInDebug, \ |
2550 develop(bool, VerifyDataPointer, trueInDebug, \ |
2526 "Verify the method data pointer during interpreter profiling") \ |
2551 "Verify the method data pointer during interpreter profiling") \ |
2527 \ |
2552 \ |
2528 develop(bool, VerifyCompiledCode, false, \ |
2553 develop(bool, VerifyCompiledCode, false, \ |
2529 "Include miscellaneous runtime verifications in nmethod code; " \ |
2554 "Include miscellaneous runtime verifications in nmethod code; " \ |
2530 "off by default because it disturbs nmethod size heuristics.") \ |
2555 "default off because it disturbs nmethod size heuristics") \ |
2531 \ |
2556 \ |
2532 \ |
2557 \ |
2533 /* compilation */ \ |
2558 /* compilation */ \ |
2534 product(bool, UseCompiler, true, \ |
2559 product(bool, UseCompiler, true, \ |
2535 "use compilation") \ |
2560 "use compilation") \ |
2787 product(intx, PreBlockSpin, 10, \ |
2812 product(intx, PreBlockSpin, 10, \ |
2788 "Number of times to spin in an inflated lock before going to " \ |
2813 "Number of times to spin in an inflated lock before going to " \ |
2789 "an OS lock") \ |
2814 "an OS lock") \ |
2790 \ |
2815 \ |
2791 /* gc parameters */ \ |
2816 /* gc parameters */ \ |
2792 product(uintx, MaxHeapSize, ScaleForWordSize(64*M), \ |
2817 product(uintx, InitialHeapSize, 0, \ |
2793 "Default maximum size for object heap (in bytes)") \ |
2818 "Initial heap size (in bytes); zero means OldSize + NewSize") \ |
2794 \ |
2819 \ |
2795 product_pd(uintx, NewSize, \ |
2820 product(uintx, MaxHeapSize, ScaleForWordSize(96*M), \ |
2796 "Default size of new generation (in bytes)") \ |
2821 "Maximum heap size (in bytes)") \ |
|
2822 \ |
|
2823 product(uintx, OldSize, ScaleForWordSize(4*M), \ |
|
2824 "Initial tenured generation size (in bytes)") \ |
|
2825 \ |
|
2826 product(uintx, NewSize, ScaleForWordSize(4*M), \ |
|
2827 "Initial new generation size (in bytes)") \ |
2797 \ |
2828 \ |
2798 product(uintx, MaxNewSize, max_uintx, \ |
2829 product(uintx, MaxNewSize, max_uintx, \ |
2799 "Maximum size of new generation (in bytes)") \ |
2830 "Maximum new generation size (in bytes), max_uintx means set " \ |
|
2831 "ergonomically") \ |
2800 \ |
2832 \ |
2801 product(uintx, PretenureSizeThreshold, 0, \ |
2833 product(uintx, PretenureSizeThreshold, 0, \ |
2802 "Max size in bytes of objects allocated in DefNew generation") \ |
2834 "Maximum size in bytes of objects allocated in DefNew " \ |
2803 \ |
2835 "generation; zero means no maximum") \ |
2804 product_pd(uintx, TLABSize, \ |
2836 \ |
2805 "Default (or starting) size of TLAB (in bytes)") \ |
2837 product(uintx, TLABSize, 0, \ |
|
2838 "Starting TLAB size (in bytes); zero means set ergonomically") \ |
2806 \ |
2839 \ |
2807 product(uintx, MinTLABSize, 2*K, \ |
2840 product(uintx, MinTLABSize, 2*K, \ |
2808 "Minimum allowed TLAB size (in bytes)") \ |
2841 "Minimum allowed TLAB size (in bytes)") \ |
2809 \ |
2842 \ |
2810 product(uintx, TLABAllocationWeight, 35, \ |
2843 product(uintx, TLABAllocationWeight, 35, \ |
2817 "Max TLAB waste at a refill (internal fragmentation)") \ |
2850 "Max TLAB waste at a refill (internal fragmentation)") \ |
2818 \ |
2851 \ |
2819 product(uintx, TLABWasteIncrement, 4, \ |
2852 product(uintx, TLABWasteIncrement, 4, \ |
2820 "Increment allowed waste at slow allocation") \ |
2853 "Increment allowed waste at slow allocation") \ |
2821 \ |
2854 \ |
2822 product_pd(intx, SurvivorRatio, \ |
2855 product(intx, SurvivorRatio, 8, \ |
2823 "Ratio of eden/survivor space size") \ |
2856 "Ratio of eden/survivor space size") \ |
2824 \ |
2857 \ |
2825 product_pd(intx, NewRatio, \ |
2858 product(intx, NewRatio, 2, \ |
2826 "Ratio of new/old generation sizes") \ |
2859 "Ratio of new/old generation sizes") \ |
2827 \ |
2860 \ |
2828 product(uintx, MaxLiveObjectEvacuationRatio, 100, \ |
2861 product(uintx, MaxLiveObjectEvacuationRatio, 100, \ |
2829 "Max percent of eden objects that will be live at scavenge") \ |
2862 "Max percent of eden objects that will be live at scavenge") \ |
2830 \ |
2863 \ |
2831 product_pd(uintx, NewSizeThreadIncrease, \ |
2864 product_pd(uintx, NewSizeThreadIncrease, \ |
2832 "Additional size added to desired new generation size per " \ |
2865 "Additional size added to desired new generation size per " \ |
2833 "non-daemon thread (in bytes)") \ |
2866 "non-daemon thread (in bytes)") \ |
2834 \ |
2867 \ |
2835 product(uintx, OldSize, ScaleForWordSize(4096*K), \ |
|
2836 "Default size of tenured generation (in bytes)") \ |
|
2837 \ |
|
2838 product_pd(uintx, PermSize, \ |
2868 product_pd(uintx, PermSize, \ |
2839 "Default size of permanent generation (in bytes)") \ |
2869 "Initial size of permanent generation (in bytes)") \ |
2840 \ |
2870 \ |
2841 product_pd(uintx, MaxPermSize, \ |
2871 product_pd(uintx, MaxPermSize, \ |
2842 "Maximum size of permanent generation (in bytes)") \ |
2872 "Maximum size of permanent generation (in bytes)") \ |
2843 \ |
2873 \ |
2844 product(uintx, MinHeapFreeRatio, 40, \ |
2874 product(uintx, MinHeapFreeRatio, 40, \ |