383 "Deoptimize at every exit from the runtime system") \ |
383 "Deoptimize at every exit from the runtime system") \ |
384 \ |
384 \ |
385 notproduct(ccstrlist, DeoptimizeOnlyAt, "", \ |
385 notproduct(ccstrlist, DeoptimizeOnlyAt, "", \ |
386 "A comma separated list of bcis to deoptimize at") \ |
386 "A comma separated list of bcis to deoptimize at") \ |
387 \ |
387 \ |
388 product(bool, DeoptimizeRandom, false, \ |
388 develop(bool, DeoptimizeRandom, false, \ |
389 "Deoptimize random frames on random exit from the runtime system")\ |
389 "Deoptimize random frames on random exit from the runtime system")\ |
390 \ |
390 \ |
391 notproduct(bool, ZombieALot, false, \ |
391 notproduct(bool, ZombieALot, false, \ |
392 "Create zombies (non-entrant) at exit from the runtime system") \ |
392 "Create zombies (non-entrant) at exit from the runtime system") \ |
393 \ |
393 \ |
396 \ |
396 \ |
397 product(bool, Debugging, false, \ |
397 product(bool, Debugging, false, \ |
398 "Set when executing debug methods in debug.cpp " \ |
398 "Set when executing debug methods in debug.cpp " \ |
399 "(to prevent triggering assertions)") \ |
399 "(to prevent triggering assertions)") \ |
400 \ |
400 \ |
401 notproduct(bool, StrictSafepointChecks, trueInDebug, \ |
|
402 "Enable strict checks that safepoints cannot happen for threads " \ |
|
403 "that use NoSafepointVerifier") \ |
|
404 \ |
|
405 notproduct(bool, VerifyLastFrame, false, \ |
401 notproduct(bool, VerifyLastFrame, false, \ |
406 "Verify oops on last frame on entry to VM") \ |
402 "Verify oops on last frame on entry to VM") \ |
407 \ |
|
408 product(bool, FailOverToOldVerifier, true, \ |
|
409 "Fail over to old verifier when split verifier fails") \ |
|
410 \ |
403 \ |
411 product(bool, SafepointTimeout, false, \ |
404 product(bool, SafepointTimeout, false, \ |
412 "Time out and warn or fail after SafepointTimeoutDelay " \ |
405 "Time out and warn or fail after SafepointTimeoutDelay " \ |
413 "milliseconds if failed to reach safepoint") \ |
406 "milliseconds if failed to reach safepoint") \ |
414 \ |
407 \ |
467 "Verify code cache on memory allocation/deallocation") \ |
460 "Verify code cache on memory allocation/deallocation") \ |
468 \ |
461 \ |
469 develop(bool, UseMallocOnly, false, \ |
462 develop(bool, UseMallocOnly, false, \ |
470 "Use only malloc/free for allocation (no resource area/arena)") \ |
463 "Use only malloc/free for allocation (no resource area/arena)") \ |
471 \ |
464 \ |
472 develop(bool, PrintMallocStatistics, false, \ |
|
473 "Print malloc/free statistics") \ |
|
474 \ |
|
475 develop(bool, ZapResourceArea, trueInDebug, \ |
465 develop(bool, ZapResourceArea, trueInDebug, \ |
476 "Zap freed resource/arena space with 0xABABABAB") \ |
466 "Zap freed resource/arena space with 0xABABABAB") \ |
477 \ |
467 \ |
478 notproduct(bool, ZapVMHandleArea, trueInDebug, \ |
468 notproduct(bool, ZapVMHandleArea, trueInDebug, \ |
479 "Zap freed VM handle space with 0xBCBCBCBC") \ |
469 "Zap freed VM handle space with 0xBCBCBCBC") \ |
651 "Collect backtrace in throwable when exception happens") \ |
641 "Collect backtrace in throwable when exception happens") \ |
652 \ |
642 \ |
653 product(bool, OmitStackTraceInFastThrow, true, \ |
643 product(bool, OmitStackTraceInFastThrow, true, \ |
654 "Omit backtraces for some 'hot' exceptions in optimized code") \ |
644 "Omit backtraces for some 'hot' exceptions in optimized code") \ |
655 \ |
645 \ |
|
646 manageable(bool, ShowCodeDetailsInExceptionMessages, false, \ |
|
647 "Show exception messages from RuntimeExceptions that contain " \ |
|
648 "snippets of the failing code. Disable this to improve privacy.") \ |
|
649 \ |
656 product(bool, PrintWarnings, true, \ |
650 product(bool, PrintWarnings, true, \ |
657 "Print JVM warnings to output stream") \ |
651 "Print JVM warnings to output stream") \ |
658 \ |
652 \ |
659 notproduct(uintx, WarnOnStalledSpinLock, 0, \ |
653 notproduct(uintx, WarnOnStalledSpinLock, 0, \ |
660 "Print warnings for stalled SpinLocks") \ |
654 "Print warnings for stalled SpinLocks") \ |
721 \ |
715 \ |
722 product(bool, UseLWPSynchronization, true, \ |
716 product(bool, UseLWPSynchronization, true, \ |
723 "Use LWP-based instead of libthread-based synchronization " \ |
717 "Use LWP-based instead of libthread-based synchronization " \ |
724 "(SPARC only)") \ |
718 "(SPARC only)") \ |
725 \ |
719 \ |
726 product(intx, MonitorBound, 0, "Bound Monitor population") \ |
720 product(intx, MonitorBound, 0, "(Deprecated) Bound Monitor population") \ |
727 range(0, max_jint) \ |
721 range(0, max_jint) \ |
728 \ |
722 \ |
729 experimental(intx, MonitorUsedDeflationThreshold, 90, \ |
723 experimental(intx, MonitorUsedDeflationThreshold, 90, \ |
730 "Percentage of used monitors before triggering cleanup " \ |
724 "Percentage of used monitors before triggering cleanup " \ |
731 "safepoint which deflates monitors (0 is off). " \ |
725 "safepoint which deflates monitors (0 is off). " \ |
744 "(SPARC only)") \ |
738 "(SPARC only)") \ |
745 \ |
739 \ |
746 product(bool, ReduceSignalUsage, false, \ |
740 product(bool, ReduceSignalUsage, false, \ |
747 "Reduce the use of OS signals in Java and/or the VM") \ |
741 "Reduce the use of OS signals in Java and/or the VM") \ |
748 \ |
742 \ |
749 develop_pd(bool, ShareVtableStubs, \ |
|
750 "Share vtable stubs (smaller code but worse branch prediction") \ |
|
751 \ |
|
752 develop(bool, LoadLineNumberTables, true, \ |
743 develop(bool, LoadLineNumberTables, true, \ |
753 "Tell whether the class file parser loads line number tables") \ |
744 "Tell whether the class file parser loads line number tables") \ |
754 \ |
745 \ |
755 develop(bool, LoadLocalVariableTables, true, \ |
746 develop(bool, LoadLocalVariableTables, true, \ |
756 "Tell whether the class file parser loads local variable tables") \ |
747 "Tell whether the class file parser loads local variable tables") \ |
764 "(Solaris & Linux only)") \ |
755 "(Solaris & Linux only)") \ |
765 \ |
756 \ |
766 product(bool, UseSignalChaining, true, \ |
757 product(bool, UseSignalChaining, true, \ |
767 "Use signal-chaining to invoke signal handlers installed " \ |
758 "Use signal-chaining to invoke signal handlers installed " \ |
768 "by the application (Solaris & Linux only)") \ |
759 "by the application (Solaris & Linux only)") \ |
769 \ |
|
770 product(bool, AllowJNIEnvProxy, false, \ |
|
771 "(Deprecated) Allow JNIEnv proxies for jdbx") \ |
|
772 \ |
760 \ |
773 product(bool, RestoreMXCSROnJNICalls, false, \ |
761 product(bool, RestoreMXCSROnJNICalls, false, \ |
774 "Restore MXCSR when returning from JNI calls") \ |
762 "Restore MXCSR when returning from JNI calls") \ |
775 \ |
763 \ |
776 product(bool, CheckJNICalls, false, \ |
764 product(bool, CheckJNICalls, false, \ |
799 \ |
787 \ |
800 product(bool, UseXMMForArrayCopy, false, \ |
788 product(bool, UseXMMForArrayCopy, false, \ |
801 "Use SSE2 MOVQ instruction for Arraycopy") \ |
789 "Use SSE2 MOVQ instruction for Arraycopy") \ |
802 \ |
790 \ |
803 product(intx, FieldsAllocationStyle, 1, \ |
791 product(intx, FieldsAllocationStyle, 1, \ |
804 "0 - type based with oops first, " \ |
792 "(Deprecated) 0 - type based with oops first, " \ |
805 "1 - with oops last, " \ |
793 "1 - with oops last, " \ |
806 "2 - oops in super and sub classes are together") \ |
794 "2 - oops in super and sub classes are together") \ |
807 range(0, 2) \ |
795 range(0, 2) \ |
808 \ |
796 \ |
809 product(bool, CompactFields, true, \ |
797 product(bool, CompactFields, true, \ |
810 "Allocate nonstatic fields in gaps between previous fields") \ |
798 "(Deprecated) Allocate nonstatic fields in gaps " \ |
|
799 "between previous fields") \ |
811 \ |
800 \ |
812 notproduct(bool, PrintFieldLayout, false, \ |
801 notproduct(bool, PrintFieldLayout, false, \ |
813 "Print field layout for each class") \ |
802 "Print field layout for each class") \ |
814 \ |
803 \ |
815 /* Need to limit the extent of the padding to reasonable size. */\ |
804 /* Need to limit the extent of the padding to reasonable size. */\ |
1030 \ |
1019 \ |
1031 develop(bool, InjectCompilerCreationFailure, false, \ |
1020 develop(bool, InjectCompilerCreationFailure, false, \ |
1032 "Inject thread creation failures for " \ |
1021 "Inject thread creation failures for " \ |
1033 "UseDynamicNumberOfCompilerThreads") \ |
1022 "UseDynamicNumberOfCompilerThreads") \ |
1034 \ |
1023 \ |
1035 product(intx, CompilationPolicyChoice, 0, \ |
|
1036 "which compilation policy (0-2)") \ |
|
1037 range(0, 2) \ |
|
1038 \ |
|
1039 develop(bool, UseStackBanging, true, \ |
1024 develop(bool, UseStackBanging, true, \ |
1040 "use stack banging for stack overflow checks (required for " \ |
1025 "use stack banging for stack overflow checks (required for " \ |
1041 "proper StackOverflow handling; disable only to measure cost " \ |
1026 "proper StackOverflow handling; disable only to measure cost " \ |
1042 "of stackbanging)") \ |
1027 "of stackbanging)") \ |
1043 \ |
1028 \ |
1064 "Enable Thread SMR extra validity checks") \ |
1049 "Enable Thread SMR extra validity checks") \ |
1065 \ |
1050 \ |
1066 diagnostic(bool, EnableThreadSMRStatistics, trueInDebug, \ |
1051 diagnostic(bool, EnableThreadSMRStatistics, trueInDebug, \ |
1067 "Enable Thread SMR Statistics") \ |
1052 "Enable Thread SMR Statistics") \ |
1068 \ |
1053 \ |
|
1054 product(bool, UseNotificationThread, true, \ |
|
1055 "Use Notification Thread") \ |
|
1056 \ |
1069 product(bool, Inline, true, \ |
1057 product(bool, Inline, true, \ |
1070 "Enable inlining") \ |
1058 "Enable inlining") \ |
1071 \ |
1059 \ |
1072 product(bool, ClipInlining, true, \ |
1060 product(bool, ClipInlining, true, \ |
1073 "Clip inlining if aggregate method exceeds DesiredMethodLimit") \ |
1061 "Clip inlining if aggregate method exceeds DesiredMethodLimit") \ |
1210 notproduct(bool, PrintVtableStats, false, \ |
1198 notproduct(bool, PrintVtableStats, false, \ |
1211 "print vtables stats at end of run") \ |
1199 "print vtables stats at end of run") \ |
1212 \ |
1200 \ |
1213 develop(bool, TraceCreateZombies, false, \ |
1201 develop(bool, TraceCreateZombies, false, \ |
1214 "trace creation of zombie nmethods") \ |
1202 "trace creation of zombie nmethods") \ |
1215 \ |
|
1216 notproduct(bool, IgnoreLockingAssertions, false, \ |
|
1217 "disable locking assertions (for speed)") \ |
|
1218 \ |
1203 \ |
1219 product(bool, RangeCheckElimination, true, \ |
1204 product(bool, RangeCheckElimination, true, \ |
1220 "Eliminate range checks") \ |
1205 "Eliminate range checks") \ |
1221 \ |
1206 \ |
1222 develop_pd(bool, UncommonNullCast, \ |
1207 develop_pd(bool, UncommonNullCast, \ |
1779 "Segmented code cache: X[%] of the non-profiled heap." \ |
1764 "Segmented code cache: X[%] of the non-profiled heap." \ |
1780 "Non-segmented code cache: X[%] of the total code cache") \ |
1765 "Non-segmented code cache: X[%] of the total code cache") \ |
1781 range(0, 100) \ |
1766 range(0, 100) \ |
1782 \ |
1767 \ |
1783 /* AOT parameters */ \ |
1768 /* AOT parameters */ \ |
1784 product(bool, UseAOT, AOT_ONLY(true) NOT_AOT(false), \ |
1769 experimental(bool, UseAOT, false, \ |
1785 "Use AOT compiled files") \ |
1770 "Use AOT compiled files") \ |
1786 \ |
1771 \ |
1787 product(ccstrlist, AOTLibrary, NULL, \ |
1772 experimental(ccstrlist, AOTLibrary, NULL, \ |
1788 "AOT library") \ |
1773 "AOT library") \ |
1789 \ |
1774 \ |
1790 product(bool, PrintAOT, false, \ |
1775 experimental(bool, PrintAOT, false, \ |
1791 "Print used AOT klasses and methods") \ |
1776 "Print used AOT klasses and methods") \ |
1792 \ |
1777 \ |
1793 notproduct(bool, PrintAOTStatistics, false, \ |
1778 notproduct(bool, PrintAOTStatistics, false, \ |
1794 "Print AOT statistics") \ |
1779 "Print AOT statistics") \ |
1795 \ |
1780 \ |
2156 product(intx, InterpreterProfilePercentage, 33, \ |
2141 product(intx, InterpreterProfilePercentage, 33, \ |
2157 "NON_TIERED number of method invocations/branches (expressed as " \ |
2142 "NON_TIERED number of method invocations/branches (expressed as " \ |
2158 "% of CompileThreshold) before profiling in the interpreter") \ |
2143 "% of CompileThreshold) before profiling in the interpreter") \ |
2159 range(0, 100) \ |
2144 range(0, 100) \ |
2160 \ |
2145 \ |
2161 develop(intx, MaxRecompilationSearchLength, 10, \ |
|
2162 "The maximum number of frames to inspect when searching for " \ |
|
2163 "recompilee") \ |
|
2164 \ |
|
2165 develop(intx, MaxInterpretedSearchLength, 3, \ |
|
2166 "The maximum number of interpreted frames to skip when searching "\ |
|
2167 "for recompilee") \ |
|
2168 \ |
|
2169 develop(intx, DesiredMethodLimit, 8000, \ |
2146 develop(intx, DesiredMethodLimit, 8000, \ |
2170 "The desired maximum method size (in bytecodes) after inlining") \ |
2147 "The desired maximum method size (in bytecodes) after inlining") \ |
2171 \ |
2148 \ |
2172 develop(intx, HugeMethodLimit, 8000, \ |
2149 develop(intx, HugeMethodLimit, 8000, \ |
2173 "Don't compile methods larger than this if " \ |
2150 "Don't compile methods larger than this if " \ |
2176 /* Properties for Java libraries */ \ |
2153 /* Properties for Java libraries */ \ |
2177 \ |
2154 \ |
2178 product(uint64_t, MaxDirectMemorySize, 0, \ |
2155 product(uint64_t, MaxDirectMemorySize, 0, \ |
2179 "Maximum total size of NIO direct-buffer allocations") \ |
2156 "Maximum total size of NIO direct-buffer allocations") \ |
2180 range(0, max_jlong) \ |
2157 range(0, max_jlong) \ |
|
2158 \ |
|
2159 product(bool, ClassForNameDeferLinking, false, \ |
|
2160 "Revert to not linking in Class.forName()") \ |
2181 \ |
2161 \ |
2182 /* Flags used for temporary code during development */ \ |
2162 /* Flags used for temporary code during development */ \ |
2183 \ |
2163 \ |
2184 diagnostic(bool, UseNewCode, false, \ |
2164 diagnostic(bool, UseNewCode, false, \ |
2185 "Testing Only: Use the new version while testing") \ |
2165 "Testing Only: Use the new version while testing") \ |
2346 "Relax the access control checks in the verifier") \ |
2326 "Relax the access control checks in the verifier") \ |
2347 \ |
2327 \ |
2348 product(uintx, StringTableSize, defaultStringTableSize, \ |
2328 product(uintx, StringTableSize, defaultStringTableSize, \ |
2349 "Number of buckets in the interned String table " \ |
2329 "Number of buckets in the interned String table " \ |
2350 "(will be rounded to nearest higher power of 2)") \ |
2330 "(will be rounded to nearest higher power of 2)") \ |
2351 range(minimumStringTableSize, 16777216ul) \ |
2331 range(minimumStringTableSize, 16777216ul /* 2^24 */) \ |
2352 \ |
2332 \ |
2353 experimental(uintx, SymbolTableSize, defaultSymbolTableSize, \ |
2333 experimental(uintx, SymbolTableSize, defaultSymbolTableSize, \ |
2354 "Number of buckets in the JVM internal Symbol table") \ |
2334 "Number of buckets in the JVM internal Symbol table") \ |
2355 range(minimumSymbolTableSize, 111*defaultSymbolTableSize) \ |
2335 range(minimumSymbolTableSize, 16777216ul /* 2^24 */) \ |
2356 \ |
2336 \ |
2357 product(bool, UseStringDeduplication, false, \ |
2337 product(bool, UseStringDeduplication, false, \ |
2358 "Use string deduplication") \ |
2338 "Use string deduplication") \ |
2359 \ |
2339 \ |
2360 product(uintx, StringDeduplicationAgeThreshold, 3, \ |
2340 product(uintx, StringDeduplicationAgeThreshold, 3, \ |
2361 "A string must reach this age (or be promoted to an old region) " \ |
2341 "A string must reach this age (or be promoted to an old region) " \ |
2362 "to be considered for deduplication") \ |
2342 "to be considered for deduplication") \ |
2363 range(1, markOopDesc::max_age) \ |
2343 range(1, markWord::max_age) \ |
2364 \ |
2344 \ |
2365 diagnostic(bool, StringDeduplicationResizeALot, false, \ |
2345 diagnostic(bool, StringDeduplicationResizeALot, false, \ |
2366 "Force table resize every time the table is scanned") \ |
2346 "Force table resize every time the table is scanned") \ |
2367 \ |
2347 \ |
2368 diagnostic(bool, StringDeduplicationRehashALot, false, \ |
2348 diagnostic(bool, StringDeduplicationRehashALot, false, \ |
2371 diagnostic(bool, WhiteBoxAPI, false, \ |
2351 diagnostic(bool, WhiteBoxAPI, false, \ |
2372 "Enable internal testing APIs") \ |
2352 "Enable internal testing APIs") \ |
2373 \ |
2353 \ |
2374 experimental(intx, SurvivorAlignmentInBytes, 0, \ |
2354 experimental(intx, SurvivorAlignmentInBytes, 0, \ |
2375 "Default survivor space alignment in bytes") \ |
2355 "Default survivor space alignment in bytes") \ |
|
2356 range(8, 256) \ |
2376 constraint(SurvivorAlignmentInBytesConstraintFunc,AfterErgo) \ |
2357 constraint(SurvivorAlignmentInBytesConstraintFunc,AfterErgo) \ |
2377 \ |
2358 \ |
2378 product(ccstr, DumpLoadedClassList, NULL, \ |
2359 product(ccstr, DumpLoadedClassList, NULL, \ |
2379 "Dump the names all loaded classes, that could be stored into " \ |
2360 "Dump the names all loaded classes, that could be stored into " \ |
2380 "the CDS archive, in the specified file") \ |
2361 "the CDS archive, in the specified file") \ |
2449 "1 - always, >1 every nth interval)") \ |
2430 "1 - always, >1 every nth interval)") \ |
2450 \ |
2431 \ |
2451 diagnostic(bool, ShowRegistersOnAssert, true, \ |
2432 diagnostic(bool, ShowRegistersOnAssert, true, \ |
2452 "On internal errors, include registers in error report.") \ |
2433 "On internal errors, include registers in error report.") \ |
2453 \ |
2434 \ |
2454 experimental(bool, UseSwitchProfiling, true, \ |
2435 diagnostic(bool, UseSwitchProfiling, true, \ |
2455 "leverage profiling for table/lookup switch") \ |
2436 "leverage profiling for table/lookup switch") \ |
2456 \ |
2437 \ |
|
2438 develop(bool, TraceMemoryWriteback, false, \ |
|
2439 "Trace memory writeback operations") \ |
|
2440 \ |
2457 JFR_ONLY(product(bool, FlightRecorder, false, \ |
2441 JFR_ONLY(product(bool, FlightRecorder, false, \ |
2458 "Enable Flight Recorder")) \ |
2442 "(Deprecated) Enable Flight Recorder")) \ |
2459 \ |
2443 \ |
2460 JFR_ONLY(product(ccstr, FlightRecorderOptions, NULL, \ |
2444 JFR_ONLY(product(ccstr, FlightRecorderOptions, NULL, \ |
2461 "Flight Recorder options")) \ |
2445 "Flight Recorder options")) \ |
2462 \ |
2446 \ |
2463 JFR_ONLY(product(ccstr, StartFlightRecording, NULL, \ |
2447 JFR_ONLY(product(ccstr, StartFlightRecording, NULL, \ |