111 const size_t minimumStringTableSize = 128;
112 const size_t defaultSymbolTableSize = 32768; // 2^15
113 const size_t minimumSymbolTableSize = 1024;
114
115 #ifdef _LP64
116 #define LP64_RUNTIME_FLAGS(develop, \
117 develop_pd, \
118 product, \
119 product_pd, \
120 range, \
121 constraint) \
122 \
123 product(bool, UseCompressedOops, false, \
124 "Use 32-bit object references in 64-bit VM. " \
125 "lp64_product means flag is always constant in 32 bit VM") \
126 \
127 product(bool, UseCompressedClassPointers, true, \
128 "Use 32-bit class pointers in 64-bit VM. " \
129 "lp64_product means flag is always constant in 32 bit VM") \
130 \
131 product(bool, UseCompactObjectHeaders, false, EXPERIMENTAL, \
132 "Use compact 64-bit object headers in 64-bit VM") \
133 \
134 product(int, ObjectAlignmentInBytes, 8, \
135 "Default object alignment in bytes, 8 is minimum") \
136 range(8, 256) \
137 constraint(ObjectAlignmentInBytesConstraintFunc, AtParse)
138
139 #else
140 // !_LP64
141
142 #define LP64_RUNTIME_FLAGS(develop, \
143 develop_pd, \
144 product, \
145 product_pd, \
146 range, \
147 constraint)
148 const bool UseCompressedOops = false;
149 const bool UseCompressedClassPointers = false;
150 const bool UseCompactObjectHeaders = false;
360 "Enables intrinsification of ArraysSupport.vectorizedHashCode()") \
361 \
362 product(bool, UseCopySignIntrinsic, false, DIAGNOSTIC, \
363 "Enables intrinsification of Math.copySign") \
364 \
365 product(bool, UseSignumIntrinsic, false, DIAGNOSTIC, \
366 "Enables intrinsification of Math.signum") \
367 \
368 product_pd(bool, DelayCompilerStubsGeneration, DIAGNOSTIC, \
369 "Use Compiler thread for compiler's stubs generation") \
370 \
371 product(ccstrlist, DisableIntrinsic, "", DIAGNOSTIC, \
372 "do not expand intrinsics whose (internal) names appear here") \
373 constraint(DisableIntrinsicConstraintFunc,AfterErgo) \
374 \
375 product(ccstrlist, ControlIntrinsic, "", DIAGNOSTIC, \
376 "Control intrinsics using a list of +/- (internal) names, " \
377 "separated by commas") \
378 constraint(ControlIntrinsicConstraintFunc,AfterErgo) \
379 \
380 develop(bool, TraceCallFixup, false, \
381 "Trace all call fixups") \
382 \
383 develop(bool, DeoptimizeALot, false, \
384 "Deoptimize at every exit from the runtime system") \
385 \
386 develop(ccstrlist, DeoptimizeOnlyAt, "", \
387 "A comma separated list of bcis to deoptimize at") \
388 \
389 develop(bool, DeoptimizeRandom, false, \
390 "Deoptimize random frames on random exit from the runtime system")\
391 \
392 develop(bool, ZombieALot, false, \
393 "Create non-entrant nmethods at exit from the runtime system") \
394 \
395 develop(bool, WalkStackALot, false, \
396 "Trace stack (no print) at every exit from the runtime system") \
397 \
398 develop(bool, DeoptimizeObjectsALot, false, \
399 "For testing purposes concurrent threads revert optimizations " \
996 "Print all VM flags after argument and ergonomic processing") \
997 \
998 develop(bool, PrintFlagsWithComments, false, \
999 "Print all VM flags with default values and descriptions and " \
1000 "exit") \
1001 \
1002 product(bool, PrintFlagsRanges, false, \
1003 "Print VM flags and their ranges") \
1004 \
1005 product(bool, SerializeVMOutput, true, DIAGNOSTIC, \
1006 "Use a mutex to serialize output to tty and LogFile") \
1007 \
1008 product(bool, DisplayVMOutput, true, DIAGNOSTIC, \
1009 "Display all VM output on the tty, independently of LogVMOutput") \
1010 \
1011 product(bool, LogVMOutput, false, DIAGNOSTIC, \
1012 "Save VM output to LogFile") \
1013 \
1014 product(ccstr, LogFile, nullptr, DIAGNOSTIC, \
1015 "If LogVMOutput or LogCompilation is on, save VM output to " \
1016 "this file [default: ./hotspot_pid%p.log] (%p replaced with pid)")\
1017 \
1018 product(ccstr, ErrorFile, nullptr, \
1019 "If an error occurs, save the error data to this file " \
1020 "[default: ./hs_err_pid%p.log] (%p replaced with pid)") \
1021 \
1022 product(bool, ExtensiveErrorReports, \
1023 PRODUCT_ONLY(false) NOT_PRODUCT(true), \
1024 "Error reports are more extensive.") \
1025 \
1026 product(bool, DisplayVMOutputToStderr, false, \
1027 "If DisplayVMOutput is true, display all VM output to stderr") \
1028 \
1029 product(bool, DisplayVMOutputToStdout, false, \
1030 "If DisplayVMOutput is true, display all VM output to stdout") \
1031 \
1032 product(bool, ErrorFileToStderr, false, \
1033 "If true, error data is printed to stderr instead of a file") \
1034 \
1035 product(bool, ErrorFileToStdout, false, \
1036 "If true, error data is printed to stdout instead of a file") \
1037 \
1038 develop(bool, VerifyHeavyMonitors, false, \
1039 "Checks that no stack locking happens when using " \
1040 "-XX:LockingMode=0 (LM_MONITOR)") \
1120 product(bool, UseInterpreter, true, \
1121 "Use interpreter for non-compiled methods") \
1122 \
1123 develop(bool, UseFastSignatureHandlers, true, \
1124 "Use fast signature handlers for native calls") \
1125 \
1126 product(bool, UseLoopCounter, true, \
1127 "Increment invocation counter on backward branch") \
1128 \
1129 product_pd(bool, UseOnStackReplacement, \
1130 "Use on stack replacement, calls runtime if invoc. counter " \
1131 "overflows in loop") \
1132 \
1133 develop(bool, TraceOnStackReplacement, false, \
1134 "Trace on stack replacement") \
1135 \
1136 product_pd(bool, PreferInterpreterNativeStubs, \
1137 "Use always interpreter stubs for native methods invoked via " \
1138 "interpreter") \
1139 \
1140 develop(bool, CountBytecodes, false, \
1141 "Count number of bytecodes executed") \
1142 \
1143 develop(bool, PrintBytecodeHistogram, false, \
1144 "Print histogram of the executed bytecodes") \
1145 \
1146 develop(bool, PrintBytecodePairHistogram, false, \
1147 "Print histogram of the executed bytecode pairs") \
1148 \
1149 product(bool, PrintSignatureHandlers, false, DIAGNOSTIC, \
1150 "Print code generated for native method signature handlers") \
1151 \
1152 develop(bool, VerifyOops, false, \
1153 "Do plausibility checks for oops") \
1154 \
1155 develop(bool, CheckUnhandledOops, false, \
1156 "Check for unhandled oops in VM code") \
1157 \
1158 develop(bool, VerifyJNIFields, trueInDebug, \
1159 "Verify jfieldIDs for instance fields") \
1160 \
1161 develop(bool, VerifyFPU, false, \
1162 "Verify FPU state (check for NaN's, etc.)") \
1163 \
1164 develop(bool, VerifyActivationFrameSize, false, \
1165 "Verify that activation frame didn't become smaller than its " \
1166 "minimal size") \
1167 \
1168 develop(bool, TraceFrequencyInlining, false, \
1169 "Trace frequency based inlining") \
1170 \
1171 develop_pd(bool, InlineIntrinsics, \
1172 "Use intrinsics in Interpreter that can be statically resolved") \
1173 \
1174 product_pd(bool, ProfileInterpreter, \
1175 "Profile at the bytecode level during interpretation") \
1176 \
1177 develop_pd(bool, ProfileTraps, \
1178 "Profile deoptimization traps at the bytecode level") \
1179 \
1180 product(intx, ProfileMaturityPercentage, 20, \
1181 "number of method invocations/branches (expressed as % of " \
1182 "CompileThreshold) before using the method's profile") \
1183 range(0, 100) \
1184 \
1185 product(bool, PrintMethodData, false, DIAGNOSTIC, \
1186 "Print the results of +ProfileInterpreter at end of run") \
1187 \
1188 develop(bool, VerifyDataPointer, trueInDebug, \
1189 "Verify the method data pointer during interpreter profiling") \
1190 \
1191 develop(bool, CrashGCForDumpingJavaThread, false, \
1192 "Manually make GC thread crash then dump java stack trace; " \
1193 "Test only") \
1194 \
1195 /* compilation */ \
1196 product(bool, UseCompiler, true, \
1197 "Use Just-In-Time compilation") \
1198 \
1199 product(bool, AlwaysCompileLoopMethods, false, \
1200 "When using recompilation, never interpret methods " \
1201 "containing loops") \
1202 \
1203 product(int, AllocatePrefetchStyle, 1, \
1204 "0 = no prefetch, " \
1702 product(bool, UsePerfData, true, \
1703 "Flag to disable jvmstat instrumentation for performance testing "\
1704 "and problem isolation purposes") \
1705 \
1706 product(bool, PerfDataSaveToFile, false, \
1707 "Save PerfData memory to hsperfdata_<pid> file on exit") \
1708 \
1709 product(ccstr, PerfDataSaveFile, nullptr, \
1710 "Save PerfData memory to the specified absolute pathname. " \
1711 "The string %p in the file name (if present) " \
1712 "will be replaced by pid") \
1713 \
1714 product(int, PerfDataSamplingInterval, 50, \
1715 "Data sampling interval (in milliseconds)") \
1716 range(PeriodicTask::min_interval, max_jint) \
1717 constraint(PerfDataSamplingIntervalFunc, AfterErgo) \
1718 \
1719 product(bool, PerfDisableSharedMem, false, \
1720 "Store performance data in standard memory") \
1721 \
1722 product(int, PerfDataMemorySize, 32*K, \
1723 "Size of performance data memory region. Will be rounded " \
1724 "up to a multiple of the native os page size.") \
1725 range(128, 32*64*K) \
1726 \
1727 product(int, PerfMaxStringConstLength, 1024, \
1728 "Maximum PerfStringConstant string length before truncation") \
1729 range(32, 32*K) \
1730 \
1731 product(bool, PerfAllowAtExitRegistration, false, \
1732 "Allow registration of atexit() methods") \
1733 \
1734 product(bool, PerfBypassFileSystemCheck, false, \
1735 "Bypass Win32 file system criteria checks (Windows Only)") \
1736 \
1737 product(int, UnguardOnExecutionViolation, 0, \
1738 "Unguard page and retry on no-execute fault (Win32 only) " \
1739 "0=off, 1=conservative, 2=aggressive") \
1740 range(0, 2) \
1741 \
1742 /* Serviceability Support */ \
1949 range(0, 2) \
1950 \
1951 product(bool, UseObjectMonitorTable, false, DIAGNOSTIC, \
1952 "With Lightweight Locking mode, use a table to record inflated " \
1953 "monitors rather than the first word of the object.") \
1954 \
1955 product(int, LightweightFastLockingSpins, 13, DIAGNOSTIC, \
1956 "Specifies the number of times lightweight fast locking will " \
1957 "attempt to CAS the markWord before inflating. Between each " \
1958 "CAS it will spin for exponentially more time, resulting in " \
1959 "a total number of spins on the order of O(2^value)") \
1960 range(1, 30) \
1961 \
1962 product(uint, TrimNativeHeapInterval, 0, \
1963 "Interval, in ms, at which the JVM will trim the native heap if " \
1964 "the platform supports that. Lower values will reclaim memory " \
1965 "more eagerly at the cost of higher overhead. A value of 0 " \
1966 "(default) disables native heap trimming.") \
1967 range(0, UINT_MAX) \
1968 \
1969 develop(bool, SimulateFullAddressSpace, false, \
1970 "Simulates a very populated, fragmented address space; no " \
1971 "targeted reservations will succeed.") \
1972 \
1973 product(bool, ProfileExceptionHandlers, true, \
1974 "Profile exception handlers") \
1975 \
1976 product(bool, AlwaysRecordEvolDependencies, true, EXPERIMENTAL, \
1977 "Unconditionally record nmethod dependencies on class " \
1978 "rewriting/transformation independently of the JVMTI " \
1979 "can_{retransform/redefine}_classes capabilities.") \
1980 \
1981 product(bool, UseSecondarySupersCache, true, DIAGNOSTIC, \
1982 "Use secondary supers cache during subtype checks.") \
1983 \
1984 product(bool, UseSecondarySupersTable, false, DIAGNOSTIC, \
1985 "Use hash table to lookup secondary supers.") \
1986 \
1987 product(bool, VerifySecondarySupers, false, DIAGNOSTIC, \
1988 "Check that linear and hashed secondary lookups return the same result.") \
1989 \
1990 product(bool, StressSecondarySupers, false, DIAGNOSTIC, \
1991 "Use a terrible hash function in order to generate many collisions.") \
1992 \
1993 product(bool, UseThreadsLockThrottleLock, true, DIAGNOSTIC, \
1994 "Use an extra lock during Thread start and exit to alleviate" \
1995 "contention on Threads_lock.") \
1996
1997 // end of RUNTIME_FLAGS
1998
1999 DECLARE_FLAGS(LP64_RUNTIME_FLAGS)
2000 DECLARE_ARCH_FLAGS(ARCH_FLAGS)
2001 DECLARE_FLAGS(RUNTIME_FLAGS)
2002 DECLARE_FLAGS(RUNTIME_OS_FLAGS)
2003
2004 #endif // SHARE_RUNTIME_GLOBALS_HPP
|
111 const size_t minimumStringTableSize = 128;
112 const size_t defaultSymbolTableSize = 32768; // 2^15
113 const size_t minimumSymbolTableSize = 1024;
114
115 #ifdef _LP64
116 #define LP64_RUNTIME_FLAGS(develop, \
117 develop_pd, \
118 product, \
119 product_pd, \
120 range, \
121 constraint) \
122 \
123 product(bool, UseCompressedOops, false, \
124 "Use 32-bit object references in 64-bit VM. " \
125 "lp64_product means flag is always constant in 32 bit VM") \
126 \
127 product(bool, UseCompressedClassPointers, true, \
128 "Use 32-bit class pointers in 64-bit VM. " \
129 "lp64_product means flag is always constant in 32 bit VM") \
130 \
131 /* Leyden */ \
132 product(bool, UseCompatibleCompressedOops, false, \
133 "Always use HeapBasedNarrowOop mode, so that AOT code can be " \
134 "always work regardless of runtime heap range") \
135 \
136 product(bool, UseCompactObjectHeaders, false, EXPERIMENTAL, \
137 "Use compact 64-bit object headers in 64-bit VM") \
138 \
139 product(int, ObjectAlignmentInBytes, 8, \
140 "Default object alignment in bytes, 8 is minimum") \
141 range(8, 256) \
142 constraint(ObjectAlignmentInBytesConstraintFunc, AtParse)
143
144 #else
145 // !_LP64
146
147 #define LP64_RUNTIME_FLAGS(develop, \
148 develop_pd, \
149 product, \
150 product_pd, \
151 range, \
152 constraint)
153 const bool UseCompressedOops = false;
154 const bool UseCompressedClassPointers = false;
155 const bool UseCompactObjectHeaders = false;
365 "Enables intrinsification of ArraysSupport.vectorizedHashCode()") \
366 \
367 product(bool, UseCopySignIntrinsic, false, DIAGNOSTIC, \
368 "Enables intrinsification of Math.copySign") \
369 \
370 product(bool, UseSignumIntrinsic, false, DIAGNOSTIC, \
371 "Enables intrinsification of Math.signum") \
372 \
373 product_pd(bool, DelayCompilerStubsGeneration, DIAGNOSTIC, \
374 "Use Compiler thread for compiler's stubs generation") \
375 \
376 product(ccstrlist, DisableIntrinsic, "", DIAGNOSTIC, \
377 "do not expand intrinsics whose (internal) names appear here") \
378 constraint(DisableIntrinsicConstraintFunc,AfterErgo) \
379 \
380 product(ccstrlist, ControlIntrinsic, "", DIAGNOSTIC, \
381 "Control intrinsics using a list of +/- (internal) names, " \
382 "separated by commas") \
383 constraint(ControlIntrinsicConstraintFunc,AfterErgo) \
384 \
385 develop(ccstr, AddRuntimeUpcallsNOP, nullptr, \
386 "Register a runtime upcall for testing." \
387 "Format is '[upcallType]:[methodFilter]'" \
388 "where upcallType is one of 'onMethodEntry', 'onMethodExit'" \
389 "and methodFilter is one of 'none', 'all'") \
390 \
391 develop(bool, TraceCallFixup, false, \
392 "Trace all call fixups") \
393 \
394 develop(bool, DeoptimizeALot, false, \
395 "Deoptimize at every exit from the runtime system") \
396 \
397 develop(ccstrlist, DeoptimizeOnlyAt, "", \
398 "A comma separated list of bcis to deoptimize at") \
399 \
400 develop(bool, DeoptimizeRandom, false, \
401 "Deoptimize random frames on random exit from the runtime system")\
402 \
403 develop(bool, ZombieALot, false, \
404 "Create non-entrant nmethods at exit from the runtime system") \
405 \
406 develop(bool, WalkStackALot, false, \
407 "Trace stack (no print) at every exit from the runtime system") \
408 \
409 develop(bool, DeoptimizeObjectsALot, false, \
410 "For testing purposes concurrent threads revert optimizations " \
1007 "Print all VM flags after argument and ergonomic processing") \
1008 \
1009 develop(bool, PrintFlagsWithComments, false, \
1010 "Print all VM flags with default values and descriptions and " \
1011 "exit") \
1012 \
1013 product(bool, PrintFlagsRanges, false, \
1014 "Print VM flags and their ranges") \
1015 \
1016 product(bool, SerializeVMOutput, true, DIAGNOSTIC, \
1017 "Use a mutex to serialize output to tty and LogFile") \
1018 \
1019 product(bool, DisplayVMOutput, true, DIAGNOSTIC, \
1020 "Display all VM output on the tty, independently of LogVMOutput") \
1021 \
1022 product(bool, LogVMOutput, false, DIAGNOSTIC, \
1023 "Save VM output to LogFile") \
1024 \
1025 product(ccstr, LogFile, nullptr, DIAGNOSTIC, \
1026 "If LogVMOutput or LogCompilation is on, save VM output to " \
1027 "this file [default: ./hotspot_%p.log] (%p replaced with pidNNN)")\
1028 \
1029 product(ccstr, ErrorFile, nullptr, \
1030 "If an error occurs, save the error data to this file " \
1031 "[default: ./hs_err_%p.log] (%p replaced with pidNNN)") \
1032 \
1033 product(bool, ExtensiveErrorReports, \
1034 PRODUCT_ONLY(false) NOT_PRODUCT(true), \
1035 "Error reports are more extensive.") \
1036 \
1037 product(bool, DisplayVMOutputToStderr, false, \
1038 "If DisplayVMOutput is true, display all VM output to stderr") \
1039 \
1040 product(bool, DisplayVMOutputToStdout, false, \
1041 "If DisplayVMOutput is true, display all VM output to stdout") \
1042 \
1043 product(bool, ErrorFileToStderr, false, \
1044 "If true, error data is printed to stderr instead of a file") \
1045 \
1046 product(bool, ErrorFileToStdout, false, \
1047 "If true, error data is printed to stdout instead of a file") \
1048 \
1049 develop(bool, VerifyHeavyMonitors, false, \
1050 "Checks that no stack locking happens when using " \
1051 "-XX:LockingMode=0 (LM_MONITOR)") \
1131 product(bool, UseInterpreter, true, \
1132 "Use interpreter for non-compiled methods") \
1133 \
1134 develop(bool, UseFastSignatureHandlers, true, \
1135 "Use fast signature handlers for native calls") \
1136 \
1137 product(bool, UseLoopCounter, true, \
1138 "Increment invocation counter on backward branch") \
1139 \
1140 product_pd(bool, UseOnStackReplacement, \
1141 "Use on stack replacement, calls runtime if invoc. counter " \
1142 "overflows in loop") \
1143 \
1144 develop(bool, TraceOnStackReplacement, false, \
1145 "Trace on stack replacement") \
1146 \
1147 product_pd(bool, PreferInterpreterNativeStubs, \
1148 "Use always interpreter stubs for native methods invoked via " \
1149 "interpreter") \
1150 \
1151 product(bool, CountBytecodes, false, DIAGNOSTIC, \
1152 "Count number of bytecodes executed") \
1153 \
1154 product(bool, CountBytecodesPerThread, false, DIAGNOSTIC, \
1155 "Count number of bytecodes executed per thread") \
1156 \
1157 product(bool, PrintBytecodeHistogram, false, DIAGNOSTIC, \
1158 "Print histogram of the executed bytecodes") \
1159 \
1160 product(double, PrintBytecodeHistogramCutoff, 0.01, \
1161 "Print cutoff for histogram of the executed bytecodes") \
1162 range(0.0, 100.0) \
1163 \
1164 develop(bool, PrintBytecodePairHistogram, false, \
1165 "Print histogram of the executed bytecode pairs") \
1166 \
1167 product(bool, PrintSignatureHandlers, false, DIAGNOSTIC, \
1168 "Print code generated for native method signature handlers") \
1169 \
1170 develop(bool, VerifyOops, false, \
1171 "Do plausibility checks for oops") \
1172 \
1173 develop(bool, CheckUnhandledOops, false, \
1174 "Check for unhandled oops in VM code") \
1175 \
1176 develop(bool, VerifyJNIFields, trueInDebug, \
1177 "Verify jfieldIDs for instance fields") \
1178 \
1179 develop(bool, VerifyFPU, false, \
1180 "Verify FPU state (check for NaN's, etc.)") \
1181 \
1182 develop(bool, VerifyActivationFrameSize, false, \
1183 "Verify that activation frame didn't become smaller than its " \
1184 "minimal size") \
1185 \
1186 develop(bool, TraceFrequencyInlining, false, \
1187 "Trace frequency based inlining") \
1188 \
1189 develop_pd(bool, InlineIntrinsics, \
1190 "Use intrinsics in Interpreter that can be statically resolved") \
1191 \
1192 product_pd(bool, ProfileInterpreter, \
1193 "Profile at the bytecode level during interpretation") \
1194 \
1195 develop_pd(bool, ProfileTraps, \
1196 "Profile deoptimization traps at the bytecode level") \
1197 \
1198 product(intx, ProfileMaturityPercentage, 20, \
1199 "number of method invocations/branches (expressed as % of " \
1200 "CompileThreshold) before using the method's profile") \
1201 range(0, 100) \
1202 \
1203 product(bool, ForceProfiling, false, DIAGNOSTIC, \
1204 "Eagerly allocate MDOs") \
1205 \
1206 product(bool, PrintMethodData, false, DIAGNOSTIC, \
1207 "Print the results of +ProfileInterpreter at end of run") \
1208 \
1209 develop(bool, VerifyDataPointer, trueInDebug, \
1210 "Verify the method data pointer during interpreter profiling") \
1211 \
1212 develop(bool, CrashGCForDumpingJavaThread, false, \
1213 "Manually make GC thread crash then dump java stack trace; " \
1214 "Test only") \
1215 \
1216 /* compilation */ \
1217 product(bool, UseCompiler, true, \
1218 "Use Just-In-Time compilation") \
1219 \
1220 product(bool, AlwaysCompileLoopMethods, false, \
1221 "When using recompilation, never interpret methods " \
1222 "containing loops") \
1223 \
1224 product(int, AllocatePrefetchStyle, 1, \
1225 "0 = no prefetch, " \
1723 product(bool, UsePerfData, true, \
1724 "Flag to disable jvmstat instrumentation for performance testing "\
1725 "and problem isolation purposes") \
1726 \
1727 product(bool, PerfDataSaveToFile, false, \
1728 "Save PerfData memory to hsperfdata_<pid> file on exit") \
1729 \
1730 product(ccstr, PerfDataSaveFile, nullptr, \
1731 "Save PerfData memory to the specified absolute pathname. " \
1732 "The string %p in the file name (if present) " \
1733 "will be replaced by pid") \
1734 \
1735 product(int, PerfDataSamplingInterval, 50, \
1736 "Data sampling interval (in milliseconds)") \
1737 range(PeriodicTask::min_interval, max_jint) \
1738 constraint(PerfDataSamplingIntervalFunc, AfterErgo) \
1739 \
1740 product(bool, PerfDisableSharedMem, false, \
1741 "Store performance data in standard memory") \
1742 \
1743 product(int, PerfDataMemorySize, 64*K, \
1744 "Size of performance data memory region. Will be rounded " \
1745 "up to a multiple of the native os page size.") \
1746 range(128, 32*64*K) \
1747 \
1748 product(int, PerfMaxStringConstLength, 1024, \
1749 "Maximum PerfStringConstant string length before truncation") \
1750 range(32, 32*K) \
1751 \
1752 product(bool, PerfAllowAtExitRegistration, false, \
1753 "Allow registration of atexit() methods") \
1754 \
1755 product(bool, PerfBypassFileSystemCheck, false, \
1756 "Bypass Win32 file system criteria checks (Windows Only)") \
1757 \
1758 product(int, UnguardOnExecutionViolation, 0, \
1759 "Unguard page and retry on no-execute fault (Win32 only) " \
1760 "0=off, 1=conservative, 2=aggressive") \
1761 range(0, 2) \
1762 \
1763 /* Serviceability Support */ \
1970 range(0, 2) \
1971 \
1972 product(bool, UseObjectMonitorTable, false, DIAGNOSTIC, \
1973 "With Lightweight Locking mode, use a table to record inflated " \
1974 "monitors rather than the first word of the object.") \
1975 \
1976 product(int, LightweightFastLockingSpins, 13, DIAGNOSTIC, \
1977 "Specifies the number of times lightweight fast locking will " \
1978 "attempt to CAS the markWord before inflating. Between each " \
1979 "CAS it will spin for exponentially more time, resulting in " \
1980 "a total number of spins on the order of O(2^value)") \
1981 range(1, 30) \
1982 \
1983 product(uint, TrimNativeHeapInterval, 0, \
1984 "Interval, in ms, at which the JVM will trim the native heap if " \
1985 "the platform supports that. Lower values will reclaim memory " \
1986 "more eagerly at the cost of higher overhead. A value of 0 " \
1987 "(default) disables native heap trimming.") \
1988 range(0, UINT_MAX) \
1989 \
1990 product(bool, ProfileVMLocks, false, DIAGNOSTIC, \
1991 "Profile VM locks usage on main thread") \
1992 \
1993 product(bool, ProfileVMCalls, false, DIAGNOSTIC, \
1994 "Profile VM calls on main thread") \
1995 \
1996 product(bool, ProfileVMOps, true, DIAGNOSTIC, \
1997 "Profile VM operations on main thread") \
1998 \
1999 product(bool, ProfileRuntimeCalls, false, DIAGNOSTIC, \
2000 "Profile calls into VM runtime on main thread") \
2001 \
2002 develop(bool, SimulateFullAddressSpace, false, \
2003 "Simulates a very populated, fragmented address space; no " \
2004 "targeted reservations will succeed.") \
2005 \
2006 product(bool, ProfileExceptionHandlers, true, \
2007 "Profile exception handlers") \
2008 \
2009 product(bool, AlwaysRecordEvolDependencies, true, EXPERIMENTAL, \
2010 "Unconditionally record nmethod dependencies on class " \
2011 "rewriting/transformation independently of the JVMTI " \
2012 "can_{retransform/redefine}_classes capabilities.") \
2013 \
2014 product(bool, TraceThreadTime, false, \
2015 "Enable tracing of thread time in Perf counters") \
2016 \
2017 product(bool, UseSecondarySupersCache, true, DIAGNOSTIC, \
2018 "Use secondary supers cache during subtype checks.") \
2019 \
2020 product(bool, UseSecondarySupersTable, false, DIAGNOSTIC, \
2021 "Use hash table to lookup secondary supers.") \
2022 \
2023 product(bool, VerifySecondarySupers, false, DIAGNOSTIC, \
2024 "Check that linear and hashed secondary lookups return the same result.") \
2025 \
2026 product(bool, StressSecondarySupers, false, DIAGNOSTIC, \
2027 "Use a terrible hash function in order to generate many collisions.") \
2028 \
2029 product(bool, UseThreadsLockThrottleLock, true, DIAGNOSTIC, \
2030 "Use an extra lock during Thread start and exit to alleviate" \
2031 "contention on Threads_lock.") \
2032
2033
2034 // end of RUNTIME_FLAGS
2035
2036 DECLARE_FLAGS(LP64_RUNTIME_FLAGS)
2037 DECLARE_ARCH_FLAGS(ARCH_FLAGS)
2038 DECLARE_FLAGS(RUNTIME_FLAGS)
2039 DECLARE_FLAGS(RUNTIME_OS_FLAGS)
2040
2041 #endif // SHARE_RUNTIME_GLOBALS_HPP
|