796 "Maximum allowable local JNI handle capacity to " \
797 "EnsureLocalCapacity() and PushLocalFrame(), " \
798 "where <= 0 is unlimited, default: 65536") \
799 range(min_intx, max_intx) \
800 \
801 product(bool, EagerXrunInit, false, \
802 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
803 "but not all -Xrun libraries may support the state of the VM " \
804 "at this time") \
805 \
806 product(bool, PreserveAllAnnotations, false, \
807 "Preserve RuntimeInvisibleAnnotations as well " \
808 "as RuntimeVisibleAnnotations") \
809 \
810 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
811 "Number of OutOfMemoryErrors preallocated with backtrace") \
812 \
813 product(bool, UseXMMForArrayCopy, false, \
814 "Use SSE2 MOVQ instruction for Arraycopy") \
815 \
816 notproduct(bool, PrintFieldLayout, false, \
817 "Print field layout for each class") \
818 \
819 /* Need to limit the extent of the padding to reasonable size. */\
820 /* 8K is well beyond the reasonable HW cache line size, even with */\
821 /* aggressive prefetching, while still leaving the room for segregating */\
822 /* among the distinct pages. */\
823 product(int, ContendedPaddingWidth, 128, \
824 "How many bytes to pad the fields/classes marked @Contended with")\
825 range(0, 8192) \
826 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
827 \
828 product(bool, EnableContended, true, \
829 "Enable @Contended annotation support") \
830 \
831 product(bool, RestrictContended, true, \
832 "Restrict @Contended to trusted classes") \
833 \
834 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
835 "Detect and take action upon identifying synchronization on " \
836 "value based classes. Modes: " \
837 "0: off; " \
838 "1: exit with fatal error; " \
1952 "On internal errors, include registers in error report.") \
1953 \
1954 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1955 "leverage profiling for table/lookup switch") \
1956 \
1957 develop(bool, TraceMemoryWriteback, false, \
1958 "Trace memory writeback operations") \
1959 \
1960 JFR_ONLY(product(bool, FlightRecorder, false, \
1961 "(Deprecated) Enable Flight Recorder")) \
1962 \
1963 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1964 "Flight Recorder options")) \
1965 \
1966 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1967 "Start flight recording with options")) \
1968 \
1969 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1970 "Use platform unstable time where supported for timestamps only") \
1971 \
1972 product(bool, UseEmptySlotsInSupers, true, \
1973 "Allow allocating fields in empty slots of super-classes") \
1974 \
1975 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1976 "Make nmethod barriers deoptimise a lot.") \
1977 \
1978 develop(bool, VerifyCrossModifyFence, \
1979 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1980 "Mark all threads after a safepoint, and clear on a modify " \
1981 "fence. Add cleanliness checks.") \
1982 \
1983 product(int, LockingMode, LM_LEGACY, \
1984 "Select locking mode: " \
1985 "0: monitors only (LM_MONITOR), " \
1986 "1: monitors & legacy stack-locking (LM_LEGACY, default), " \
1987 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT)") \
1988 range(0, 2) \
1989 \
1990 product(uint, TrimNativeHeapInterval, 0, EXPERIMENTAL, \
1991 "Interval, in ms, at which the JVM will trim the native heap if " \
|
796 "Maximum allowable local JNI handle capacity to " \
797 "EnsureLocalCapacity() and PushLocalFrame(), " \
798 "where <= 0 is unlimited, default: 65536") \
799 range(min_intx, max_intx) \
800 \
801 product(bool, EagerXrunInit, false, \
802 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
803 "but not all -Xrun libraries may support the state of the VM " \
804 "at this time") \
805 \
806 product(bool, PreserveAllAnnotations, false, \
807 "Preserve RuntimeInvisibleAnnotations as well " \
808 "as RuntimeVisibleAnnotations") \
809 \
810 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
811 "Number of OutOfMemoryErrors preallocated with backtrace") \
812 \
813 product(bool, UseXMMForArrayCopy, false, \
814 "Use SSE2 MOVQ instruction for Arraycopy") \
815 \
816 product(bool, PrintFieldLayout, false, DIAGNOSTIC, \
817 "Print field layout for each class") \
818 \
819 product(bool, PrintInlineLayout, false, DIAGNOSTIC, \
820 "Print field layout for each inline type or class with inline fields") \
821 \
822 notproduct(bool, PrintFlatArrayLayout, false, \
823 "Print array layout for each inline type array") \
824 \
825 product(intx, FlatArrayElementMaxSize, -1, \
826 "Max size for flattening inline array elements, <0 no limit") \
827 \
828 product(intx, InlineFieldMaxFlatSize, 128, \
829 "Max size for flattening inline type fields, <0 no limit") \
830 \
831 develop(bool, EnableNullableFieldFlattening, false, \
832 "Allow the JVM to flatten some nullable fields") \
833 \
834 product(intx, FlatArrayElementMaxOops, 4, \
835 "Max nof embedded object references in an inline type to flatten, <0 no limit") \
836 \
837 product(bool, InlineArrayAtomicAccess, false, \
838 "Atomic inline array accesses by-default, for all inline arrays") \
839 \
840 /* Need to limit the extent of the padding to reasonable size. */\
841 /* 8K is well beyond the reasonable HW cache line size, even with */\
842 /* aggressive prefetching, while still leaving the room for segregating */\
843 /* among the distinct pages. */\
844 product(int, ContendedPaddingWidth, 128, \
845 "How many bytes to pad the fields/classes marked @Contended with")\
846 range(0, 8192) \
847 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
848 \
849 product(bool, EnableContended, true, \
850 "Enable @Contended annotation support") \
851 \
852 product(bool, RestrictContended, true, \
853 "Restrict @Contended to trusted classes") \
854 \
855 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
856 "Detect and take action upon identifying synchronization on " \
857 "value based classes. Modes: " \
858 "0: off; " \
859 "1: exit with fatal error; " \
1973 "On internal errors, include registers in error report.") \
1974 \
1975 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1976 "leverage profiling for table/lookup switch") \
1977 \
1978 develop(bool, TraceMemoryWriteback, false, \
1979 "Trace memory writeback operations") \
1980 \
1981 JFR_ONLY(product(bool, FlightRecorder, false, \
1982 "(Deprecated) Enable Flight Recorder")) \
1983 \
1984 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1985 "Flight Recorder options")) \
1986 \
1987 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1988 "Start flight recording with options")) \
1989 \
1990 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1991 "Use platform unstable time where supported for timestamps only") \
1992 \
1993 product(bool, EnableValhalla, true, \
1994 "Enable experimental Valhalla features") \
1995 \
1996 product_pd(bool, InlineTypePassFieldsAsArgs, \
1997 "Pass each inline type field as an argument at calls") \
1998 \
1999 product_pd(bool, InlineTypeReturnedAsFields, \
2000 "Return fields instead of an inline type reference") \
2001 \
2002 develop(bool, StressCallingConvention, false, \
2003 "Stress the scalarized calling convention.") \
2004 \
2005 product(ccstrlist, ForceNonTearable, "", DIAGNOSTIC, \
2006 "List of inline classes which are forced to be atomic " \
2007 "(whitespace and commas separate names, " \
2008 "and leading and trailing stars '*' are wildcards)") \
2009 \
2010 product(bool, UseEmptySlotsInSupers, true, \
2011 "Allow allocating fields in empty slots of super-classes") \
2012 \
2013 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
2014 "Make nmethod barriers deoptimise a lot.") \
2015 \
2016 develop(bool, VerifyCrossModifyFence, \
2017 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
2018 "Mark all threads after a safepoint, and clear on a modify " \
2019 "fence. Add cleanliness checks.") \
2020 \
2021 product(int, LockingMode, LM_LEGACY, \
2022 "Select locking mode: " \
2023 "0: monitors only (LM_MONITOR), " \
2024 "1: monitors & legacy stack-locking (LM_LEGACY, default), " \
2025 "2: monitors & new lightweight locking (LM_LIGHTWEIGHT)") \
2026 range(0, 2) \
2027 \
2028 product(uint, TrimNativeHeapInterval, 0, EXPERIMENTAL, \
2029 "Interval, in ms, at which the JVM will trim the native heap if " \
|