113 const size_t defaultSymbolTableSize = 32768; // 2^15
114 const size_t minimumSymbolTableSize = 1024;
115
116 #ifdef _LP64
117 #define LP64_RUNTIME_FLAGS(develop, \
118 develop_pd, \
119 product, \
120 product_pd, \
121 notproduct, \
122 range, \
123 constraint) \
124 \
125 product(bool, UseCompressedOops, false, \
126 "Use 32-bit object references in 64-bit VM. " \
127 "lp64_product means flag is always constant in 32 bit VM") \
128 \
129 product(bool, UseCompressedClassPointers, true, \
130 "Use 32-bit class pointers in 64-bit VM. " \
131 "lp64_product means flag is always constant in 32 bit VM") \
132 \
133 product(int, ObjectAlignmentInBytes, 8, \
134 "Default object alignment in bytes, 8 is minimum") \
135 range(8, 256) \
136 constraint(ObjectAlignmentInBytesConstraintFunc, AtParse)
137
138 #else
139 // !_LP64
140
141 #define LP64_RUNTIME_FLAGS(develop, \
142 develop_pd, \
143 product, \
144 product_pd, \
145 notproduct, \
146 range, \
147 constraint)
148 const bool UseCompressedOops = false;
149 const bool UseCompressedClassPointers = false;
150 const int ObjectAlignmentInBytes = 8;
151
152 #endif // _LP64
153
154 #define RUNTIME_FLAGS(develop, \
155 develop_pd, \
156 product, \
157 product_pd, \
158 notproduct, \
159 range, \
160 constraint) \
161 \
162 notproduct(bool, CheckCompressedOops, true, \
163 "Generate checks in encoding/decoding code in debug VM") \
164 \
165 product(uintx, HeapSearchSteps, 3 PPC64_ONLY(+17), \
166 "Heap allocation steps through preferred address regions to find" \
167 " where it can allocate the heap. Number of steps to take per " \
168 "region.") \
169 range(1, max_uintx) \
1038 product(ccstr, ErrorFile, nullptr, \
1039 "If an error occurs, save the error data to this file " \
1040 "[default: ./hs_err_pid%p.log] (%p replaced with pid)") \
1041 \
1042 product(bool, ExtensiveErrorReports, \
1043 PRODUCT_ONLY(false) NOT_PRODUCT(true), \
1044 "Error reports are more extensive.") \
1045 \
1046 product(bool, DisplayVMOutputToStderr, false, \
1047 "If DisplayVMOutput is true, display all VM output to stderr") \
1048 \
1049 product(bool, DisplayVMOutputToStdout, false, \
1050 "If DisplayVMOutput is true, display all VM output to stdout") \
1051 \
1052 product(bool, ErrorFileToStderr, false, \
1053 "If true, error data is printed to stderr instead of a file") \
1054 \
1055 product(bool, ErrorFileToStdout, false, \
1056 "If true, error data is printed to stdout instead of a file") \
1057 \
1058 develop(bool, UseHeavyMonitors, false, \
1059 "(Deprecated) Use heavyweight instead of lightweight Java " \
1060 "monitors") \
1061 \
1062 develop(bool, VerifyHeavyMonitors, false, \
1063 "Checks that no stack locking happens when using " \
1064 "+UseHeavyMonitors") \
1065 \
1066 product(bool, PrintStringTableStatistics, false, \
1067 "print statistics about the StringTable and SymbolTable") \
1068 \
1069 product(bool, VerifyStringTableAtExit, false, DIAGNOSTIC, \
1070 "verify StringTable contents at exit") \
1071 \
1072 notproduct(bool, PrintSymbolTableSizeHistogram, false, \
1073 "print histogram of the symbol table") \
1074 \
1075 product(ccstr, AbortVMOnException, nullptr, DIAGNOSTIC, \
1076 "Call fatal if this exception is thrown. Example: " \
1077 "java -XX:AbortVMOnException=java.lang.NullPointerException Foo") \
1078 \
1962 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1963 "Flight Recorder options")) \
1964 \
1965 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1966 "Start flight recording with options")) \
1967 \
1968 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1969 "Use platform unstable time where supported for timestamps only") \
1970 \
1971 product(bool, UseEmptySlotsInSupers, true, \
1972 "Allow allocating fields in empty slots of super-classes") \
1973 \
1974 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1975 "Make nmethod barriers deoptimise a lot.") \
1976 \
1977 develop(bool, VerifyCrossModifyFence, \
1978 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1979 "Mark all threads after a safepoint, and clear on a modify " \
1980 "fence. Add cleanliness checks.") \
1981 \
1982 product(int, LockingMode, LM_LEGACY, EXPERIMENTAL, \
1983 "Select locking mode: " \
1984 "0: monitors only (LM_MONITOR), " \
1985 "1: monitors & legacy stack-locking (LM_LEGACY, default), " \
1986 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT)") \
1987 range(0, 2) \
1988 \
1989 product(uint, TrimNativeHeapInterval, 0, EXPERIMENTAL, \
1990 "Interval, in ms, at which the JVM will trim the native heap if " \
1991 "the platform supports that. Lower values will reclaim memory " \
1992 "more eagerly at the cost of higher overhead. A value of 0 " \
1993 "(default) disables native heap trimming.") \
1994 range(0, UINT_MAX) \
1995
1996 // end of RUNTIME_FLAGS
1997
1998 DECLARE_FLAGS(LP64_RUNTIME_FLAGS)
1999 DECLARE_ARCH_FLAGS(ARCH_FLAGS)
2000 DECLARE_FLAGS(RUNTIME_FLAGS)
2001 DECLARE_FLAGS(RUNTIME_OS_FLAGS)
|
113 const size_t defaultSymbolTableSize = 32768; // 2^15
114 const size_t minimumSymbolTableSize = 1024;
115
116 #ifdef _LP64
117 #define LP64_RUNTIME_FLAGS(develop, \
118 develop_pd, \
119 product, \
120 product_pd, \
121 notproduct, \
122 range, \
123 constraint) \
124 \
125 product(bool, UseCompressedOops, false, \
126 "Use 32-bit object references in 64-bit VM. " \
127 "lp64_product means flag is always constant in 32 bit VM") \
128 \
129 product(bool, UseCompressedClassPointers, true, \
130 "Use 32-bit class pointers in 64-bit VM. " \
131 "lp64_product means flag is always constant in 32 bit VM") \
132 \
133 product(bool, UseCompactObjectHeaders, false, EXPERIMENTAL, \
134 "Use 64-bit object headers instead of 96-bit headers") \
135 \
136 product(int, ObjectAlignmentInBytes, 8, \
137 "Default object alignment in bytes, 8 is minimum") \
138 range(8, 256) \
139 constraint(ObjectAlignmentInBytesConstraintFunc, AtParse)
140
141 #else
142 // !_LP64
143
144 #define LP64_RUNTIME_FLAGS(develop, \
145 develop_pd, \
146 product, \
147 product_pd, \
148 notproduct, \
149 range, \
150 constraint)
151 const bool UseCompressedOops = false;
152 const bool UseCompressedClassPointers = false;
153 const bool UseCompactObjectHeaders = false;
154 const int ObjectAlignmentInBytes = 8;
155
156 #endif // _LP64
157
158 #define RUNTIME_FLAGS(develop, \
159 develop_pd, \
160 product, \
161 product_pd, \
162 notproduct, \
163 range, \
164 constraint) \
165 \
166 notproduct(bool, CheckCompressedOops, true, \
167 "Generate checks in encoding/decoding code in debug VM") \
168 \
169 product(uintx, HeapSearchSteps, 3 PPC64_ONLY(+17), \
170 "Heap allocation steps through preferred address regions to find" \
171 " where it can allocate the heap. Number of steps to take per " \
172 "region.") \
173 range(1, max_uintx) \
1042 product(ccstr, ErrorFile, nullptr, \
1043 "If an error occurs, save the error data to this file " \
1044 "[default: ./hs_err_pid%p.log] (%p replaced with pid)") \
1045 \
1046 product(bool, ExtensiveErrorReports, \
1047 PRODUCT_ONLY(false) NOT_PRODUCT(true), \
1048 "Error reports are more extensive.") \
1049 \
1050 product(bool, DisplayVMOutputToStderr, false, \
1051 "If DisplayVMOutput is true, display all VM output to stderr") \
1052 \
1053 product(bool, DisplayVMOutputToStdout, false, \
1054 "If DisplayVMOutput is true, display all VM output to stdout") \
1055 \
1056 product(bool, ErrorFileToStderr, false, \
1057 "If true, error data is printed to stderr instead of a file") \
1058 \
1059 product(bool, ErrorFileToStdout, false, \
1060 "If true, error data is printed to stdout instead of a file") \
1061 \
1062 product(bool, UseHeavyMonitors, false, DIAGNOSTIC, \
1063 "(Deprecated) Use heavyweight instead of lightweight Java " \
1064 "monitors") \
1065 \
1066 develop(bool, VerifyHeavyMonitors, false, \
1067 "Checks that no stack locking happens when using " \
1068 "+UseHeavyMonitors") \
1069 \
1070 product(bool, PrintStringTableStatistics, false, \
1071 "print statistics about the StringTable and SymbolTable") \
1072 \
1073 product(bool, VerifyStringTableAtExit, false, DIAGNOSTIC, \
1074 "verify StringTable contents at exit") \
1075 \
1076 notproduct(bool, PrintSymbolTableSizeHistogram, false, \
1077 "print histogram of the symbol table") \
1078 \
1079 product(ccstr, AbortVMOnException, nullptr, DIAGNOSTIC, \
1080 "Call fatal if this exception is thrown. Example: " \
1081 "java -XX:AbortVMOnException=java.lang.NullPointerException Foo") \
1082 \
1966 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1967 "Flight Recorder options")) \
1968 \
1969 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1970 "Start flight recording with options")) \
1971 \
1972 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1973 "Use platform unstable time where supported for timestamps only") \
1974 \
1975 product(bool, UseEmptySlotsInSupers, true, \
1976 "Allow allocating fields in empty slots of super-classes") \
1977 \
1978 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1979 "Make nmethod barriers deoptimise a lot.") \
1980 \
1981 develop(bool, VerifyCrossModifyFence, \
1982 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1983 "Mark all threads after a safepoint, and clear on a modify " \
1984 "fence. Add cleanliness checks.") \
1985 \
1986 product(bool, HeapObjectStats, false, DIAGNOSTIC, \
1987 "Enable gathering of heap object statistics") \
1988 \
1989 product(size_t, HeapObjectStatsSamplingInterval, 500, DIAGNOSTIC, \
1990 "Heap object statistics sampling interval (ms)") \
1991 \
1992 product(int, LockingMode, LM_LEGACY, EXPERIMENTAL, \
1993 "Select locking mode: " \
1994 "0: monitors only (LM_MONITOR), " \
1995 "1: monitors & legacy stack-locking (LM_LEGACY, default), " \
1996 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT)") \
1997 range(0, 2) \
1998 \
1999 product(uint, TrimNativeHeapInterval, 0, EXPERIMENTAL, \
2000 "Interval, in ms, at which the JVM will trim the native heap if " \
2001 "the platform supports that. Lower values will reclaim memory " \
2002 "more eagerly at the cost of higher overhead. A value of 0 " \
2003 "(default) disables native heap trimming.") \
2004 range(0, UINT_MAX) \
2005
2006 // end of RUNTIME_FLAGS
2007
2008 DECLARE_FLAGS(LP64_RUNTIME_FLAGS)
2009 DECLARE_ARCH_FLAGS(ARCH_FLAGS)
2010 DECLARE_FLAGS(RUNTIME_FLAGS)
2011 DECLARE_FLAGS(RUNTIME_OS_FLAGS)
|