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