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