787 "Verify all arguments to JNI calls") \
788 \
789 product(bool, UseFastJNIAccessors, true, \
790 "Use optimized versions of Get<Primitive>Field") \
791 \
792 product(intx, MaxJNILocalCapacity, 65536, \
793 "Maximum allowable local JNI handle capacity to " \
794 "EnsureLocalCapacity() and PushLocalFrame(), " \
795 "where <= 0 is unlimited, default: 65536") \
796 range(min_intx, max_intx) \
797 \
798 product(bool, EagerXrunInit, false, \
799 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
800 "but not all -Xrun libraries may support the state of the VM " \
801 "at this time") \
802 \
803 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
804 "Number of OutOfMemoryErrors preallocated with backtrace") \
805 range(0, 1024) \
806 \
807 develop(bool, PrintFieldLayout, false, \
808 "Print field layout for each class") \
809 \
810 /* Need to limit the extent of the padding to reasonable size. */\
811 /* 8K is well beyond the reasonable HW cache line size, even with */\
812 /* aggressive prefetching, while still leaving the room for segregating */\
813 /* among the distinct pages. */\
814 product(int, ContendedPaddingWidth, 128, \
815 "How many bytes to pad the fields/classes marked @Contended with")\
816 range(0, 8192) \
817 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
818 \
819 product(bool, EnableContended, true, \
820 "Enable @Contended annotation support") \
821 \
822 product(bool, RestrictContended, true, \
823 "Restrict @Contended to trusted classes") \
824 \
825 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
826 "Detect and take action upon identifying synchronization on " \
827 "value based classes. Modes: " \
828 "0: off; " \
829 "1: exit with fatal error; " \
1743 "Create JMX Management Server") \
1744 \
1745 product(bool, DisableAttachMechanism, false, \
1746 "Disable mechanism that allows tools to attach to this VM") \
1747 \
1748 product(bool, StartAttachListener, false, \
1749 "Always start Attach Listener at VM startup") \
1750 \
1751 product(bool, EnableDynamicAgentLoading, true, \
1752 "Allow tools to load agents with the attach mechanism") \
1753 \
1754 product(bool, PrintConcurrentLocks, false, MANAGEABLE, \
1755 "Print java.util.concurrent locks in thread dump") \
1756 \
1757 product(bool, PrintMethodHandleStubs, false, DIAGNOSTIC, \
1758 "Print generated stub code for method handles") \
1759 \
1760 product(bool, VerifyMethodHandles, trueInDebug, DIAGNOSTIC, \
1761 "perform extra checks when constructing method handles") \
1762 \
1763 product(bool, ShowHiddenFrames, false, DIAGNOSTIC, \
1764 "show method handle implementation frames (usually hidden)") \
1765 \
1766 product(bool, ShowCarrierFrames, false, DIAGNOSTIC, \
1767 "show virtual threads' carrier frames in exceptions") \
1768 \
1769 product(bool, TrustFinalNonStaticFields, false, EXPERIMENTAL, \
1770 "trust final non-static declarations for constant folding") \
1771 \
1772 product(bool, FoldStableValues, true, DIAGNOSTIC, \
1773 "Optimize loads from stable fields (marked w/ @Stable)") \
1774 \
1775 product(int, UseBootstrapCallInfo, 1, DIAGNOSTIC, \
1776 "0: when resolving InDy or ConDy, force all BSM arguments to be " \
1777 "resolved before the bootstrap method is called; 1: when a BSM " \
1778 "that may accept a BootstrapCallInfo is detected, use that API " \
1779 "to pass BSM arguments, which allows the BSM to delay their " \
1780 "resolution; 2+: stress test the BCI API by calling more BSMs " \
1781 "via that API, instead of with the eagerly-resolved array.") \
1782 \
1911 "On internal errors, include registers in error report.") \
1912 \
1913 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1914 "leverage profiling for table/lookup switch") \
1915 \
1916 develop(bool, TraceMemoryWriteback, false, \
1917 "Trace memory writeback operations") \
1918 \
1919 JFR_ONLY(product(bool, FlightRecorder, false, \
1920 "(Deprecated) Enable Flight Recorder")) \
1921 \
1922 JFR_ONLY(product(ccstr, FlightRecorderOptions, nullptr, \
1923 "Flight Recorder options")) \
1924 \
1925 JFR_ONLY(product(ccstr, StartFlightRecording, nullptr, \
1926 "Start flight recording with options")) \
1927 \
1928 product(bool, UseFastUnorderedTimeStamps, false, EXPERIMENTAL, \
1929 "Use platform unstable time where supported for timestamps only") \
1930 \
1931 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1932 "Make nmethod barriers deoptimise a lot.") \
1933 \
1934 develop(bool, VerifyCrossModifyFence, \
1935 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1936 "Mark all threads after a safepoint, and clear on a modify " \
1937 "fence. Add cleanliness checks.") \
1938 \
1939 product(bool, UseObjectMonitorTable, true, DIAGNOSTIC, \
1940 "Use a table to record inflated monitors rather than the first " \
1941 "word of the object.") \
1942 \
1943 product(int, FastLockingSpins, 8, DIAGNOSTIC, \
1944 "Specifies the number of times fast locking will attempt to " \
1945 "CAS the markWord before inflating. Between each CAS it will " \
1946 "spin for exponentially more time, resulting in a total number " \
1947 "of spins on the order of O(2^value)") \
1948 range(1, 30) \
1949 \
1950 product(uint, TrimNativeHeapInterval, 0, \
1969 product(bool, UseSecondarySupersCache, true, DIAGNOSTIC, \
1970 "Use secondary supers cache during subtype checks.") \
1971 \
1972 product(bool, UseSecondarySupersTable, false, DIAGNOSTIC, \
1973 "Use hash table to lookup secondary supers.") \
1974 \
1975 product(bool, VerifySecondarySupers, false, DIAGNOSTIC, \
1976 "Check that linear and hashed secondary lookups return the same result.") \
1977 \
1978 product(bool, StressSecondarySupers, false, DIAGNOSTIC, \
1979 "Use a terrible hash function in order to generate many collisions.") \
1980 \
1981 product(bool, UseThreadsLockThrottleLock, true, DIAGNOSTIC, \
1982 "Use an extra lock during Thread start and exit to alleviate" \
1983 "contention on Threads_lock.") \
1984 \
1985 develop(uint, BinarySearchThreshold, 16, \
1986 "Minimal number of elements in a sorted collection to prefer" \
1987 "binary search over simple linear search." ) \
1988 \
1989
1990 // end of RUNTIME_FLAGS
1991
1992 DECLARE_FLAGS(LP64_RUNTIME_FLAGS)
1993 DECLARE_ARCH_FLAGS(ARCH_FLAGS)
1994 DECLARE_FLAGS(RUNTIME_FLAGS)
1995 DECLARE_FLAGS(RUNTIME_OS_FLAGS)
1996
1997 #endif // SHARE_RUNTIME_GLOBALS_HPP
|
787 "Verify all arguments to JNI calls") \
788 \
789 product(bool, UseFastJNIAccessors, true, \
790 "Use optimized versions of Get<Primitive>Field") \
791 \
792 product(intx, MaxJNILocalCapacity, 65536, \
793 "Maximum allowable local JNI handle capacity to " \
794 "EnsureLocalCapacity() and PushLocalFrame(), " \
795 "where <= 0 is unlimited, default: 65536") \
796 range(min_intx, max_intx) \
797 \
798 product(bool, EagerXrunInit, false, \
799 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
800 "but not all -Xrun libraries may support the state of the VM " \
801 "at this time") \
802 \
803 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
804 "Number of OutOfMemoryErrors preallocated with backtrace") \
805 range(0, 1024) \
806 \
807 product(bool, PrintFieldLayout, false, DIAGNOSTIC, \
808 "Print field layout for each class") \
809 \
810 product(bool, PrintInlineLayout, false, DIAGNOSTIC, \
811 "Print field layout for each value class or class containing " \
812 "inlined value fields") \
813 \
814 product(bool, PrintFlatArrayLayout, false, DIAGNOSTIC, \
815 "Print array layout for each flattened value array") \
816 \
817 product(bool, UseArrayFlattening, true, DIAGNOSTIC, \
818 "Allow the JVM to flatten arrays of concrete value objects " \
819 "when it determines it is possible and beneficial to do so") \
820 \
821 product(bool, UseFieldFlattening, true, DIAGNOSTIC, \
822 "Allow the JVM to inline the fields of concrete value objects " \
823 "when it determines it is possible and beneficial to do so") \
824 \
825 product(bool, UseNullableAtomicValueFlattening, true, DIAGNOSTIC, \
826 "Allow the JVM to flatten some nullable atomic values") \
827 \
828 product(bool, UseNullFreeNonAtomicValueFlattening, true, EXPERIMENTAL, \
829 "Allow the JVM to flatten some null-free non-atomic values") \
830 \
831 product(bool, UseNullFreeAtomicValueFlattening, true, EXPERIMENTAL, \
832 "Allow the JVM to flatten some null-free atomic values") \
833 \
834 product(bool, UseNullableNonAtomicValueFlattening, true, DIAGNOSTIC, \
835 "Allow the JVM to flatten some strict final non-static fields") \
836 \
837 product(intx, FlatArrayElementMaxOops, 4, DIAGNOSTIC, \
838 "Max number of embedded object references in a value container " \
839 "before no flattening attempts are made, <0 indicates no limit") \
840 \
841 product(uint, FlatteningBudget, 1024, EXPERIMENTAL, \
842 "Maximum size (in bytes) dedicated to flat fields in an instance")\
843 range(0, 1024 * 1024) \
844 develop(ccstrlist, PrintInlineKlassFields, "", \
845 "Print fields collected by InlineKlass::collect_fields") \
846 \
847 /* Need to limit the extent of the padding to reasonable size. */\
848 /* 8K is well beyond the reasonable HW cache line size, even with */\
849 /* aggressive prefetching, while still leaving the room for segregating */\
850 /* among the distinct pages. */\
851 product(int, ContendedPaddingWidth, 128, \
852 "How many bytes to pad the fields/classes marked @Contended with")\
853 range(0, 8192) \
854 constraint(ContendedPaddingWidthConstraintFunc,AfterErgo) \
855 \
856 product(bool, EnableContended, true, \
857 "Enable @Contended annotation support") \
858 \
859 product(bool, RestrictContended, true, \
860 "Restrict @Contended to trusted classes") \
861 \
862 product(int, DiagnoseSyncOnValueBasedClasses, 0, DIAGNOSTIC, \
863 "Detect and take action upon identifying synchronization on " \
864 "value based classes. Modes: " \
865 "0: off; " \
866 "1: exit with fatal error; " \
1780 "Create JMX Management Server") \
1781 \
1782 product(bool, DisableAttachMechanism, false, \
1783 "Disable mechanism that allows tools to attach to this VM") \
1784 \
1785 product(bool, StartAttachListener, false, \
1786 "Always start Attach Listener at VM startup") \
1787 \
1788 product(bool, EnableDynamicAgentLoading, true, \
1789 "Allow tools to load agents with the attach mechanism") \
1790 \
1791 product(bool, PrintConcurrentLocks, false, MANAGEABLE, \
1792 "Print java.util.concurrent locks in thread dump") \
1793 \
1794 product(bool, PrintMethodHandleStubs, false, DIAGNOSTIC, \
1795 "Print generated stub code for method handles") \
1796 \
1797 product(bool, VerifyMethodHandles, trueInDebug, DIAGNOSTIC, \
1798 "perform extra checks when constructing method handles") \
1799 \
1800 product(bool, IgnoreAssertUnsetFields, false, DIAGNOSTIC, \
1801 "Ignore assert_unset_fields") \
1802 \
1803 product(bool, ShowHiddenFrames, false, DIAGNOSTIC, \
1804 "show method handle implementation frames (usually hidden)") \
1805 \
1806 product(bool, ShowCarrierFrames, false, DIAGNOSTIC, \
1807 "show virtual threads' carrier frames in exceptions") \
1808 \
1809 product(bool, TrustFinalNonStaticFields, false, EXPERIMENTAL, \
1810 "trust final non-static declarations for constant folding") \
1811 \
1812 product(bool, FoldStableValues, true, DIAGNOSTIC, \
1813 "Optimize loads from stable fields (marked w/ @Stable)") \
1814 \
1815 product(int, UseBootstrapCallInfo, 1, DIAGNOSTIC, \
1816 "0: when resolving InDy or ConDy, force all BSM arguments to be " \
1817 "resolved before the bootstrap method is called; 1: when a BSM " \
1818 "that may accept a BootstrapCallInfo is detected, use that API " \
1819 "to pass BSM arguments, which allows the BSM to delay their " \
1820 "resolution; 2+: stress test the BCI API by calling more BSMs " \
1821 "via that API, instead of with the eagerly-resolved array.") \
1822 \
1951 "On internal errors, include registers in error report.") \
1952 \
1953 product(bool, UseSwitchProfiling, true, DIAGNOSTIC, \
1954 "leverage profiling for table/lookup switch") \
1955 \
1956 develop(bool, TraceMemoryWriteback, false, \
1957 "Trace memory writeback operations") \
1958 \
1959 JFR_ONLY(product(bool, FlightRecorder, false, \
1960 "(Deprecated) Enable Flight Recorder")) \
1961 \
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_pd(bool, InlineTypePassFieldsAsArgs, DIAGNOSTIC, \
1972 "Pass each inline type field as an argument at calls") \
1973 \
1974 product_pd(bool, InlineTypeReturnedAsFields, DIAGNOSTIC, \
1975 "Return fields instead of an inline type reference") \
1976 \
1977 develop(bool, StressCallingConvention, false, \
1978 "Stress the scalarized calling convention.") \
1979 \
1980 develop(bool, PreloadClasses, true, \
1981 "Preloading all classes from the LoadableDescriptors attribute") \
1982 \
1983 product(ccstrlist, ForceNonTearable, "", DIAGNOSTIC, \
1984 "List of inline classes which are forced to be atomic " \
1985 "(whitespace and commas separate names, " \
1986 "and leading and trailing stars '*' are wildcards)") \
1987 \
1988 product(bool, DeoptimizeNMethodBarriersALot, false, DIAGNOSTIC, \
1989 "Make nmethod barriers deoptimise a lot.") \
1990 \
1991 develop(bool, VerifyCrossModifyFence, \
1992 false AARCH64_ONLY(DEBUG_ONLY(||true)), \
1993 "Mark all threads after a safepoint, and clear on a modify " \
1994 "fence. Add cleanliness checks.") \
1995 \
1996 product(bool, UseObjectMonitorTable, true, DIAGNOSTIC, \
1997 "Use a table to record inflated monitors rather than the first " \
1998 "word of the object.") \
1999 \
2000 product(int, FastLockingSpins, 8, DIAGNOSTIC, \
2001 "Specifies the number of times fast locking will attempt to " \
2002 "CAS the markWord before inflating. Between each CAS it will " \
2003 "spin for exponentially more time, resulting in a total number " \
2004 "of spins on the order of O(2^value)") \
2005 range(1, 30) \
2006 \
2007 product(uint, TrimNativeHeapInterval, 0, \
2026 product(bool, UseSecondarySupersCache, true, DIAGNOSTIC, \
2027 "Use secondary supers cache during subtype checks.") \
2028 \
2029 product(bool, UseSecondarySupersTable, false, DIAGNOSTIC, \
2030 "Use hash table to lookup secondary supers.") \
2031 \
2032 product(bool, VerifySecondarySupers, false, DIAGNOSTIC, \
2033 "Check that linear and hashed secondary lookups return the same result.") \
2034 \
2035 product(bool, StressSecondarySupers, false, DIAGNOSTIC, \
2036 "Use a terrible hash function in order to generate many collisions.") \
2037 \
2038 product(bool, UseThreadsLockThrottleLock, true, DIAGNOSTIC, \
2039 "Use an extra lock during Thread start and exit to alleviate" \
2040 "contention on Threads_lock.") \
2041 \
2042 develop(uint, BinarySearchThreshold, 16, \
2043 "Minimal number of elements in a sorted collection to prefer" \
2044 "binary search over simple linear search." ) \
2045 \
2046 product(bool, UseAcmpFastPath, true, DIAGNOSTIC, \
2047 "Use fast path for acmp.") \
2048
2049 // end of RUNTIME_FLAGS
2050
2051 DECLARE_FLAGS(LP64_RUNTIME_FLAGS)
2052 DECLARE_ARCH_FLAGS(ARCH_FLAGS)
2053 DECLARE_FLAGS(RUNTIME_FLAGS)
2054 DECLARE_FLAGS(RUNTIME_OS_FLAGS)
2055
2056 #endif // SHARE_RUNTIME_GLOBALS_HPP
|