comparison src/share/vm/runtime/globals.hpp @ 12836:b4d8a3d4db73

8010506: Typos and errors in descriptions of vm options in globals.hpp Summary: Fix typos and errors in descriptions of vm options in globals.hpp Reviewed-by: jmasa, jwilhelm
author tamao
date Wed, 09 Oct 2013 11:18:53 -0700
parents 0f37d1badced
children 85c1ca43713f
comparison
equal deleted inserted replaced
12835:69944b868a32 12836:b4d8a3d4db73
438 // it can be done in the same way as product_rw. 438 // it can be done in the same way as product_rw.
439 439
440 #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product) \ 440 #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product) \
441 \ 441 \
442 lp64_product(bool, UseCompressedOops, false, \ 442 lp64_product(bool, UseCompressedOops, false, \
443 "Use 32-bit object references in 64-bit VM " \ 443 "Use 32-bit object references in 64-bit VM. " \
444 "lp64_product means flag is always constant in 32 bit VM") \ 444 "lp64_product means flag is always constant in 32 bit VM") \
445 \ 445 \
446 lp64_product(bool, UseCompressedClassPointers, false, \ 446 lp64_product(bool, UseCompressedClassPointers, false, \
447 "Use 32-bit class pointers in 64-bit VM " \ 447 "Use 32-bit class pointers in 64-bit VM. " \
448 "lp64_product means flag is always constant in 32 bit VM") \ 448 "lp64_product means flag is always constant in 32 bit VM") \
449 \ 449 \
450 notproduct(bool, CheckCompressedOops, true, \ 450 notproduct(bool, CheckCompressedOops, true, \
451 "generate checks in encoding/decoding code in debug VM") \ 451 "Generate checks in encoding/decoding code in debug VM") \
452 \ 452 \
453 product_pd(uintx, HeapBaseMinAddress, \ 453 product_pd(uintx, HeapBaseMinAddress, \
454 "OS specific low limit for heap base address") \ 454 "OS specific low limit for heap base address") \
455 \ 455 \
456 diagnostic(bool, PrintCompressedOopsMode, false, \ 456 diagnostic(bool, PrintCompressedOopsMode, false, \
457 "Print compressed oops base address and encoding mode") \ 457 "Print compressed oops base address and encoding mode") \
458 \ 458 \
459 lp64_product(intx, ObjectAlignmentInBytes, 8, \ 459 lp64_product(intx, ObjectAlignmentInBytes, 8, \
460 "Default object alignment in bytes, 8 is minimum") \ 460 "Default object alignment in bytes, 8 is minimum") \
461 \ 461 \
462 product(bool, AssumeMP, false, \ 462 product(bool, AssumeMP, false, \
474 */ \ 474 */ \
475 product(bool, UsePPCLWSYNC, true, \ 475 product(bool, UsePPCLWSYNC, true, \
476 "Use lwsync instruction if true, else use slower sync") \ 476 "Use lwsync instruction if true, else use slower sync") \
477 \ 477 \
478 develop(bool, CleanChunkPoolAsync, falseInEmbedded, \ 478 develop(bool, CleanChunkPoolAsync, falseInEmbedded, \
479 "Whether to clean the chunk pool asynchronously") \ 479 "Clean the chunk pool asynchronously") \
480 \ 480 \
481 /* Temporary: See 6948537 */ \ 481 /* Temporary: See 6948537 */ \
482 experimental(bool, UseMemSetInBOT, true, \ 482 experimental(bool, UseMemSetInBOT, true, \
483 "(Unstable) uses memset in BOT updates in GC code") \ 483 "(Unstable) uses memset in BOT updates in GC code") \
484 \ 484 \
485 diagnostic(bool, UnlockDiagnosticVMOptions, trueInDebug, \ 485 diagnostic(bool, UnlockDiagnosticVMOptions, trueInDebug, \
486 "Enable normal processing of flags relating to field diagnostics")\ 486 "Enable normal processing of flags relating to field diagnostics")\
487 \ 487 \
488 experimental(bool, UnlockExperimentalVMOptions, false, \ 488 experimental(bool, UnlockExperimentalVMOptions, false, \
489 "Enable normal processing of flags relating to experimental features")\ 489 "Enable normal processing of flags relating to experimental " \
490 "features") \
490 \ 491 \
491 product(bool, JavaMonitorsInStackTrace, true, \ 492 product(bool, JavaMonitorsInStackTrace, true, \
492 "Print info. about Java monitor locks when the stacks are dumped")\ 493 "Print information about Java monitor locks when the stacks are" \
494 "dumped") \
493 \ 495 \
494 product_pd(bool, UseLargePages, \ 496 product_pd(bool, UseLargePages, \
495 "Use large page memory") \ 497 "Use large page memory") \
496 \ 498 \
497 product_pd(bool, UseLargePagesIndividualAllocation, \ 499 product_pd(bool, UseLargePagesIndividualAllocation, \
499 \ 501 \
500 develop(bool, LargePagesIndividualAllocationInjectError, false, \ 502 develop(bool, LargePagesIndividualAllocationInjectError, false, \
501 "Fail large pages individual allocation") \ 503 "Fail large pages individual allocation") \
502 \ 504 \
503 develop(bool, TracePageSizes, false, \ 505 develop(bool, TracePageSizes, false, \
504 "Trace page size selection and usage.") \ 506 "Trace page size selection and usage") \
505 \ 507 \
506 product(bool, UseNUMA, false, \ 508 product(bool, UseNUMA, false, \
507 "Use NUMA if available") \ 509 "Use NUMA if available") \
508 \ 510 \
509 product(bool, UseNUMAInterleaving, false, \ 511 product(bool, UseNUMAInterleaving, false, \
514 \ 516 \
515 product(bool, ForceNUMA, false, \ 517 product(bool, ForceNUMA, false, \
516 "Force NUMA optimizations on single-node/UMA systems") \ 518 "Force NUMA optimizations on single-node/UMA systems") \
517 \ 519 \
518 product(uintx, NUMAChunkResizeWeight, 20, \ 520 product(uintx, NUMAChunkResizeWeight, 20, \
519 "Percentage (0-100) used to weigh the current sample when " \ 521 "Percentage (0-100) used to weigh the current sample when " \
520 "computing exponentially decaying average for " \ 522 "computing exponentially decaying average for " \
521 "AdaptiveNUMAChunkSizing") \ 523 "AdaptiveNUMAChunkSizing") \
522 \ 524 \
523 product(uintx, NUMASpaceResizeRate, 1*G, \ 525 product(uintx, NUMASpaceResizeRate, 1*G, \
524 "Do not reallocate more that this amount per collection") \ 526 "Do not reallocate more than this amount per collection") \
525 \ 527 \
526 product(bool, UseAdaptiveNUMAChunkSizing, true, \ 528 product(bool, UseAdaptiveNUMAChunkSizing, true, \
527 "Enable adaptive chunk sizing for NUMA") \ 529 "Enable adaptive chunk sizing for NUMA") \
528 \ 530 \
529 product(bool, NUMAStats, false, \ 531 product(bool, NUMAStats, false, \
536 "True for register window machines (sparc/ia64)") \ 538 "True for register window machines (sparc/ia64)") \
537 \ 539 \
538 product(intx, UseSSE, 99, \ 540 product(intx, UseSSE, 99, \
539 "Highest supported SSE instructions set on x86/x64") \ 541 "Highest supported SSE instructions set on x86/x64") \
540 \ 542 \
541 product(bool, UseAES, false, \ 543 product(bool, UseAES, false, \
542 "Control whether AES instructions can be used on x86/x64") \ 544 "Control whether AES instructions can be used on x86/x64") \
543 \ 545 \
544 product(uintx, LargePageSizeInBytes, 0, \ 546 product(uintx, LargePageSizeInBytes, 0, \
545 "Large page size (0 to let VM choose the page size") \ 547 "Large page size (0 to let VM choose the page size)") \
546 \ 548 \
547 product(uintx, LargePageHeapSizeThreshold, 128*M, \ 549 product(uintx, LargePageHeapSizeThreshold, 128*M, \
548 "Use large pages if max heap is at least this big") \ 550 "Use large pages if maximum heap is at least this big") \
549 \ 551 \
550 product(bool, ForceTimeHighResolution, false, \ 552 product(bool, ForceTimeHighResolution, false, \
551 "Using high time resolution(For Win32 only)") \ 553 "Using high time resolution (for Win32 only)") \
552 \ 554 \
553 develop(bool, TraceItables, false, \ 555 develop(bool, TraceItables, false, \
554 "Trace initialization and use of itables") \ 556 "Trace initialization and use of itables") \
555 \ 557 \
556 develop(bool, TracePcPatching, false, \ 558 develop(bool, TracePcPatching, false, \
562 develop(bool, TraceRelocator, false, \ 564 develop(bool, TraceRelocator, false, \
563 "Trace the bytecode relocator") \ 565 "Trace the bytecode relocator") \
564 \ 566 \
565 develop(bool, TraceLongCompiles, false, \ 567 develop(bool, TraceLongCompiles, false, \
566 "Print out every time compilation is longer than " \ 568 "Print out every time compilation is longer than " \
567 "a given threashold") \ 569 "a given threshold") \
568 \ 570 \
569 develop(bool, SafepointALot, false, \ 571 develop(bool, SafepointALot, false, \
570 "Generates a lot of safepoints. Works with " \ 572 "Generate a lot of safepoints. This works with " \
571 "GuaranteedSafepointInterval") \ 573 "GuaranteedSafepointInterval") \
572 \ 574 \
573 product_pd(bool, BackgroundCompilation, \ 575 product_pd(bool, BackgroundCompilation, \
574 "A thread requesting compilation is not blocked during " \ 576 "A thread requesting compilation is not blocked during " \
575 "compilation") \ 577 "compilation") \
576 \ 578 \
577 product(bool, PrintVMQWaitTime, false, \ 579 product(bool, PrintVMQWaitTime, false, \
578 "Prints out the waiting time in VM operation queue") \ 580 "Print out the waiting time in VM operation queue") \
579 \ 581 \
580 develop(bool, NoYieldsInMicrolock, false, \ 582 develop(bool, NoYieldsInMicrolock, false, \
581 "Disable yields in microlock") \ 583 "Disable yields in microlock") \
582 \ 584 \
583 develop(bool, TraceOopMapGeneration, false, \ 585 develop(bool, TraceOopMapGeneration, false, \
584 "Shows oopmap generation") \ 586 "Show OopMapGeneration") \
585 \ 587 \
586 product(bool, MethodFlushing, true, \ 588 product(bool, MethodFlushing, true, \
587 "Reclamation of zombie and not-entrant methods") \ 589 "Reclamation of zombie and not-entrant methods") \
588 \ 590 \
589 develop(bool, VerifyStack, false, \ 591 develop(bool, VerifyStack, false, \
590 "Verify stack of each thread when it is entering a runtime call") \ 592 "Verify stack of each thread when it is entering a runtime call") \
591 \ 593 \
592 diagnostic(bool, ForceUnreachable, false, \ 594 diagnostic(bool, ForceUnreachable, false, \
593 "Make all non code cache addresses to be unreachable with forcing use of 64bit literal fixups") \ 595 "Make all non code cache addresses to be unreachable by " \
596 "forcing use of 64bit literal fixups") \
594 \ 597 \
595 notproduct(bool, StressDerivedPointers, false, \ 598 notproduct(bool, StressDerivedPointers, false, \
596 "Force scavenge when a derived pointers is detected on stack " \ 599 "Force scavenge when a derived pointer is detected on stack " \
597 "after rtm call") \ 600 "after rtm call") \
598 \ 601 \
599 develop(bool, TraceDerivedPointers, false, \ 602 develop(bool, TraceDerivedPointers, false, \
600 "Trace traversal of derived pointers on stack") \ 603 "Trace traversal of derived pointers on stack") \
601 \ 604 \
610 \ 613 \
611 product(bool, UseInlineCaches, true, \ 614 product(bool, UseInlineCaches, true, \
612 "Use Inline Caches for virtual calls ") \ 615 "Use Inline Caches for virtual calls ") \
613 \ 616 \
614 develop(bool, InlineArrayCopy, true, \ 617 develop(bool, InlineArrayCopy, true, \
615 "inline arraycopy native that is known to be part of " \ 618 "Inline arraycopy native that is known to be part of " \
616 "base library DLL") \ 619 "base library DLL") \
617 \ 620 \
618 develop(bool, InlineObjectHash, true, \ 621 develop(bool, InlineObjectHash, true, \
619 "inline Object::hashCode() native that is known to be part " \ 622 "Inline Object::hashCode() native that is known to be part " \
620 "of base library DLL") \ 623 "of base library DLL") \
621 \ 624 \
622 develop(bool, InlineNatives, true, \ 625 develop(bool, InlineNatives, true, \
623 "inline natives that are known to be part of base library DLL") \ 626 "Inline natives that are known to be part of base library DLL") \
624 \ 627 \
625 develop(bool, InlineMathNatives, true, \ 628 develop(bool, InlineMathNatives, true, \
626 "inline SinD, CosD, etc.") \ 629 "Inline SinD, CosD, etc.") \
627 \ 630 \
628 develop(bool, InlineClassNatives, true, \ 631 develop(bool, InlineClassNatives, true, \
629 "inline Class.isInstance, etc") \ 632 "Inline Class.isInstance, etc") \
630 \ 633 \
631 develop(bool, InlineThreadNatives, true, \ 634 develop(bool, InlineThreadNatives, true, \
632 "inline Thread.currentThread, etc") \ 635 "Inline Thread.currentThread, etc") \
633 \ 636 \
634 develop(bool, InlineUnsafeOps, true, \ 637 develop(bool, InlineUnsafeOps, true, \
635 "inline memory ops (native methods) from sun.misc.Unsafe") \ 638 "Inline memory ops (native methods) from sun.misc.Unsafe") \
636 \ 639 \
637 product(bool, CriticalJNINatives, true, \ 640 product(bool, CriticalJNINatives, true, \
638 "check for critical JNI entry points") \ 641 "Check for critical JNI entry points") \
639 \ 642 \
640 notproduct(bool, StressCriticalJNINatives, false, \ 643 notproduct(bool, StressCriticalJNINatives, false, \
641 "Exercise register saving code in critical natives") \ 644 "Exercise register saving code in critical natives") \
642 \ 645 \
643 product(bool, UseSSE42Intrinsics, false, \ 646 product(bool, UseSSE42Intrinsics, false, \
644 "SSE4.2 versions of intrinsics") \ 647 "SSE4.2 versions of intrinsics") \
645 \ 648 \
646 product(bool, UseAESIntrinsics, false, \ 649 product(bool, UseAESIntrinsics, false, \
647 "use intrinsics for AES versions of crypto") \ 650 "Use intrinsics for AES versions of crypto") \
648 \ 651 \
649 product(bool, UseCRC32Intrinsics, false, \ 652 product(bool, UseCRC32Intrinsics, false, \
650 "use intrinsics for java.util.zip.CRC32") \ 653 "use intrinsics for java.util.zip.CRC32") \
651 \ 654 \
652 develop(bool, TraceCallFixup, false, \ 655 develop(bool, TraceCallFixup, false, \
653 "traces all call fixups") \ 656 "Trace all call fixups") \
654 \ 657 \
655 develop(bool, DeoptimizeALot, false, \ 658 develop(bool, DeoptimizeALot, false, \
656 "deoptimize at every exit from the runtime system") \ 659 "Deoptimize at every exit from the runtime system") \
657 \ 660 \
658 notproduct(ccstrlist, DeoptimizeOnlyAt, "", \ 661 notproduct(ccstrlist, DeoptimizeOnlyAt, "", \
659 "a comma separated list of bcis to deoptimize at") \ 662 "A comma separated list of bcis to deoptimize at") \
660 \ 663 \
661 product(bool, DeoptimizeRandom, false, \ 664 product(bool, DeoptimizeRandom, false, \
662 "deoptimize random frames on random exit from the runtime system")\ 665 "Deoptimize random frames on random exit from the runtime system")\
663 \ 666 \
664 notproduct(bool, ZombieALot, false, \ 667 notproduct(bool, ZombieALot, false, \
665 "creates zombies (non-entrant) at exit from the runt. system") \ 668 "Create zombies (non-entrant) at exit from the runtime system") \
666 \ 669 \
667 product(bool, UnlinkSymbolsALot, false, \ 670 product(bool, UnlinkSymbolsALot, false, \
668 "unlink unreferenced symbols from the symbol table at safepoints")\ 671 "Unlink unreferenced symbols from the symbol table at safepoints")\
669 \ 672 \
670 notproduct(bool, WalkStackALot, false, \ 673 notproduct(bool, WalkStackALot, false, \
671 "trace stack (no print) at every exit from the runtime system") \ 674 "Trace stack (no print) at every exit from the runtime system") \
672 \ 675 \
673 product(bool, Debugging, false, \ 676 product(bool, Debugging, false, \
674 "set when executing debug methods in debug.ccp " \ 677 "Set when executing debug methods in debug.cpp " \
675 "(to prevent triggering assertions)") \ 678 "(to prevent triggering assertions)") \
676 \ 679 \
677 notproduct(bool, StrictSafepointChecks, trueInDebug, \ 680 notproduct(bool, StrictSafepointChecks, trueInDebug, \
678 "Enable strict checks that safepoints cannot happen for threads " \ 681 "Enable strict checks that safepoints cannot happen for threads " \
679 "that used No_Safepoint_Verifier") \ 682 "that use No_Safepoint_Verifier") \
680 \ 683 \
681 notproduct(bool, VerifyLastFrame, false, \ 684 notproduct(bool, VerifyLastFrame, false, \
682 "Verify oops on last frame on entry to VM") \ 685 "Verify oops on last frame on entry to VM") \
683 \ 686 \
684 develop(bool, TraceHandleAllocation, false, \ 687 develop(bool, TraceHandleAllocation, false, \
685 "Prints out warnings when suspicious many handles are allocated") \ 688 "Print out warnings when suspiciously many handles are allocated")\
686 \ 689 \
687 product(bool, UseCompilerSafepoints, true, \ 690 product(bool, UseCompilerSafepoints, true, \
688 "Stop at safepoints in compiled code") \ 691 "Stop at safepoints in compiled code") \
689 \ 692 \
690 product(bool, FailOverToOldVerifier, true, \ 693 product(bool, FailOverToOldVerifier, true, \
691 "fail over to old verifier when split verifier fails") \ 694 "Fail over to old verifier when split verifier fails") \
692 \ 695 \
693 develop(bool, ShowSafepointMsgs, false, \ 696 develop(bool, ShowSafepointMsgs, false, \
694 "Show msg. about safepoint synch.") \ 697 "Show message about safepoint synchronization") \
695 \ 698 \
696 product(bool, SafepointTimeout, false, \ 699 product(bool, SafepointTimeout, false, \
697 "Time out and warn or fail after SafepointTimeoutDelay " \ 700 "Time out and warn or fail after SafepointTimeoutDelay " \
698 "milliseconds if failed to reach safepoint") \ 701 "milliseconds if failed to reach safepoint") \
699 \ 702 \
713 \ 716 \
714 product(bool, TraceSuspendWaitFailures, false, \ 717 product(bool, TraceSuspendWaitFailures, false, \
715 "Trace external suspend wait failures") \ 718 "Trace external suspend wait failures") \
716 \ 719 \
717 product(bool, MaxFDLimit, true, \ 720 product(bool, MaxFDLimit, true, \
718 "Bump the number of file descriptors to max in solaris.") \ 721 "Bump the number of file descriptors to maximum in Solaris") \
719 \ 722 \
720 diagnostic(bool, LogEvents, true, \ 723 diagnostic(bool, LogEvents, true, \
721 "Enable the various ring buffer event logs") \ 724 "Enable the various ring buffer event logs") \
722 \ 725 \
723 diagnostic(uintx, LogEventsBufferEntries, 10, \ 726 diagnostic(uintx, LogEventsBufferEntries, 10, \
724 "Enable the various ring buffer event logs") \ 727 "Number of ring buffer event logs") \
725 \ 728 \
726 product(bool, BytecodeVerificationRemote, true, \ 729 product(bool, BytecodeVerificationRemote, true, \
727 "Enables the Java bytecode verifier for remote classes") \ 730 "Enable the Java bytecode verifier for remote classes") \
728 \ 731 \
729 product(bool, BytecodeVerificationLocal, false, \ 732 product(bool, BytecodeVerificationLocal, false, \
730 "Enables the Java bytecode verifier for local classes") \ 733 "Enable the Java bytecode verifier for local classes") \
731 \ 734 \
732 develop(bool, ForceFloatExceptions, trueInDebug, \ 735 develop(bool, ForceFloatExceptions, trueInDebug, \
733 "Force exceptions on FP stack under/overflow") \ 736 "Force exceptions on FP stack under/overflow") \
734 \ 737 \
735 develop(bool, VerifyStackAtCalls, false, \ 738 develop(bool, VerifyStackAtCalls, false, \
737 \ 740 \
738 develop(bool, TraceJavaAssertions, false, \ 741 develop(bool, TraceJavaAssertions, false, \
739 "Trace java language assertions") \ 742 "Trace java language assertions") \
740 \ 743 \
741 notproduct(bool, CheckAssertionStatusDirectives, false, \ 744 notproduct(bool, CheckAssertionStatusDirectives, false, \
742 "temporary - see javaClasses.cpp") \ 745 "Temporary - see javaClasses.cpp") \
743 \ 746 \
744 notproduct(bool, PrintMallocFree, false, \ 747 notproduct(bool, PrintMallocFree, false, \
745 "Trace calls to C heap malloc/free allocation") \ 748 "Trace calls to C heap malloc/free allocation") \
746 \ 749 \
747 product(bool, PrintOopAddress, false, \ 750 product(bool, PrintOopAddress, false, \
756 notproduct(bool, ZapDeadLocalsOld, false, \ 759 notproduct(bool, ZapDeadLocalsOld, false, \
757 "Zap dead locals (old version, zaps all frames when " \ 760 "Zap dead locals (old version, zaps all frames when " \
758 "entering the VM") \ 761 "entering the VM") \
759 \ 762 \
760 notproduct(bool, CheckOopishValues, false, \ 763 notproduct(bool, CheckOopishValues, false, \
761 "Warn if value contains oop ( requires ZapDeadLocals)") \ 764 "Warn if value contains oop (requires ZapDeadLocals)") \
762 \ 765 \
763 develop(bool, UseMallocOnly, false, \ 766 develop(bool, UseMallocOnly, false, \
764 "use only malloc/free for allocation (no resource area/arena)") \ 767 "Use only malloc/free for allocation (no resource area/arena)") \
765 \ 768 \
766 develop(bool, PrintMalloc, false, \ 769 develop(bool, PrintMalloc, false, \
767 "print all malloc/free calls") \ 770 "Print all malloc/free calls") \
768 \ 771 \
769 develop(bool, PrintMallocStatistics, false, \ 772 develop(bool, PrintMallocStatistics, false, \
770 "print malloc/free statistics") \ 773 "Print malloc/free statistics") \
771 \ 774 \
772 develop(bool, ZapResourceArea, trueInDebug, \ 775 develop(bool, ZapResourceArea, trueInDebug, \
773 "Zap freed resource/arena space with 0xABABABAB") \ 776 "Zap freed resource/arena space with 0xABABABAB") \
774 \ 777 \
775 notproduct(bool, ZapVMHandleArea, trueInDebug, \ 778 notproduct(bool, ZapVMHandleArea, trueInDebug, \
777 \ 780 \
778 develop(bool, ZapJNIHandleArea, trueInDebug, \ 781 develop(bool, ZapJNIHandleArea, trueInDebug, \
779 "Zap freed JNI handle space with 0xFEFEFEFE") \ 782 "Zap freed JNI handle space with 0xFEFEFEFE") \
780 \ 783 \
781 notproduct(bool, ZapStackSegments, trueInDebug, \ 784 notproduct(bool, ZapStackSegments, trueInDebug, \
782 "Zap allocated/freed Stack segments with 0xFADFADED") \ 785 "Zap allocated/freed stack segments with 0xFADFADED") \
783 \ 786 \
784 develop(bool, ZapUnusedHeapArea, trueInDebug, \ 787 develop(bool, ZapUnusedHeapArea, trueInDebug, \
785 "Zap unused heap space with 0xBAADBABE") \ 788 "Zap unused heap space with 0xBAADBABE") \
786 \ 789 \
787 develop(bool, TraceZapUnusedHeapArea, false, \ 790 develop(bool, TraceZapUnusedHeapArea, false, \
792 \ 795 \
793 develop(bool, ZapFillerObjects, trueInDebug, \ 796 develop(bool, ZapFillerObjects, trueInDebug, \
794 "Zap filler objects with 0xDEAFBABE") \ 797 "Zap filler objects with 0xDEAFBABE") \
795 \ 798 \
796 develop(bool, PrintVMMessages, true, \ 799 develop(bool, PrintVMMessages, true, \
797 "Print vm messages on console") \ 800 "Print VM messages on console") \
798 \ 801 \
799 product(bool, PrintGCApplicationConcurrentTime, false, \ 802 product(bool, PrintGCApplicationConcurrentTime, false, \
800 "Print the time the application has been running") \ 803 "Print the time the application has been running") \
801 \ 804 \
802 product(bool, PrintGCApplicationStoppedTime, false, \ 805 product(bool, PrintGCApplicationStoppedTime, false, \
803 "Print the time the application has been stopped") \ 806 "Print the time the application has been stopped") \
804 \ 807 \
805 diagnostic(bool, VerboseVerification, false, \ 808 diagnostic(bool, VerboseVerification, false, \
806 "Display detailed verification details") \ 809 "Display detailed verification details") \
807 \ 810 \
808 notproduct(uintx, ErrorHandlerTest, 0, \ 811 notproduct(uintx, ErrorHandlerTest, 0, \
809 "If > 0, provokes an error after VM initialization; the value" \ 812 "If > 0, provokes an error after VM initialization; the value " \
810 "determines which error to provoke. See test_error_handler()" \ 813 "determines which error to provoke. See test_error_handler() " \
811 "in debug.cpp.") \ 814 "in debug.cpp.") \
812 \ 815 \
813 develop(bool, Verbose, false, \ 816 develop(bool, Verbose, false, \
814 "Prints additional debugging information from other modes") \ 817 "Print additional debugging information from other modes") \
815 \ 818 \
816 develop(bool, PrintMiscellaneous, false, \ 819 develop(bool, PrintMiscellaneous, false, \
817 "Prints uncategorized debugging information (requires +Verbose)") \ 820 "Print uncategorized debugging information (requires +Verbose)") \
818 \ 821 \
819 develop(bool, WizardMode, false, \ 822 develop(bool, WizardMode, false, \
820 "Prints much more debugging information") \ 823 "Print much more debugging information") \
821 \ 824 \
822 product(bool, ShowMessageBoxOnError, false, \ 825 product(bool, ShowMessageBoxOnError, false, \
823 "Keep process alive on VM fatal error") \ 826 "Keep process alive on VM fatal error") \
824 \ 827 \
825 product(bool, CreateMinidumpOnCrash, false, \ 828 product(bool, CreateMinidumpOnCrash, false, \
827 \ 830 \
828 product_pd(bool, UseOSErrorReporting, \ 831 product_pd(bool, UseOSErrorReporting, \
829 "Let VM fatal error propagate to the OS (ie. WER on Windows)") \ 832 "Let VM fatal error propagate to the OS (ie. WER on Windows)") \
830 \ 833 \
831 product(bool, SuppressFatalErrorMessage, false, \ 834 product(bool, SuppressFatalErrorMessage, false, \
832 "Do NO Fatal Error report [Avoid deadlock]") \ 835 "Report NO fatal error message (avoid deadlock)") \
833 \ 836 \
834 product(ccstrlist, OnError, "", \ 837 product(ccstrlist, OnError, "", \
835 "Run user-defined commands on fatal error; see VMError.cpp " \ 838 "Run user-defined commands on fatal error; see VMError.cpp " \
836 "for examples") \ 839 "for examples") \
837 \ 840 \
838 product(ccstrlist, OnOutOfMemoryError, "", \ 841 product(ccstrlist, OnOutOfMemoryError, "", \
839 "Run user-defined commands on first java.lang.OutOfMemoryError") \ 842 "Run user-defined commands on first java.lang.OutOfMemoryError") \
840 \ 843 \
841 manageable(bool, HeapDumpBeforeFullGC, false, \ 844 manageable(bool, HeapDumpBeforeFullGC, false, \
842 "Dump heap to file before any major stop-world GC") \ 845 "Dump heap to file before any major stop-the-world GC") \
843 \ 846 \
844 manageable(bool, HeapDumpAfterFullGC, false, \ 847 manageable(bool, HeapDumpAfterFullGC, false, \
845 "Dump heap to file after any major stop-world GC") \ 848 "Dump heap to file after any major stop-the-world GC") \
846 \ 849 \
847 manageable(bool, HeapDumpOnOutOfMemoryError, false, \ 850 manageable(bool, HeapDumpOnOutOfMemoryError, false, \
848 "Dump heap to file when java.lang.OutOfMemoryError is thrown") \ 851 "Dump heap to file when java.lang.OutOfMemoryError is thrown") \
849 \ 852 \
850 manageable(ccstr, HeapDumpPath, NULL, \ 853 manageable(ccstr, HeapDumpPath, NULL, \
851 "When HeapDumpOnOutOfMemoryError is on, the path (filename or" \ 854 "When HeapDumpOnOutOfMemoryError is on, the path (filename or " \
852 "directory) of the dump file (defaults to java_pid<pid>.hprof" \ 855 "directory) of the dump file (defaults to java_pid<pid>.hprof " \
853 "in the working directory)") \ 856 "in the working directory)") \
854 \ 857 \
855 develop(uintx, SegmentedHeapDumpThreshold, 2*G, \ 858 develop(uintx, SegmentedHeapDumpThreshold, 2*G, \
856 "Generate a segmented heap dump (JAVA PROFILE 1.0.2 format) " \ 859 "Generate a segmented heap dump (JAVA PROFILE 1.0.2 format) " \
857 "when the heap usage is larger than this") \ 860 "when the heap usage is larger than this") \
861 \ 864 \
862 develop(bool, BreakAtWarning, false, \ 865 develop(bool, BreakAtWarning, false, \
863 "Execute breakpoint upon encountering VM warning") \ 866 "Execute breakpoint upon encountering VM warning") \
864 \ 867 \
865 develop(bool, TraceVMOperation, false, \ 868 develop(bool, TraceVMOperation, false, \
866 "Trace vm operations") \ 869 "Trace VM operations") \
867 \ 870 \
868 develop(bool, UseFakeTimers, false, \ 871 develop(bool, UseFakeTimers, false, \
869 "Tells whether the VM should use system time or a fake timer") \ 872 "Tell whether the VM should use system time or a fake timer") \
870 \ 873 \
871 product(ccstr, NativeMemoryTracking, "off", \ 874 product(ccstr, NativeMemoryTracking, "off", \
872 "Native memory tracking options") \ 875 "Native memory tracking options") \
873 \ 876 \
874 diagnostic(bool, PrintNMTStatistics, false, \ 877 diagnostic(bool, PrintNMTStatistics, false, \
875 "Print native memory tracking summary data if it is on") \ 878 "Print native memory tracking summary data if it is on") \
876 \ 879 \
877 diagnostic(bool, AutoShutdownNMT, true, \ 880 diagnostic(bool, AutoShutdownNMT, true, \
878 "Automatically shutdown native memory tracking under stress " \ 881 "Automatically shutdown native memory tracking under stress " \
879 "situation. When set to false, native memory tracking tries to " \ 882 "situations. When set to false, native memory tracking tries to " \
880 "stay alive at the expense of JVM performance") \ 883 "stay alive at the expense of JVM performance") \
881 \ 884 \
882 diagnostic(bool, LogCompilation, false, \ 885 diagnostic(bool, LogCompilation, false, \
883 "Log compilation activity in detail to LogFile") \ 886 "Log compilation activity in detail to LogFile") \
884 \ 887 \
885 product(bool, PrintCompilation, false, \ 888 product(bool, PrintCompilation, false, \
886 "Print compilations") \ 889 "Print compilations") \
887 \ 890 \
888 diagnostic(bool, TraceNMethodInstalls, false, \ 891 diagnostic(bool, TraceNMethodInstalls, false, \
889 "Trace nmethod intallation") \ 892 "Trace nmethod installation") \
890 \ 893 \
891 diagnostic(intx, ScavengeRootsInCode, 2, \ 894 diagnostic(intx, ScavengeRootsInCode, 2, \
892 "0: do not allow scavengable oops in the code cache; " \ 895 "0: do not allow scavengable oops in the code cache; " \
893 "1: allow scavenging from the code cache; " \ 896 "1: allow scavenging from the code cache; " \
894 "2: emit as many constants as the compiler can see") \ 897 "2: emit as many constants as the compiler can see") \
895 \ 898 \
896 product(bool, AlwaysRestoreFPU, false, \ 899 product(bool, AlwaysRestoreFPU, false, \
897 "Restore the FPU control word after every JNI call (expensive)") \ 900 "Restore the FPU control word after every JNI call (expensive)") \
898 \ 901 \
899 diagnostic(bool, PrintCompilation2, false, \ 902 diagnostic(bool, PrintCompilation2, false, \
910 \ 913 \
911 diagnostic(bool, PrintAssembly, false, \ 914 diagnostic(bool, PrintAssembly, false, \
912 "Print assembly code (using external disassembler.so)") \ 915 "Print assembly code (using external disassembler.so)") \
913 \ 916 \
914 diagnostic(ccstr, PrintAssemblyOptions, NULL, \ 917 diagnostic(ccstr, PrintAssemblyOptions, NULL, \
915 "Options string passed to disassembler.so") \ 918 "Print options string passed to disassembler.so") \
916 \ 919 \
917 diagnostic(bool, PrintNMethods, false, \ 920 diagnostic(bool, PrintNMethods, false, \
918 "Print assembly code for nmethods when generated") \ 921 "Print assembly code for nmethods when generated") \
919 \ 922 \
920 diagnostic(bool, PrintNativeNMethods, false, \ 923 diagnostic(bool, PrintNativeNMethods, false, \
931 \ 934 \
932 develop(bool, PrintExceptionHandlers, false, \ 935 develop(bool, PrintExceptionHandlers, false, \
933 "Print exception handler tables for all nmethods when generated") \ 936 "Print exception handler tables for all nmethods when generated") \
934 \ 937 \
935 develop(bool, StressCompiledExceptionHandlers, false, \ 938 develop(bool, StressCompiledExceptionHandlers, false, \
936 "Exercise compiled exception handlers") \ 939 "Exercise compiled exception handlers") \
937 \ 940 \
938 develop(bool, InterceptOSException, false, \ 941 develop(bool, InterceptOSException, false, \
939 "Starts debugger when an implicit OS (e.g., NULL) " \ 942 "Start debugger when an implicit OS (e.g. NULL) " \
940 "exception happens") \ 943 "exception happens") \
941 \ 944 \
942 product(bool, PrintCodeCache, false, \ 945 product(bool, PrintCodeCache, false, \
943 "Print the code cache memory usage when exiting") \ 946 "Print the code cache memory usage when exiting") \
944 \ 947 \
945 develop(bool, PrintCodeCache2, false, \ 948 develop(bool, PrintCodeCache2, false, \
946 "Print detailed usage info on the code cache when exiting") \ 949 "Print detailed usage information on the code cache when exiting")\
947 \ 950 \
948 product(bool, PrintCodeCacheOnCompilation, false, \ 951 product(bool, PrintCodeCacheOnCompilation, false, \
949 "Print the code cache memory usage each time a method is compiled") \ 952 "Print the code cache memory usage each time a method is " \
953 "compiled") \
950 \ 954 \
951 diagnostic(bool, PrintStubCode, false, \ 955 diagnostic(bool, PrintStubCode, false, \
952 "Print generated stub code") \ 956 "Print generated stub code") \
953 \ 957 \
954 product(bool, StackTraceInThrowable, true, \ 958 product(bool, StackTraceInThrowable, true, \
956 \ 960 \
957 product(bool, OmitStackTraceInFastThrow, true, \ 961 product(bool, OmitStackTraceInFastThrow, true, \
958 "Omit backtraces for some 'hot' exceptions in optimized code") \ 962 "Omit backtraces for some 'hot' exceptions in optimized code") \
959 \ 963 \
960 product(bool, ProfilerPrintByteCodeStatistics, false, \ 964 product(bool, ProfilerPrintByteCodeStatistics, false, \
961 "Prints byte code statictics when dumping profiler output") \ 965 "Print bytecode statistics when dumping profiler output") \
962 \ 966 \
963 product(bool, ProfilerRecordPC, false, \ 967 product(bool, ProfilerRecordPC, false, \
964 "Collects tick for each 16 byte interval of compiled code") \ 968 "Collect ticks for each 16 byte interval of compiled code") \
965 \ 969 \
966 product(bool, ProfileVM, false, \ 970 product(bool, ProfileVM, false, \
967 "Profiles ticks that fall within VM (either in the VM Thread " \ 971 "Profile ticks that fall within VM (either in the VM Thread " \
968 "or VM code called through stubs)") \ 972 "or VM code called through stubs)") \
969 \ 973 \
970 product(bool, ProfileIntervals, false, \ 974 product(bool, ProfileIntervals, false, \
971 "Prints profiles for each interval (see ProfileIntervalsTicks)") \ 975 "Print profiles for each interval (see ProfileIntervalsTicks)") \
972 \ 976 \
973 notproduct(bool, ProfilerCheckIntervals, false, \ 977 notproduct(bool, ProfilerCheckIntervals, false, \
974 "Collect and print info on spacing of profiler ticks") \ 978 "Collect and print information on spacing of profiler ticks") \
975 \ 979 \
976 develop(bool, PrintJVMWarnings, false, \ 980 develop(bool, PrintJVMWarnings, false, \
977 "Prints warnings for unimplemented JVM functions") \ 981 "Print warnings for unimplemented JVM functions") \
978 \ 982 \
979 product(bool, PrintWarnings, true, \ 983 product(bool, PrintWarnings, true, \
980 "Prints JVM warnings to output stream") \ 984 "Print JVM warnings to output stream") \
981 \ 985 \
982 notproduct(uintx, WarnOnStalledSpinLock, 0, \ 986 notproduct(uintx, WarnOnStalledSpinLock, 0, \
983 "Prints warnings for stalled SpinLocks") \ 987 "Print warnings for stalled SpinLocks") \
984 \ 988 \
985 product(bool, RegisterFinalizersAtInit, true, \ 989 product(bool, RegisterFinalizersAtInit, true, \
986 "Register finalizable objects at end of Object.<init> or " \ 990 "Register finalizable objects at end of Object.<init> or " \
987 "after allocation") \ 991 "after allocation") \
988 \ 992 \
989 develop(bool, RegisterReferences, true, \ 993 develop(bool, RegisterReferences, true, \
990 "Tells whether the VM should register soft/weak/final/phantom " \ 994 "Tell whether the VM should register soft/weak/final/phantom " \
991 "references") \ 995 "references") \
992 \ 996 \
993 develop(bool, IgnoreRewrites, false, \ 997 develop(bool, IgnoreRewrites, false, \
994 "Supress rewrites of bytecodes in the oopmap generator. " \ 998 "Suppress rewrites of bytecodes in the oopmap generator. " \
995 "This is unsafe!") \ 999 "This is unsafe!") \
996 \ 1000 \
997 develop(bool, PrintCodeCacheExtension, false, \ 1001 develop(bool, PrintCodeCacheExtension, false, \
998 "Print extension of code cache") \ 1002 "Print extension of code cache") \
999 \ 1003 \
1000 develop(bool, UsePrivilegedStack, true, \ 1004 develop(bool, UsePrivilegedStack, true, \
1001 "Enable the security JVM functions") \ 1005 "Enable the security JVM functions") \
1002 \ 1006 \
1003 develop(bool, ProtectionDomainVerification, true, \ 1007 develop(bool, ProtectionDomainVerification, true, \
1004 "Verifies protection domain before resolution in system " \ 1008 "Verify protection domain before resolution in system dictionary")\
1005 "dictionary") \
1006 \ 1009 \
1007 product(bool, ClassUnloading, true, \ 1010 product(bool, ClassUnloading, true, \
1008 "Do unloading of classes") \ 1011 "Do unloading of classes") \
1009 \ 1012 \
1010 develop(bool, DisableStartThread, false, \ 1013 develop(bool, DisableStartThread, false, \
1013 \ 1016 \
1014 develop(bool, MemProfiling, false, \ 1017 develop(bool, MemProfiling, false, \
1015 "Write memory usage profiling to log file") \ 1018 "Write memory usage profiling to log file") \
1016 \ 1019 \
1017 notproduct(bool, PrintSystemDictionaryAtExit, false, \ 1020 notproduct(bool, PrintSystemDictionaryAtExit, false, \
1018 "Prints the system dictionary at exit") \ 1021 "Print the system dictionary at exit") \
1019 \ 1022 \
1020 experimental(intx, PredictedLoadedClassCount, 0, \ 1023 experimental(intx, PredictedLoadedClassCount, 0, \
1021 "Experimental: Tune loaded class cache starting size.") \ 1024 "Experimental: Tune loaded class cache starting size") \
1022 \ 1025 \
1023 diagnostic(bool, UnsyncloadClass, false, \ 1026 diagnostic(bool, UnsyncloadClass, false, \
1024 "Unstable: VM calls loadClass unsynchronized. Custom " \ 1027 "Unstable: VM calls loadClass unsynchronized. Custom " \
1025 "class loader must call VM synchronized for findClass " \ 1028 "class loader must call VM synchronized for findClass " \
1026 "and defineClass.") \ 1029 "and defineClass.") \
1027 \ 1030 \
1028 product(bool, AlwaysLockClassLoader, false, \ 1031 product(bool, AlwaysLockClassLoader, false, \
1029 "Require the VM to acquire the class loader lock before calling " \ 1032 "Require the VM to acquire the class loader lock before calling " \
1030 "loadClass() even for class loaders registering " \ 1033 "loadClass() even for class loaders registering " \
1036 \ 1039 \
1037 product(bool, MustCallLoadClassInternal, false, \ 1040 product(bool, MustCallLoadClassInternal, false, \
1038 "Call loadClassInternal() rather than loadClass()") \ 1041 "Call loadClassInternal() rather than loadClass()") \
1039 \ 1042 \
1040 product_pd(bool, DontYieldALot, \ 1043 product_pd(bool, DontYieldALot, \
1041 "Throw away obvious excess yield calls (for SOLARIS only)") \ 1044 "Throw away obvious excess yield calls (for Solaris only)") \
1042 \ 1045 \
1043 product_pd(bool, ConvertSleepToYield, \ 1046 product_pd(bool, ConvertSleepToYield, \
1044 "Converts sleep(0) to thread yield " \ 1047 "Convert sleep(0) to thread yield " \
1045 "(may be off for SOLARIS to improve GUI)") \ 1048 "(may be off for Solaris to improve GUI)") \
1046 \ 1049 \
1047 product(bool, ConvertYieldToSleep, false, \ 1050 product(bool, ConvertYieldToSleep, false, \
1048 "Converts yield to a sleep of MinSleepInterval to simulate Win32 "\ 1051 "Convert yield to a sleep of MinSleepInterval to simulate Win32 " \
1049 "behavior (SOLARIS only)") \ 1052 "behavior (Solaris only)") \
1050 \ 1053 \
1051 product(bool, UseBoundThreads, true, \ 1054 product(bool, UseBoundThreads, true, \
1052 "Bind user level threads to kernel threads (for SOLARIS only)") \ 1055 "Bind user level threads to kernel threads (for Solaris only)") \
1053 \ 1056 \
1054 develop(bool, UseDetachedThreads, true, \ 1057 develop(bool, UseDetachedThreads, true, \
1055 "Use detached threads that are recycled upon termination " \ 1058 "Use detached threads that are recycled upon termination " \
1056 "(for SOLARIS only)") \ 1059 "(for Solaris only)") \
1057 \ 1060 \
1058 product(bool, UseLWPSynchronization, true, \ 1061 product(bool, UseLWPSynchronization, true, \
1059 "Use LWP-based instead of libthread-based synchronization " \ 1062 "Use LWP-based instead of libthread-based synchronization " \
1060 "(SPARC only)") \ 1063 "(SPARC only)") \
1061 \ 1064 \
1062 product(ccstr, SyncKnobs, NULL, \ 1065 product(ccstr, SyncKnobs, NULL, \
1063 "(Unstable) Various monitor synchronization tunables") \ 1066 "(Unstable) Various monitor synchronization tunables") \
1064 \ 1067 \
1065 product(intx, EmitSync, 0, \ 1068 product(intx, EmitSync, 0, \
1066 "(Unsafe,Unstable) " \ 1069 "(Unsafe, Unstable) " \
1067 " Controls emission of inline sync fast-path code") \ 1070 "Control emission of inline sync fast-path code") \
1068 \ 1071 \
1069 product(intx, MonitorBound, 0, "Bound Monitor population") \ 1072 product(intx, MonitorBound, 0, "Bound Monitor population") \
1070 \ 1073 \
1071 product(bool, MonitorInUseLists, false, "Track Monitors for Deflation") \ 1074 product(bool, MonitorInUseLists, false, "Track Monitors for Deflation") \
1072 \ 1075 \
1073 product(intx, SyncFlags, 0, "(Unsafe,Unstable) Experimental Sync flags" ) \ 1076 product(intx, SyncFlags, 0, "(Unsafe, Unstable) Experimental Sync flags") \
1074 \ 1077 \
1075 product(intx, SyncVerbose, 0, "(Unstable)" ) \ 1078 product(intx, SyncVerbose, 0, "(Unstable)") \
1076 \ 1079 \
1077 product(intx, ClearFPUAtPark, 0, "(Unsafe,Unstable)" ) \ 1080 product(intx, ClearFPUAtPark, 0, "(Unsafe, Unstable)") \
1078 \ 1081 \
1079 product(intx, hashCode, 5, \ 1082 product(intx, hashCode, 5, \
1080 "(Unstable) select hashCode generation algorithm" ) \ 1083 "(Unstable) select hashCode generation algorithm") \
1081 \ 1084 \
1082 product(intx, WorkAroundNPTLTimedWaitHang, 1, \ 1085 product(intx, WorkAroundNPTLTimedWaitHang, 1, \
1083 "(Unstable, Linux-specific)" \ 1086 "(Unstable, Linux-specific) " \
1084 " avoid NPTL-FUTEX hang pthread_cond_timedwait" ) \ 1087 "avoid NPTL-FUTEX hang pthread_cond_timedwait") \
1085 \ 1088 \
1086 product(bool, FilterSpuriousWakeups, true, \ 1089 product(bool, FilterSpuriousWakeups, true, \
1087 "Prevent spurious or premature wakeups from object.wait " \ 1090 "Prevent spurious or premature wakeups from object.wait " \
1088 "(Solaris only)") \ 1091 "(Solaris only)") \
1089 \ 1092 \
1090 product(intx, NativeMonitorTimeout, -1, "(Unstable)" ) \ 1093 product(intx, NativeMonitorTimeout, -1, "(Unstable)") \
1091 product(intx, NativeMonitorFlags, 0, "(Unstable)" ) \ 1094 \
1092 product(intx, NativeMonitorSpinLimit, 20, "(Unstable)" ) \ 1095 product(intx, NativeMonitorFlags, 0, "(Unstable)") \
1096 \
1097 product(intx, NativeMonitorSpinLimit, 20, "(Unstable)") \
1093 \ 1098 \
1094 develop(bool, UsePthreads, false, \ 1099 develop(bool, UsePthreads, false, \
1095 "Use pthread-based instead of libthread-based synchronization " \ 1100 "Use pthread-based instead of libthread-based synchronization " \
1096 "(SPARC only)") \ 1101 "(SPARC only)") \
1097 \ 1102 \
1098 product(bool, AdjustConcurrency, false, \ 1103 product(bool, AdjustConcurrency, false, \
1099 "call thr_setconcurrency at thread create time to avoid " \ 1104 "Call thr_setconcurrency at thread creation time to avoid " \
1100 "LWP starvation on MP systems (For Solaris Only)") \ 1105 "LWP starvation on MP systems (for Solaris Only)") \
1101 \ 1106 \
1102 product(bool, ReduceSignalUsage, false, \ 1107 product(bool, ReduceSignalUsage, false, \
1103 "Reduce the use of OS signals in Java and/or the VM") \ 1108 "Reduce the use of OS signals in Java and/or the VM") \
1104 \ 1109 \
1105 develop_pd(bool, ShareVtableStubs, \ 1110 develop_pd(bool, ShareVtableStubs, \
1106 "Share vtable stubs (smaller code but worse branch prediction") \ 1111 "Share vtable stubs (smaller code but worse branch prediction") \
1107 \ 1112 \
1108 develop(bool, LoadLineNumberTables, true, \ 1113 develop(bool, LoadLineNumberTables, true, \
1109 "Tells whether the class file parser loads line number tables") \ 1114 "Tell whether the class file parser loads line number tables") \
1110 \ 1115 \
1111 develop(bool, LoadLocalVariableTables, true, \ 1116 develop(bool, LoadLocalVariableTables, true, \
1112 "Tells whether the class file parser loads local variable tables")\ 1117 "Tell whether the class file parser loads local variable tables") \
1113 \ 1118 \
1114 develop(bool, LoadLocalVariableTypeTables, true, \ 1119 develop(bool, LoadLocalVariableTypeTables, true, \
1115 "Tells whether the class file parser loads local variable type tables")\ 1120 "Tell whether the class file parser loads local variable type" \
1121 "tables") \
1116 \ 1122 \
1117 product(bool, AllowUserSignalHandlers, false, \ 1123 product(bool, AllowUserSignalHandlers, false, \
1118 "Do not complain if the application installs signal handlers " \ 1124 "Do not complain if the application installs signal handlers " \
1119 "(Solaris & Linux only)") \ 1125 "(Solaris & Linux only)") \
1120 \ 1126 \
1141 product(bool, UseFastJNIAccessors, true, \ 1147 product(bool, UseFastJNIAccessors, true, \
1142 "Use optimized versions of Get<Primitive>Field") \ 1148 "Use optimized versions of Get<Primitive>Field") \
1143 \ 1149 \
1144 product(bool, EagerXrunInit, false, \ 1150 product(bool, EagerXrunInit, false, \
1145 "Eagerly initialize -Xrun libraries; allows startup profiling, " \ 1151 "Eagerly initialize -Xrun libraries; allows startup profiling, " \
1146 " but not all -Xrun libraries may support the state of the VM at this time") \ 1152 "but not all -Xrun libraries may support the state of the VM " \
1153 "at this time") \
1147 \ 1154 \
1148 product(bool, PreserveAllAnnotations, false, \ 1155 product(bool, PreserveAllAnnotations, false, \
1149 "Preserve RuntimeInvisibleAnnotations as well as RuntimeVisibleAnnotations") \ 1156 "Preserve RuntimeInvisibleAnnotations as well " \
1157 "as RuntimeVisibleAnnotations") \
1150 \ 1158 \
1151 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \ 1159 develop(uintx, PreallocatedOutOfMemoryErrorCount, 4, \
1152 "Number of OutOfMemoryErrors preallocated with backtrace") \ 1160 "Number of OutOfMemoryErrors preallocated with backtrace") \
1153 \ 1161 \
1154 product(bool, LazyBootClassLoader, true, \ 1162 product(bool, LazyBootClassLoader, true, \
1219 \ 1227 \
1220 product(intx, TraceRedefineClasses, 0, \ 1228 product(intx, TraceRedefineClasses, 0, \
1221 "Trace level for JVMTI RedefineClasses") \ 1229 "Trace level for JVMTI RedefineClasses") \
1222 \ 1230 \
1223 develop(bool, StressMethodComparator, false, \ 1231 develop(bool, StressMethodComparator, false, \
1224 "run the MethodComparator on all loaded methods") \ 1232 "Run the MethodComparator on all loaded methods") \
1225 \ 1233 \
1226 /* change to false by default sometime after Mustang */ \ 1234 /* change to false by default sometime after Mustang */ \
1227 product(bool, VerifyMergedCPBytecodes, true, \ 1235 product(bool, VerifyMergedCPBytecodes, true, \
1228 "Verify bytecodes after RedefineClasses constant pool merging") \ 1236 "Verify bytecodes after RedefineClasses constant pool merging") \
1229 \ 1237 \
1253 \ 1261 \
1254 develop(bool, TraceDependencies, false, \ 1262 develop(bool, TraceDependencies, false, \
1255 "Trace dependencies") \ 1263 "Trace dependencies") \
1256 \ 1264 \
1257 develop(bool, VerifyDependencies, trueInDebug, \ 1265 develop(bool, VerifyDependencies, trueInDebug, \
1258 "Exercise and verify the compilation dependency mechanism") \ 1266 "Exercise and verify the compilation dependency mechanism") \
1259 \ 1267 \
1260 develop(bool, TraceNewOopMapGeneration, false, \ 1268 develop(bool, TraceNewOopMapGeneration, false, \
1261 "Trace OopMapGeneration") \ 1269 "Trace OopMapGeneration") \
1262 \ 1270 \
1263 develop(bool, TraceNewOopMapGenerationDetailed, false, \ 1271 develop(bool, TraceNewOopMapGenerationDetailed, false, \
1271 \ 1279 \
1272 develop(bool, TraceMonitorMismatch, false, \ 1280 develop(bool, TraceMonitorMismatch, false, \
1273 "Trace monitor matching failures during OopMapGeneration") \ 1281 "Trace monitor matching failures during OopMapGeneration") \
1274 \ 1282 \
1275 develop(bool, TraceOopMapRewrites, false, \ 1283 develop(bool, TraceOopMapRewrites, false, \
1276 "Trace rewritting of method oops during oop map generation") \ 1284 "Trace rewriting of method oops during oop map generation") \
1277 \ 1285 \
1278 develop(bool, TraceSafepoint, false, \ 1286 develop(bool, TraceSafepoint, false, \
1279 "Trace safepoint operations") \ 1287 "Trace safepoint operations") \
1280 \ 1288 \
1281 develop(bool, TraceICBuffer, false, \ 1289 develop(bool, TraceICBuffer, false, \
1289 \ 1297 \
1290 develop(bool, TraceStartupTime, false, \ 1298 develop(bool, TraceStartupTime, false, \
1291 "Trace setup time") \ 1299 "Trace setup time") \
1292 \ 1300 \
1293 develop(bool, TraceProtectionDomainVerification, false, \ 1301 develop(bool, TraceProtectionDomainVerification, false, \
1294 "Trace protection domain verifcation") \ 1302 "Trace protection domain verification") \
1295 \ 1303 \
1296 develop(bool, TraceClearedExceptions, false, \ 1304 develop(bool, TraceClearedExceptions, false, \
1297 "Prints when an exception is forcibly cleared") \ 1305 "Print when an exception is forcibly cleared") \
1298 \ 1306 \
1299 product(bool, TraceClassResolution, false, \ 1307 product(bool, TraceClassResolution, false, \
1300 "Trace all constant pool resolutions (for debugging)") \ 1308 "Trace all constant pool resolutions (for debugging)") \
1301 \ 1309 \
1302 product(bool, TraceBiasedLocking, false, \ 1310 product(bool, TraceBiasedLocking, false, \
1306 "Trace monitor inflation in JVM") \ 1314 "Trace monitor inflation in JVM") \
1307 \ 1315 \
1308 /* gc */ \ 1316 /* gc */ \
1309 \ 1317 \
1310 product(bool, UseSerialGC, false, \ 1318 product(bool, UseSerialGC, false, \
1311 "Use the serial garbage collector") \ 1319 "Use the Serial garbage collector") \
1312 \ 1320 \
1313 product(bool, UseG1GC, false, \ 1321 product(bool, UseG1GC, false, \
1314 "Use the Garbage-First garbage collector") \ 1322 "Use the Garbage-First garbage collector") \
1315 \ 1323 \
1316 product(bool, UseParallelGC, false, \ 1324 product(bool, UseParallelGC, false, \
1325 \ 1333 \
1326 product(uintx, HeapFirstMaximumCompactionCount, 3, \ 1334 product(uintx, HeapFirstMaximumCompactionCount, 3, \
1327 "The collection count for the first maximum compaction") \ 1335 "The collection count for the first maximum compaction") \
1328 \ 1336 \
1329 product(bool, UseMaximumCompactionOnSystemGC, true, \ 1337 product(bool, UseMaximumCompactionOnSystemGC, true, \
1330 "In the Parallel Old garbage collector maximum compaction for " \ 1338 "Use maximum compaction in the Parallel Old garbage collector " \
1331 "a system GC") \ 1339 "for a system GC") \
1332 \ 1340 \
1333 product(uintx, ParallelOldDeadWoodLimiterMean, 50, \ 1341 product(uintx, ParallelOldDeadWoodLimiterMean, 50, \
1334 "The mean used by the par compact dead wood" \ 1342 "The mean used by the parallel compact dead wood " \
1335 "limiter (a number between 0-100).") \ 1343 "limiter (a number between 0-100)") \
1336 \ 1344 \
1337 product(uintx, ParallelOldDeadWoodLimiterStdDev, 80, \ 1345 product(uintx, ParallelOldDeadWoodLimiterStdDev, 80, \
1338 "The standard deviation used by the par compact dead wood" \ 1346 "The standard deviation used by the parallel compact dead wood " \
1339 "limiter (a number between 0-100).") \ 1347 "limiter (a number between 0-100)") \
1340 \ 1348 \
1341 product(uintx, ParallelGCThreads, 0, \ 1349 product(uintx, ParallelGCThreads, 0, \
1342 "Number of parallel threads parallel gc will use") \ 1350 "Number of parallel threads parallel gc will use") \
1343 \ 1351 \
1344 product(bool, UseDynamicNumberOfGCThreads, false, \ 1352 product(bool, UseDynamicNumberOfGCThreads, false, \
1345 "Dynamically choose the number of parallel threads " \ 1353 "Dynamically choose the number of parallel threads " \
1346 "parallel gc will use") \ 1354 "parallel gc will use") \
1347 \ 1355 \
1348 diagnostic(bool, ForceDynamicNumberOfGCThreads, false, \ 1356 diagnostic(bool, ForceDynamicNumberOfGCThreads, false, \
1349 "Force dynamic selection of the number of" \ 1357 "Force dynamic selection of the number of " \
1350 "parallel threads parallel gc will use to aid debugging") \ 1358 "parallel threads parallel gc will use to aid debugging") \
1351 \ 1359 \
1352 product(uintx, HeapSizePerGCThread, ScaleForWordSize(64*M), \ 1360 product(uintx, HeapSizePerGCThread, ScaleForWordSize(64*M), \
1353 "Size of heap (bytes) per GC thread used in calculating the " \ 1361 "Size of heap (bytes) per GC thread used in calculating the " \
1354 "number of GC threads") \ 1362 "number of GC threads") \
1355 \ 1363 \
1356 product(bool, TraceDynamicGCThreads, false, \ 1364 product(bool, TraceDynamicGCThreads, false, \
1357 "Trace the dynamic GC thread usage") \ 1365 "Trace the dynamic GC thread usage") \
1358 \ 1366 \
1359 develop(bool, ParallelOldGCSplitALot, false, \ 1367 develop(bool, ParallelOldGCSplitALot, false, \
1360 "Provoke splitting (copying data from a young gen space to" \ 1368 "Provoke splitting (copying data from a young gen space to " \
1361 "multiple destination spaces)") \ 1369 "multiple destination spaces)") \
1362 \ 1370 \
1363 develop(uintx, ParallelOldGCSplitInterval, 3, \ 1371 develop(uintx, ParallelOldGCSplitInterval, 3, \
1364 "How often to provoke splitting a young gen space") \ 1372 "How often to provoke splitting a young gen space") \
1365 \ 1373 \
1366 product(uintx, ConcGCThreads, 0, \ 1374 product(uintx, ConcGCThreads, 0, \
1367 "Number of threads concurrent gc will use") \ 1375 "Number of threads concurrent gc will use") \
1368 \ 1376 \
1369 product(uintx, YoungPLABSize, 4096, \ 1377 product(uintx, YoungPLABSize, 4096, \
1370 "Size of young gen promotion labs (in HeapWords)") \ 1378 "Size of young gen promotion LAB's (in HeapWords)") \
1371 \ 1379 \
1372 product(uintx, OldPLABSize, 1024, \ 1380 product(uintx, OldPLABSize, 1024, \
1373 "Size of old gen promotion labs (in HeapWords)") \ 1381 "Size of old gen promotion LAB's (in HeapWords)") \
1374 \ 1382 \
1375 product(uintx, GCTaskTimeStampEntries, 200, \ 1383 product(uintx, GCTaskTimeStampEntries, 200, \
1376 "Number of time stamp entries per gc worker thread") \ 1384 "Number of time stamp entries per gc worker thread") \
1377 \ 1385 \
1378 product(bool, AlwaysTenure, false, \ 1386 product(bool, AlwaysTenure, false, \
1379 "Always tenure objects in eden. (ParallelGC only)") \ 1387 "Always tenure objects in eden (ParallelGC only)") \
1380 \ 1388 \
1381 product(bool, NeverTenure, false, \ 1389 product(bool, NeverTenure, false, \
1382 "Never tenure objects in eden, May tenure on overflow " \ 1390 "Never tenure objects in eden, may tenure on overflow " \
1383 "(ParallelGC only)") \ 1391 "(ParallelGC only)") \
1384 \ 1392 \
1385 product(bool, ScavengeBeforeFullGC, true, \ 1393 product(bool, ScavengeBeforeFullGC, true, \
1386 "Scavenge youngest generation before each full GC, " \ 1394 "Scavenge youngest generation before each full GC, " \
1387 "used with UseParallelGC") \ 1395 "used with UseParallelGC") \
1388 \ 1396 \
1389 develop(bool, ScavengeWithObjectsInToSpace, false, \ 1397 develop(bool, ScavengeWithObjectsInToSpace, false, \
1390 "Allow scavenges to occur when to_space contains objects.") \ 1398 "Allow scavenges to occur when to-space contains objects") \
1391 \ 1399 \
1392 product(bool, UseConcMarkSweepGC, false, \ 1400 product(bool, UseConcMarkSweepGC, false, \
1393 "Use Concurrent Mark-Sweep GC in the old generation") \ 1401 "Use Concurrent Mark-Sweep GC in the old generation") \
1394 \ 1402 \
1395 product(bool, ExplicitGCInvokesConcurrent, false, \ 1403 product(bool, ExplicitGCInvokesConcurrent, false, \
1396 "A System.gc() request invokes a concurrent collection;" \ 1404 "A System.gc() request invokes a concurrent collection; " \
1397 " (effective only when UseConcMarkSweepGC)") \ 1405 "(effective only when UseConcMarkSweepGC)") \
1398 \ 1406 \
1399 product(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false, \ 1407 product(bool, ExplicitGCInvokesConcurrentAndUnloadsClasses, false, \
1400 "A System.gc() request invokes a concurrent collection and " \ 1408 "A System.gc() request invokes a concurrent collection and " \
1401 "also unloads classes during such a concurrent gc cycle " \ 1409 "also unloads classes during such a concurrent gc cycle " \
1402 "(effective only when UseConcMarkSweepGC)") \ 1410 "(effective only when UseConcMarkSweepGC)") \
1403 \ 1411 \
1404 product(bool, GCLockerInvokesConcurrent, false, \ 1412 product(bool, GCLockerInvokesConcurrent, false, \
1405 "The exit of a JNI CS necessitating a scavenge also" \ 1413 "The exit of a JNI critical section necessitating a scavenge, " \
1406 " kicks off a bkgrd concurrent collection") \ 1414 "also kicks off a background concurrent collection") \
1407 \ 1415 \
1408 product(uintx, GCLockerEdenExpansionPercent, 5, \ 1416 product(uintx, GCLockerEdenExpansionPercent, 5, \
1409 "How much the GC can expand the eden by while the GC locker " \ 1417 "How much the GC can expand the eden by while the GC locker " \
1410 "is active (as a percentage)") \ 1418 "is active (as a percentage)") \
1411 \ 1419 \
1412 diagnostic(intx, GCLockerRetryAllocationCount, 2, \ 1420 diagnostic(intx, GCLockerRetryAllocationCount, 2, \
1413 "Number of times to retry allocations when" \ 1421 "Number of times to retry allocations when " \
1414 " blocked by the GC locker") \ 1422 "blocked by the GC locker") \
1415 \ 1423 \
1416 develop(bool, UseCMSAdaptiveFreeLists, true, \ 1424 develop(bool, UseCMSAdaptiveFreeLists, true, \
1417 "Use Adaptive Free Lists in the CMS generation") \ 1425 "Use adaptive free lists in the CMS generation") \
1418 \ 1426 \
1419 develop(bool, UseAsyncConcMarkSweepGC, true, \ 1427 develop(bool, UseAsyncConcMarkSweepGC, true, \
1420 "Use Asynchronous Concurrent Mark-Sweep GC in the old generation")\ 1428 "Use Asynchronous Concurrent Mark-Sweep GC in the old generation")\
1421 \ 1429 \
1422 develop(bool, RotateCMSCollectionTypes, false, \ 1430 develop(bool, RotateCMSCollectionTypes, false, \
1427 \ 1435 \
1428 product(bool, UseCMSCollectionPassing, true, \ 1436 product(bool, UseCMSCollectionPassing, true, \
1429 "Use passing of collection from background to foreground") \ 1437 "Use passing of collection from background to foreground") \
1430 \ 1438 \
1431 product(bool, UseParNewGC, false, \ 1439 product(bool, UseParNewGC, false, \
1432 "Use parallel threads in the new generation.") \ 1440 "Use parallel threads in the new generation") \
1433 \ 1441 \
1434 product(bool, ParallelGCVerbose, false, \ 1442 product(bool, ParallelGCVerbose, false, \
1435 "Verbose output for parallel GC.") \ 1443 "Verbose output for parallel gc") \
1436 \ 1444 \
1437 product(uintx, ParallelGCBufferWastePct, 10, \ 1445 product(uintx, ParallelGCBufferWastePct, 10, \
1438 "Wasted fraction of parallel allocation buffer.") \ 1446 "Wasted fraction of parallel allocation buffer") \
1439 \ 1447 \
1440 diagnostic(bool, ParallelGCRetainPLAB, false, \ 1448 diagnostic(bool, ParallelGCRetainPLAB, false, \
1441 "Retain parallel allocation buffers across scavenges; " \ 1449 "Retain parallel allocation buffers across scavenges; " \
1442 " -- disabled because this currently conflicts with " \ 1450 "it is disabled because this currently conflicts with " \
1443 " parallel card scanning under certain conditions ") \ 1451 "parallel card scanning under certain conditions.") \
1444 \ 1452 \
1445 product(uintx, TargetPLABWastePct, 10, \ 1453 product(uintx, TargetPLABWastePct, 10, \
1446 "Target wasted space in last buffer as percent of overall " \ 1454 "Target wasted space in last buffer as percent of overall " \
1447 "allocation") \ 1455 "allocation") \
1448 \ 1456 \
1449 product(uintx, PLABWeight, 75, \ 1457 product(uintx, PLABWeight, 75, \
1450 "Percentage (0-100) used to weight the current sample when" \ 1458 "Percentage (0-100) used to weigh the current sample when " \
1451 "computing exponentially decaying average for ResizePLAB.") \ 1459 "computing exponentially decaying average for ResizePLAB") \
1452 \ 1460 \
1453 product(bool, ResizePLAB, true, \ 1461 product(bool, ResizePLAB, true, \
1454 "Dynamically resize (survivor space) promotion labs") \ 1462 "Dynamically resize (survivor space) promotion LAB's") \
1455 \ 1463 \
1456 product(bool, PrintPLAB, false, \ 1464 product(bool, PrintPLAB, false, \
1457 "Print (survivor space) promotion labs sizing decisions") \ 1465 "Print (survivor space) promotion LAB's sizing decisions") \
1458 \ 1466 \
1459 product(intx, ParGCArrayScanChunk, 50, \ 1467 product(intx, ParGCArrayScanChunk, 50, \
1460 "Scan a subset and push remainder, if array is bigger than this") \ 1468 "Scan a subset of object array and push remainder, if array is " \
1469 "bigger than this") \
1461 \ 1470 \
1462 product(bool, ParGCUseLocalOverflow, false, \ 1471 product(bool, ParGCUseLocalOverflow, false, \
1463 "Instead of a global overflow list, use local overflow stacks") \ 1472 "Instead of a global overflow list, use local overflow stacks") \
1464 \ 1473 \
1465 product(bool, ParGCTrimOverflow, true, \ 1474 product(bool, ParGCTrimOverflow, true, \
1466 "Eagerly trim the local overflow lists (when ParGCUseLocalOverflow") \ 1475 "Eagerly trim the local overflow lists " \
1476 "(when ParGCUseLocalOverflow)") \
1467 \ 1477 \
1468 notproduct(bool, ParGCWorkQueueOverflowALot, false, \ 1478 notproduct(bool, ParGCWorkQueueOverflowALot, false, \
1469 "Whether we should simulate work queue overflow in ParNew") \ 1479 "Simulate work queue overflow in ParNew") \
1470 \ 1480 \
1471 notproduct(uintx, ParGCWorkQueueOverflowInterval, 1000, \ 1481 notproduct(uintx, ParGCWorkQueueOverflowInterval, 1000, \
1472 "An `interval' counter that determines how frequently " \ 1482 "An `interval' counter that determines how frequently " \
1473 "we simulate overflow; a smaller number increases frequency") \ 1483 "we simulate overflow; a smaller number increases frequency") \
1474 \ 1484 \
1482 diagnostic(intx, ParGCCardsPerStrideChunk, 256, \ 1492 diagnostic(intx, ParGCCardsPerStrideChunk, 256, \
1483 "The number of cards in each chunk of the parallel chunks used " \ 1493 "The number of cards in each chunk of the parallel chunks used " \
1484 "during card table scanning") \ 1494 "during card table scanning") \
1485 \ 1495 \
1486 product(uintx, CMSParPromoteBlocksToClaim, 16, \ 1496 product(uintx, CMSParPromoteBlocksToClaim, 16, \
1487 "Number of blocks to attempt to claim when refilling CMS LAB for "\ 1497 "Number of blocks to attempt to claim when refilling CMS LAB's " \
1488 "parallel GC.") \ 1498 "for parallel GC") \
1489 \ 1499 \
1490 product(uintx, OldPLABWeight, 50, \ 1500 product(uintx, OldPLABWeight, 50, \
1491 "Percentage (0-100) used to weight the current sample when" \ 1501 "Percentage (0-100) used to weight the current sample when " \
1492 "computing exponentially decaying average for resizing CMSParPromoteBlocksToClaim.") \ 1502 "computing exponentially decaying average for resizing " \
1503 "CMSParPromoteBlocksToClaim") \
1493 \ 1504 \
1494 product(bool, ResizeOldPLAB, true, \ 1505 product(bool, ResizeOldPLAB, true, \
1495 "Dynamically resize (old gen) promotion labs") \ 1506 "Dynamically resize (old gen) promotion LAB's") \
1496 \ 1507 \
1497 product(bool, PrintOldPLAB, false, \ 1508 product(bool, PrintOldPLAB, false, \
1498 "Print (old gen) promotion labs sizing decisions") \ 1509 "Print (old gen) promotion LAB's sizing decisions") \
1499 \ 1510 \
1500 product(uintx, CMSOldPLABMin, 16, \ 1511 product(uintx, CMSOldPLABMin, 16, \
1501 "Min size of CMS gen promotion lab caches per worker per blksize")\ 1512 "Minimum size of CMS gen promotion LAB caches per worker " \
1513 "per block size") \
1502 \ 1514 \
1503 product(uintx, CMSOldPLABMax, 1024, \ 1515 product(uintx, CMSOldPLABMax, 1024, \
1504 "Max size of CMS gen promotion lab caches per worker per blksize")\ 1516 "Maximum size of CMS gen promotion LAB caches per worker " \
1517 "per block size") \
1505 \ 1518 \
1506 product(uintx, CMSOldPLABNumRefills, 4, \ 1519 product(uintx, CMSOldPLABNumRefills, 4, \
1507 "Nominal number of refills of CMS gen promotion lab cache" \ 1520 "Nominal number of refills of CMS gen promotion LAB cache " \
1508 " per worker per block size") \ 1521 "per worker per block size") \
1509 \ 1522 \
1510 product(bool, CMSOldPLABResizeQuicker, false, \ 1523 product(bool, CMSOldPLABResizeQuicker, false, \
1511 "Whether to react on-the-fly during a scavenge to a sudden" \ 1524 "React on-the-fly during a scavenge to a sudden " \
1512 " change in block demand rate") \ 1525 "change in block demand rate") \
1513 \ 1526 \
1514 product(uintx, CMSOldPLABToleranceFactor, 4, \ 1527 product(uintx, CMSOldPLABToleranceFactor, 4, \
1515 "The tolerance of the phase-change detector for on-the-fly" \ 1528 "The tolerance of the phase-change detector for on-the-fly " \
1516 " PLAB resizing during a scavenge") \ 1529 "PLAB resizing during a scavenge") \
1517 \ 1530 \
1518 product(uintx, CMSOldPLABReactivityFactor, 2, \ 1531 product(uintx, CMSOldPLABReactivityFactor, 2, \
1519 "The gain in the feedback loop for on-the-fly PLAB resizing" \ 1532 "The gain in the feedback loop for on-the-fly PLAB resizing " \
1520 " during a scavenge") \ 1533 "during a scavenge") \
1521 \ 1534 \
1522 product(bool, AlwaysPreTouch, false, \ 1535 product(bool, AlwaysPreTouch, false, \
1523 "It forces all freshly committed pages to be pre-touched.") \ 1536 "Force all freshly committed pages to be pre-touched") \
1524 \ 1537 \
1525 product_pd(uintx, CMSYoungGenPerWorker, \ 1538 product_pd(uintx, CMSYoungGenPerWorker, \
1526 "The maximum size of young gen chosen by default per GC worker " \ 1539 "The maximum size of young gen chosen by default per GC worker " \
1527 "thread available") \ 1540 "thread available") \
1528 \ 1541 \
1529 product(bool, CMSIncrementalMode, false, \ 1542 product(bool, CMSIncrementalMode, false, \
1530 "Whether CMS GC should operate in \"incremental\" mode") \ 1543 "Whether CMS GC should operate in \"incremental\" mode") \
1531 \ 1544 \
1532 product(uintx, CMSIncrementalDutyCycle, 10, \ 1545 product(uintx, CMSIncrementalDutyCycle, 10, \
1533 "CMS incremental mode duty cycle (a percentage, 0-100). If" \ 1546 "Percentage (0-100) of CMS incremental mode duty cycle. If " \
1534 "CMSIncrementalPacing is enabled, then this is just the initial" \ 1547 "CMSIncrementalPacing is enabled, then this is just the initial " \
1535 "value") \ 1548 "value.") \
1536 \ 1549 \
1537 product(bool, CMSIncrementalPacing, true, \ 1550 product(bool, CMSIncrementalPacing, true, \
1538 "Whether the CMS incremental mode duty cycle should be " \ 1551 "Whether the CMS incremental mode duty cycle should be " \
1539 "automatically adjusted") \ 1552 "automatically adjusted") \
1540 \ 1553 \
1541 product(uintx, CMSIncrementalDutyCycleMin, 0, \ 1554 product(uintx, CMSIncrementalDutyCycleMin, 0, \
1542 "Lower bound on the duty cycle when CMSIncrementalPacing is " \ 1555 "Minimum percentage (0-100) of the CMS incremental duty cycle " \
1543 "enabled (a percentage, 0-100)") \ 1556 "used when CMSIncrementalPacing is enabled") \
1544 \ 1557 \
1545 product(uintx, CMSIncrementalSafetyFactor, 10, \ 1558 product(uintx, CMSIncrementalSafetyFactor, 10, \
1546 "Percentage (0-100) used to add conservatism when computing the " \ 1559 "Percentage (0-100) used to add conservatism when computing the " \
1547 "duty cycle") \ 1560 "duty cycle") \
1548 \ 1561 \
1549 product(uintx, CMSIncrementalOffset, 0, \ 1562 product(uintx, CMSIncrementalOffset, 0, \
1550 "Percentage (0-100) by which the CMS incremental mode duty cycle" \ 1563 "Percentage (0-100) by which the CMS incremental mode duty cycle "\
1551 " is shifted to the right within the period between young GCs") \ 1564 "is shifted to the right within the period between young GCs") \
1552 \ 1565 \
1553 product(uintx, CMSExpAvgFactor, 50, \ 1566 product(uintx, CMSExpAvgFactor, 50, \
1554 "Percentage (0-100) used to weight the current sample when" \ 1567 "Percentage (0-100) used to weigh the current sample when " \
1555 "computing exponential averages for CMS statistics.") \ 1568 "computing exponential averages for CMS statistics") \
1556 \ 1569 \
1557 product(uintx, CMS_FLSWeight, 75, \ 1570 product(uintx, CMS_FLSWeight, 75, \
1558 "Percentage (0-100) used to weight the current sample when" \ 1571 "Percentage (0-100) used to weigh the current sample when " \
1559 "computing exponentially decating averages for CMS FLS statistics.") \ 1572 "computing exponentially decaying averages for CMS FLS " \
1573 "statistics") \
1560 \ 1574 \
1561 product(uintx, CMS_FLSPadding, 1, \ 1575 product(uintx, CMS_FLSPadding, 1, \
1562 "The multiple of deviation from mean to use for buffering" \ 1576 "The multiple of deviation from mean to use for buffering " \
1563 "against volatility in free list demand.") \ 1577 "against volatility in free list demand") \
1564 \ 1578 \
1565 product(uintx, FLSCoalescePolicy, 2, \ 1579 product(uintx, FLSCoalescePolicy, 2, \
1566 "CMS: Aggression level for coalescing, increasing from 0 to 4") \ 1580 "CMS: aggressiveness level for coalescing, increasing " \
1581 "from 0 to 4") \
1567 \ 1582 \
1568 product(bool, FLSAlwaysCoalesceLarge, false, \ 1583 product(bool, FLSAlwaysCoalesceLarge, false, \
1569 "CMS: Larger free blocks are always available for coalescing") \ 1584 "CMS: larger free blocks are always available for coalescing") \
1570 \ 1585 \
1571 product(double, FLSLargestBlockCoalesceProximity, 0.99, \ 1586 product(double, FLSLargestBlockCoalesceProximity, 0.99, \
1572 "CMS: the smaller the percentage the greater the coalition force")\ 1587 "CMS: the smaller the percentage the greater the coalescing " \
1588 "force") \
1573 \ 1589 \
1574 product(double, CMSSmallCoalSurplusPercent, 1.05, \ 1590 product(double, CMSSmallCoalSurplusPercent, 1.05, \
1575 "CMS: the factor by which to inflate estimated demand of small" \ 1591 "CMS: the factor by which to inflate estimated demand of small " \
1576 " block sizes to prevent coalescing with an adjoining block") \ 1592 "block sizes to prevent coalescing with an adjoining block") \
1577 \ 1593 \
1578 product(double, CMSLargeCoalSurplusPercent, 0.95, \ 1594 product(double, CMSLargeCoalSurplusPercent, 0.95, \
1579 "CMS: the factor by which to inflate estimated demand of large" \ 1595 "CMS: the factor by which to inflate estimated demand of large " \
1580 " block sizes to prevent coalescing with an adjoining block") \ 1596 "block sizes to prevent coalescing with an adjoining block") \
1581 \ 1597 \
1582 product(double, CMSSmallSplitSurplusPercent, 1.10, \ 1598 product(double, CMSSmallSplitSurplusPercent, 1.10, \
1583 "CMS: the factor by which to inflate estimated demand of small" \ 1599 "CMS: the factor by which to inflate estimated demand of small " \
1584 " block sizes to prevent splitting to supply demand for smaller" \ 1600 "block sizes to prevent splitting to supply demand for smaller " \
1585 " blocks") \ 1601 "blocks") \
1586 \ 1602 \
1587 product(double, CMSLargeSplitSurplusPercent, 1.00, \ 1603 product(double, CMSLargeSplitSurplusPercent, 1.00, \
1588 "CMS: the factor by which to inflate estimated demand of large" \ 1604 "CMS: the factor by which to inflate estimated demand of large " \
1589 " block sizes to prevent splitting to supply demand for smaller" \ 1605 "block sizes to prevent splitting to supply demand for smaller " \
1590 " blocks") \ 1606 "blocks") \
1591 \ 1607 \
1592 product(bool, CMSExtrapolateSweep, false, \ 1608 product(bool, CMSExtrapolateSweep, false, \
1593 "CMS: cushion for block demand during sweep") \ 1609 "CMS: cushion for block demand during sweep") \
1594 \ 1610 \
1595 product(uintx, CMS_SweepWeight, 75, \ 1611 product(uintx, CMS_SweepWeight, 75, \
1597 "computing exponentially decaying average for inter-sweep " \ 1613 "computing exponentially decaying average for inter-sweep " \
1598 "duration") \ 1614 "duration") \
1599 \ 1615 \
1600 product(uintx, CMS_SweepPadding, 1, \ 1616 product(uintx, CMS_SweepPadding, 1, \
1601 "The multiple of deviation from mean to use for buffering " \ 1617 "The multiple of deviation from mean to use for buffering " \
1602 "against volatility in inter-sweep duration.") \ 1618 "against volatility in inter-sweep duration") \
1603 \ 1619 \
1604 product(uintx, CMS_SweepTimerThresholdMillis, 10, \ 1620 product(uintx, CMS_SweepTimerThresholdMillis, 10, \
1605 "Skip block flux-rate sampling for an epoch unless inter-sweep " \ 1621 "Skip block flux-rate sampling for an epoch unless inter-sweep " \
1606 "duration exceeds this threhold in milliseconds") \ 1622 "duration exceeds this threshold in milliseconds") \
1607 \ 1623 \
1608 develop(bool, CMSTraceIncrementalMode, false, \ 1624 develop(bool, CMSTraceIncrementalMode, false, \
1609 "Trace CMS incremental mode") \ 1625 "Trace CMS incremental mode") \
1610 \ 1626 \
1611 develop(bool, CMSTraceIncrementalPacing, false, \ 1627 develop(bool, CMSTraceIncrementalPacing, false, \
1616 \ 1632 \
1617 product(bool, CMSClassUnloadingEnabled, true, \ 1633 product(bool, CMSClassUnloadingEnabled, true, \
1618 "Whether class unloading enabled when using CMS GC") \ 1634 "Whether class unloading enabled when using CMS GC") \
1619 \ 1635 \
1620 product(uintx, CMSClassUnloadingMaxInterval, 0, \ 1636 product(uintx, CMSClassUnloadingMaxInterval, 0, \
1621 "When CMS class unloading is enabled, the maximum CMS cycle count"\ 1637 "When CMS class unloading is enabled, the maximum CMS cycle " \
1622 " for which classes may not be unloaded") \ 1638 "count for which classes may not be unloaded") \
1623 \ 1639 \
1624 product(bool, CMSCompactWhenClearAllSoftRefs, true, \ 1640 product(bool, CMSCompactWhenClearAllSoftRefs, true, \
1625 "Compact when asked to collect CMS gen with clear_all_soft_refs") \ 1641 "Compact when asked to collect CMS gen with " \
1642 "clear_all_soft_refs()") \
1626 \ 1643 \
1627 product(bool, UseCMSCompactAtFullCollection, true, \ 1644 product(bool, UseCMSCompactAtFullCollection, true, \
1628 "Use mark sweep compact at full collections") \ 1645 "Use Mark-Sweep-Compact algorithm at full collections") \
1629 \ 1646 \
1630 product(uintx, CMSFullGCsBeforeCompaction, 0, \ 1647 product(uintx, CMSFullGCsBeforeCompaction, 0, \
1631 "Number of CMS full collection done before compaction if > 0") \ 1648 "Number of CMS full collection done before compaction if > 0") \
1632 \ 1649 \
1633 develop(intx, CMSDictionaryChoice, 0, \ 1650 develop(intx, CMSDictionaryChoice, 0, \
1645 \ 1662 \
1646 product(bool, CMSLoopWarn, false, \ 1663 product(bool, CMSLoopWarn, false, \
1647 "Warn in case of excessive CMS looping") \ 1664 "Warn in case of excessive CMS looping") \
1648 \ 1665 \
1649 develop(bool, CMSOverflowEarlyRestoration, false, \ 1666 develop(bool, CMSOverflowEarlyRestoration, false, \
1650 "Whether preserved marks should be restored early") \ 1667 "Restore preserved marks early") \
1651 \ 1668 \
1652 product(uintx, MarkStackSize, NOT_LP64(32*K) LP64_ONLY(4*M), \ 1669 product(uintx, MarkStackSize, NOT_LP64(32*K) LP64_ONLY(4*M), \
1653 "Size of marking stack") \ 1670 "Size of marking stack") \
1654 \ 1671 \
1655 product(uintx, MarkStackSizeMax, NOT_LP64(4*M) LP64_ONLY(512*M), \ 1672 product(uintx, MarkStackSizeMax, NOT_LP64(4*M) LP64_ONLY(512*M), \
1656 "Max size of marking stack") \ 1673 "Maximum size of marking stack") \
1657 \ 1674 \
1658 notproduct(bool, CMSMarkStackOverflowALot, false, \ 1675 notproduct(bool, CMSMarkStackOverflowALot, false, \
1659 "Whether we should simulate frequent marking stack / work queue" \ 1676 "Simulate frequent marking stack / work queue overflow") \
1660 " overflow") \
1661 \ 1677 \
1662 notproduct(uintx, CMSMarkStackOverflowInterval, 1000, \ 1678 notproduct(uintx, CMSMarkStackOverflowInterval, 1000, \
1663 "An `interval' counter that determines how frequently" \ 1679 "An \"interval\" counter that determines how frequently " \
1664 " we simulate overflow; a smaller number increases frequency") \ 1680 "to simulate overflow; a smaller number increases frequency") \
1665 \ 1681 \
1666 product(uintx, CMSMaxAbortablePrecleanLoops, 0, \ 1682 product(uintx, CMSMaxAbortablePrecleanLoops, 0, \
1667 "(Temporary, subject to experimentation)" \ 1683 "(Temporary, subject to experimentation) " \
1668 "Maximum number of abortable preclean iterations, if > 0") \ 1684 "Maximum number of abortable preclean iterations, if > 0") \
1669 \ 1685 \
1670 product(intx, CMSMaxAbortablePrecleanTime, 5000, \ 1686 product(intx, CMSMaxAbortablePrecleanTime, 5000, \
1671 "(Temporary, subject to experimentation)" \ 1687 "(Temporary, subject to experimentation) " \
1672 "Maximum time in abortable preclean in ms") \ 1688 "Maximum time in abortable preclean (in milliseconds)") \
1673 \ 1689 \
1674 product(uintx, CMSAbortablePrecleanMinWorkPerIteration, 100, \ 1690 product(uintx, CMSAbortablePrecleanMinWorkPerIteration, 100, \
1675 "(Temporary, subject to experimentation)" \ 1691 "(Temporary, subject to experimentation) " \
1676 "Nominal minimum work per abortable preclean iteration") \ 1692 "Nominal minimum work per abortable preclean iteration") \
1677 \ 1693 \
1678 manageable(intx, CMSAbortablePrecleanWaitMillis, 100, \ 1694 manageable(intx, CMSAbortablePrecleanWaitMillis, 100, \
1679 "(Temporary, subject to experimentation)" \ 1695 "(Temporary, subject to experimentation) " \
1680 " Time that we sleep between iterations when not given" \ 1696 "Time that we sleep between iterations when not given " \
1681 " enough work per iteration") \ 1697 "enough work per iteration") \
1682 \ 1698 \
1683 product(uintx, CMSRescanMultiple, 32, \ 1699 product(uintx, CMSRescanMultiple, 32, \
1684 "Size (in cards) of CMS parallel rescan task") \ 1700 "Size (in cards) of CMS parallel rescan task") \
1685 \ 1701 \
1686 product(uintx, CMSConcMarkMultiple, 32, \ 1702 product(uintx, CMSConcMarkMultiple, 32, \
1694 \ 1710 \
1695 product(bool, CMSParallelRemarkEnabled, true, \ 1711 product(bool, CMSParallelRemarkEnabled, true, \
1696 "Whether parallel remark enabled (only if ParNewGC)") \ 1712 "Whether parallel remark enabled (only if ParNewGC)") \
1697 \ 1713 \
1698 product(bool, CMSParallelSurvivorRemarkEnabled, true, \ 1714 product(bool, CMSParallelSurvivorRemarkEnabled, true, \
1699 "Whether parallel remark of survivor space" \ 1715 "Whether parallel remark of survivor space " \
1700 " enabled (effective only if CMSParallelRemarkEnabled)") \ 1716 "enabled (effective only if CMSParallelRemarkEnabled)") \
1701 \ 1717 \
1702 product(bool, CMSPLABRecordAlways, true, \ 1718 product(bool, CMSPLABRecordAlways, true, \
1703 "Whether to always record survivor space PLAB bdries" \ 1719 "Always record survivor space PLAB boundaries (effective only " \
1704 " (effective only if CMSParallelSurvivorRemarkEnabled)") \ 1720 "if CMSParallelSurvivorRemarkEnabled)") \
1705 \ 1721 \
1706 product(bool, CMSEdenChunksRecordAlways, true, \ 1722 product(bool, CMSEdenChunksRecordAlways, true, \
1707 "Whether to always record eden chunks used for " \ 1723 "Always record eden chunks used for the parallel initial mark " \
1708 "the parallel initial mark or remark of eden" ) \ 1724 "or remark of eden") \
1709 \ 1725 \
1710 product(bool, CMSPrintEdenSurvivorChunks, false, \ 1726 product(bool, CMSPrintEdenSurvivorChunks, false, \
1711 "Print the eden and the survivor chunks used for the parallel " \ 1727 "Print the eden and the survivor chunks used for the parallel " \
1712 "initial mark or remark of the eden/survivor spaces") \ 1728 "initial mark or remark of the eden/survivor spaces") \
1713 \ 1729 \
1714 product(bool, CMSConcurrentMTEnabled, true, \ 1730 product(bool, CMSConcurrentMTEnabled, true, \
1715 "Whether multi-threaded concurrent work enabled (if ParNewGC)") \ 1731 "Whether multi-threaded concurrent work enabled " \
1732 "(effective only if ParNewGC)") \
1716 \ 1733 \
1717 product(bool, CMSPrecleaningEnabled, true, \ 1734 product(bool, CMSPrecleaningEnabled, true, \
1718 "Whether concurrent precleaning enabled") \ 1735 "Whether concurrent precleaning enabled") \
1719 \ 1736 \
1720 product(uintx, CMSPrecleanIter, 3, \ 1737 product(uintx, CMSPrecleanIter, 3, \
1721 "Maximum number of precleaning iteration passes") \ 1738 "Maximum number of precleaning iteration passes") \
1722 \ 1739 \
1723 product(uintx, CMSPrecleanNumerator, 2, \ 1740 product(uintx, CMSPrecleanNumerator, 2, \
1724 "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence" \ 1741 "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence " \
1725 " ratio") \ 1742 "ratio") \
1726 \ 1743 \
1727 product(uintx, CMSPrecleanDenominator, 3, \ 1744 product(uintx, CMSPrecleanDenominator, 3, \
1728 "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence" \ 1745 "CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence " \
1729 " ratio") \ 1746 "ratio") \
1730 \ 1747 \
1731 product(bool, CMSPrecleanRefLists1, true, \ 1748 product(bool, CMSPrecleanRefLists1, true, \
1732 "Preclean ref lists during (initial) preclean phase") \ 1749 "Preclean ref lists during (initial) preclean phase") \
1733 \ 1750 \
1734 product(bool, CMSPrecleanRefLists2, false, \ 1751 product(bool, CMSPrecleanRefLists2, false, \
1739 \ 1756 \
1740 product(bool, CMSPrecleanSurvivors2, true, \ 1757 product(bool, CMSPrecleanSurvivors2, true, \
1741 "Preclean survivors during abortable preclean phase") \ 1758 "Preclean survivors during abortable preclean phase") \
1742 \ 1759 \
1743 product(uintx, CMSPrecleanThreshold, 1000, \ 1760 product(uintx, CMSPrecleanThreshold, 1000, \
1744 "Don't re-iterate if #dirty cards less than this") \ 1761 "Do not iterate again if number of dirty cards is less than this")\
1745 \ 1762 \
1746 product(bool, CMSCleanOnEnter, true, \ 1763 product(bool, CMSCleanOnEnter, true, \
1747 "Clean-on-enter optimization for reducing number of dirty cards") \ 1764 "Clean-on-enter optimization for reducing number of dirty cards") \
1748 \ 1765 \
1749 product(uintx, CMSRemarkVerifyVariant, 1, \ 1766 product(uintx, CMSRemarkVerifyVariant, 1, \
1750 "Choose variant (1,2) of verification following remark") \ 1767 "Choose variant (1,2) of verification following remark") \
1751 \ 1768 \
1752 product(uintx, CMSScheduleRemarkEdenSizeThreshold, 2*M, \ 1769 product(uintx, CMSScheduleRemarkEdenSizeThreshold, 2*M, \
1753 "If Eden used is below this value, don't try to schedule remark") \ 1770 "If Eden size is below this, do not try to schedule remark") \
1754 \ 1771 \
1755 product(uintx, CMSScheduleRemarkEdenPenetration, 50, \ 1772 product(uintx, CMSScheduleRemarkEdenPenetration, 50, \
1756 "The Eden occupancy % at which to try and schedule remark pause") \ 1773 "The Eden occupancy percentage (0-100) at which " \
1774 "to try and schedule remark pause") \
1757 \ 1775 \
1758 product(uintx, CMSScheduleRemarkSamplingRatio, 5, \ 1776 product(uintx, CMSScheduleRemarkSamplingRatio, 5, \
1759 "Start sampling Eden top at least before yg occupancy reaches" \ 1777 "Start sampling eden top at least before young gen " \
1760 " 1/<ratio> of the size at which we plan to schedule remark") \ 1778 "occupancy reaches 1/<ratio> of the size at which " \
1779 "we plan to schedule remark") \
1761 \ 1780 \
1762 product(uintx, CMSSamplingGrain, 16*K, \ 1781 product(uintx, CMSSamplingGrain, 16*K, \
1763 "The minimum distance between eden samples for CMS (see above)") \ 1782 "The minimum distance between eden samples for CMS (see above)") \
1764 \ 1783 \
1765 product(bool, CMSScavengeBeforeRemark, false, \ 1784 product(bool, CMSScavengeBeforeRemark, false, \
1777 develop(uintx, CMSCheckInterval, 1000, \ 1796 develop(uintx, CMSCheckInterval, 1000, \
1778 "Interval in milliseconds that CMS thread checks if it " \ 1797 "Interval in milliseconds that CMS thread checks if it " \
1779 "should start a collection cycle") \ 1798 "should start a collection cycle") \
1780 \ 1799 \
1781 product(bool, CMSYield, true, \ 1800 product(bool, CMSYield, true, \
1782 "Yield between steps of concurrent mark & sweep") \ 1801 "Yield between steps of CMS") \
1783 \ 1802 \
1784 product(uintx, CMSBitMapYieldQuantum, 10*M, \ 1803 product(uintx, CMSBitMapYieldQuantum, 10*M, \
1785 "Bitmap operations should process at most this many bits" \ 1804 "Bitmap operations should process at most this many bits " \
1786 "between yields") \ 1805 "between yields") \
1787 \ 1806 \
1788 product(bool, CMSDumpAtPromotionFailure, false, \ 1807 product(bool, CMSDumpAtPromotionFailure, false, \
1789 "Dump useful information about the state of the CMS old " \ 1808 "Dump useful information about the state of the CMS old " \
1790 " generation upon a promotion failure.") \ 1809 "generation upon a promotion failure") \
1791 \ 1810 \
1792 product(bool, CMSPrintChunksInDump, false, \ 1811 product(bool, CMSPrintChunksInDump, false, \
1793 "In a dump enabled by CMSDumpAtPromotionFailure, include " \ 1812 "In a dump enabled by CMSDumpAtPromotionFailure, include " \
1794 " more detailed information about the free chunks.") \ 1813 "more detailed information about the free chunks") \
1795 \ 1814 \
1796 product(bool, CMSPrintObjectsInDump, false, \ 1815 product(bool, CMSPrintObjectsInDump, false, \
1797 "In a dump enabled by CMSDumpAtPromotionFailure, include " \ 1816 "In a dump enabled by CMSDumpAtPromotionFailure, include " \
1798 " more detailed information about the allocated objects.") \ 1817 "more detailed information about the allocated objects") \
1799 \ 1818 \
1800 diagnostic(bool, FLSVerifyAllHeapReferences, false, \ 1819 diagnostic(bool, FLSVerifyAllHeapReferences, false, \
1801 "Verify that all refs across the FLS boundary " \ 1820 "Verify that all references across the FLS boundary " \
1802 " are to valid objects") \ 1821 "are to valid objects") \
1803 \ 1822 \
1804 diagnostic(bool, FLSVerifyLists, false, \ 1823 diagnostic(bool, FLSVerifyLists, false, \
1805 "Do lots of (expensive) FreeListSpace verification") \ 1824 "Do lots of (expensive) FreeListSpace verification") \
1806 \ 1825 \
1807 diagnostic(bool, FLSVerifyIndexTable, false, \ 1826 diagnostic(bool, FLSVerifyIndexTable, false, \
1809 \ 1828 \
1810 develop(bool, FLSVerifyDictionary, false, \ 1829 develop(bool, FLSVerifyDictionary, false, \
1811 "Do lots of (expensive) FLS dictionary verification") \ 1830 "Do lots of (expensive) FLS dictionary verification") \
1812 \ 1831 \
1813 develop(bool, VerifyBlockOffsetArray, false, \ 1832 develop(bool, VerifyBlockOffsetArray, false, \
1814 "Do (expensive!) block offset array verification") \ 1833 "Do (expensive) block offset array verification") \
1815 \ 1834 \
1816 diagnostic(bool, BlockOffsetArrayUseUnallocatedBlock, false, \ 1835 diagnostic(bool, BlockOffsetArrayUseUnallocatedBlock, false, \
1817 "Maintain _unallocated_block in BlockOffsetArray" \ 1836 "Maintain _unallocated_block in BlockOffsetArray " \
1818 " (currently applicable only to CMS collector)") \ 1837 "(currently applicable only to CMS collector)") \
1819 \ 1838 \
1820 develop(bool, TraceCMSState, false, \ 1839 develop(bool, TraceCMSState, false, \
1821 "Trace the state of the CMS collection") \ 1840 "Trace the state of the CMS collection") \
1822 \ 1841 \
1823 product(intx, RefDiscoveryPolicy, 0, \ 1842 product(intx, RefDiscoveryPolicy, 0, \
1824 "Whether reference-based(0) or referent-based(1)") \ 1843 "Select type of reference discovery policy: " \
1844 "reference-based(0) or referent-based(1)") \
1825 \ 1845 \
1826 product(bool, ParallelRefProcEnabled, false, \ 1846 product(bool, ParallelRefProcEnabled, false, \
1827 "Enable parallel reference processing whenever possible") \ 1847 "Enable parallel reference processing whenever possible") \
1828 \ 1848 \
1829 product(bool, ParallelRefProcBalancingEnabled, true, \ 1849 product(bool, ParallelRefProcBalancingEnabled, true, \
1847 "concurrent GC cycle based on the occupancy of the entire heap, " \ 1867 "concurrent GC cycle based on the occupancy of the entire heap, " \
1848 "not just one of the generations (e.g., G1). A value of 0 " \ 1868 "not just one of the generations (e.g., G1). A value of 0 " \
1849 "denotes 'do constant GC cycles'.") \ 1869 "denotes 'do constant GC cycles'.") \
1850 \ 1870 \
1851 product(bool, UseCMSInitiatingOccupancyOnly, false, \ 1871 product(bool, UseCMSInitiatingOccupancyOnly, false, \
1852 "Only use occupancy as a crierion for starting a CMS collection") \ 1872 "Only use occupancy as a criterion for starting a CMS collection")\
1853 \ 1873 \
1854 product(uintx, CMSIsTooFullPercentage, 98, \ 1874 product(uintx, CMSIsTooFullPercentage, 98, \
1855 "An absolute ceiling above which CMS will always consider the " \ 1875 "An absolute ceiling above which CMS will always consider the " \
1856 "unloading of classes when class unloading is enabled") \ 1876 "unloading of classes when class unloading is enabled") \
1857 \ 1877 \
1859 "Check if the coalesced range is already in the " \ 1879 "Check if the coalesced range is already in the " \
1860 "free lists as claimed") \ 1880 "free lists as claimed") \
1861 \ 1881 \
1862 notproduct(bool, CMSVerifyReturnedBytes, false, \ 1882 notproduct(bool, CMSVerifyReturnedBytes, false, \
1863 "Check that all the garbage collected was returned to the " \ 1883 "Check that all the garbage collected was returned to the " \
1864 "free lists.") \ 1884 "free lists") \
1865 \ 1885 \
1866 notproduct(bool, ScavengeALot, false, \ 1886 notproduct(bool, ScavengeALot, false, \
1867 "Force scavenge at every Nth exit from the runtime system " \ 1887 "Force scavenge at every Nth exit from the runtime system " \
1868 "(N=ScavengeALotInterval)") \ 1888 "(N=ScavengeALotInterval)") \
1869 \ 1889 \
1874 notproduct(bool, GCALotAtAllSafepoints, false, \ 1894 notproduct(bool, GCALotAtAllSafepoints, false, \
1875 "Enforce ScavengeALot/GCALot at all potential safepoints") \ 1895 "Enforce ScavengeALot/GCALot at all potential safepoints") \
1876 \ 1896 \
1877 product(bool, PrintPromotionFailure, false, \ 1897 product(bool, PrintPromotionFailure, false, \
1878 "Print additional diagnostic information following " \ 1898 "Print additional diagnostic information following " \
1879 " promotion failure") \ 1899 "promotion failure") \
1880 \ 1900 \
1881 notproduct(bool, PromotionFailureALot, false, \ 1901 notproduct(bool, PromotionFailureALot, false, \
1882 "Use promotion failure handling on every youngest generation " \ 1902 "Use promotion failure handling on every youngest generation " \
1883 "collection") \ 1903 "collection") \
1884 \ 1904 \
1885 develop(uintx, PromotionFailureALotCount, 1000, \ 1905 develop(uintx, PromotionFailureALotCount, 1000, \
1886 "Number of promotion failures occurring at ParGCAllocBuffer" \ 1906 "Number of promotion failures occurring at ParGCAllocBuffer " \
1887 "refill attempts (ParNew) or promotion attempts " \ 1907 "refill attempts (ParNew) or promotion attempts " \
1888 "(other young collectors) ") \ 1908 "(other young collectors)") \
1889 \ 1909 \
1890 develop(uintx, PromotionFailureALotInterval, 5, \ 1910 develop(uintx, PromotionFailureALotInterval, 5, \
1891 "Total collections between promotion failures alot") \ 1911 "Total collections between promotion failures alot") \
1892 \ 1912 \
1893 experimental(uintx, WorkStealingSleepMillis, 1, \ 1913 experimental(uintx, WorkStealingSleepMillis, 1, \
1902 \ 1922 \
1903 experimental(uintx, WorkStealingSpinToYieldRatio, 10, \ 1923 experimental(uintx, WorkStealingSpinToYieldRatio, 10, \
1904 "Ratio of hard spins to calls to yield") \ 1924 "Ratio of hard spins to calls to yield") \
1905 \ 1925 \
1906 develop(uintx, ObjArrayMarkingStride, 512, \ 1926 develop(uintx, ObjArrayMarkingStride, 512, \
1907 "Number of ObjArray elements to push onto the marking stack" \ 1927 "Number of object array elements to push onto the marking stack " \
1908 "before pushing a continuation entry") \ 1928 "before pushing a continuation entry") \
1909 \ 1929 \
1910 develop(bool, MetadataAllocationFailALot, false, \ 1930 develop(bool, MetadataAllocationFailALot, false, \
1911 "Fail metadata allocations at intervals controlled by " \ 1931 "Fail metadata allocations at intervals controlled by " \
1912 "MetadataAllocationFailALotInterval") \ 1932 "MetadataAllocationFailALotInterval") \
1913 \ 1933 \
1914 develop(uintx, MetadataAllocationFailALotInterval, 1000, \ 1934 develop(uintx, MetadataAllocationFailALotInterval, 1000, \
1915 "metadata allocation failure alot interval") \ 1935 "Metadata allocation failure a lot interval") \
1916 \ 1936 \
1917 develop(bool, MetaDataDeallocateALot, false, \ 1937 develop(bool, MetaDataDeallocateALot, false, \
1918 "Deallocation bunches of metadata at intervals controlled by " \ 1938 "Deallocation bunches of metadata at intervals controlled by " \
1919 "MetaDataAllocateALotInterval") \ 1939 "MetaDataAllocateALotInterval") \
1920 \ 1940 \
1929 \ 1949 \
1930 develop(bool, TraceMetavirtualspaceAllocation, false, \ 1950 develop(bool, TraceMetavirtualspaceAllocation, false, \
1931 "Trace virtual space metadata allocations") \ 1951 "Trace virtual space metadata allocations") \
1932 \ 1952 \
1933 notproduct(bool, ExecuteInternalVMTests, false, \ 1953 notproduct(bool, ExecuteInternalVMTests, false, \
1934 "Enable execution of internal VM tests.") \ 1954 "Enable execution of internal VM tests") \
1935 \ 1955 \
1936 notproduct(bool, VerboseInternalVMTests, false, \ 1956 notproduct(bool, VerboseInternalVMTests, false, \
1937 "Turn on logging for internal VM tests.") \ 1957 "Turn on logging for internal VM tests.") \
1938 \ 1958 \
1939 product_pd(bool, UseTLAB, "Use thread-local object allocation") \ 1959 product_pd(bool, UseTLAB, "Use thread-local object allocation") \
1940 \ 1960 \
1941 product_pd(bool, ResizeTLAB, \ 1961 product_pd(bool, ResizeTLAB, \
1942 "Dynamically resize tlab size for threads") \ 1962 "Dynamically resize TLAB size for threads") \
1943 \ 1963 \
1944 product(bool, ZeroTLAB, false, \ 1964 product(bool, ZeroTLAB, false, \
1945 "Zero out the newly created TLAB") \ 1965 "Zero out the newly created TLAB") \
1946 \ 1966 \
1947 product(bool, FastTLABRefill, true, \ 1967 product(bool, FastTLABRefill, true, \
1949 \ 1969 \
1950 product(bool, PrintTLAB, false, \ 1970 product(bool, PrintTLAB, false, \
1951 "Print various TLAB related information") \ 1971 "Print various TLAB related information") \
1952 \ 1972 \
1953 product(bool, TLABStats, true, \ 1973 product(bool, TLABStats, true, \
1954 "Print various TLAB related information") \ 1974 "Provide more detailed and expensive TLAB statistics " \
1975 "(with PrintTLAB)") \
1955 \ 1976 \
1956 EMBEDDED_ONLY(product(bool, LowMemoryProtection, true, \ 1977 EMBEDDED_ONLY(product(bool, LowMemoryProtection, true, \
1957 "Enable LowMemoryProtection")) \ 1978 "Enable LowMemoryProtection")) \
1958 \ 1979 \
1959 product_pd(bool, NeverActAsServerClassMachine, \ 1980 product_pd(bool, NeverActAsServerClassMachine, \
1983 \ 2004 \
1984 product(uintx, InitialRAMFraction, 64, \ 2005 product(uintx, InitialRAMFraction, 64, \
1985 "Fraction (1/n) of real memory used for initial heap size") \ 2006 "Fraction (1/n) of real memory used for initial heap size") \
1986 \ 2007 \
1987 develop(uintx, MaxVirtMemFraction, 2, \ 2008 develop(uintx, MaxVirtMemFraction, 2, \
1988 "Maximum fraction (1/n) of virtual memory used for ergonomically" \ 2009 "Maximum fraction (1/n) of virtual memory used for ergonomically "\
1989 "determining maximum heap size") \ 2010 "determining maximum heap size") \
1990 \ 2011 \
1991 product(bool, UseAutoGCSelectPolicy, false, \ 2012 product(bool, UseAutoGCSelectPolicy, false, \
1992 "Use automatic collection selection policy") \ 2013 "Use automatic collection selection policy") \
1993 \ 2014 \
1994 product(uintx, AutoGCSelectPauseMillis, 5000, \ 2015 product(uintx, AutoGCSelectPauseMillis, 5000, \
1995 "Automatic GC selection pause threshhold in ms") \ 2016 "Automatic GC selection pause threshold in milliseconds") \
1996 \ 2017 \
1997 product(bool, UseAdaptiveSizePolicy, true, \ 2018 product(bool, UseAdaptiveSizePolicy, true, \
1998 "Use adaptive generation sizing policies") \ 2019 "Use adaptive generation sizing policies") \
1999 \ 2020 \
2000 product(bool, UsePSAdaptiveSurvivorSizePolicy, true, \ 2021 product(bool, UsePSAdaptiveSurvivorSizePolicy, true, \
2005 \ 2026 \
2006 product(bool, UseAdaptiveGenerationSizePolicyAtMajorCollection, true, \ 2027 product(bool, UseAdaptiveGenerationSizePolicyAtMajorCollection, true, \
2007 "Use adaptive young-old sizing policies at major collections") \ 2028 "Use adaptive young-old sizing policies at major collections") \
2008 \ 2029 \
2009 product(bool, UseAdaptiveSizePolicyWithSystemGC, false, \ 2030 product(bool, UseAdaptiveSizePolicyWithSystemGC, false, \
2010 "Use statistics from System.GC for adaptive size policy") \ 2031 "Include statistics from System.gc() for adaptive size policy") \
2011 \ 2032 \
2012 product(bool, UseAdaptiveGCBoundary, false, \ 2033 product(bool, UseAdaptiveGCBoundary, false, \
2013 "Allow young-old boundary to move") \ 2034 "Allow young-old boundary to move") \
2014 \ 2035 \
2015 develop(bool, TraceAdaptiveGCBoundary, false, \ 2036 develop(bool, TraceAdaptiveGCBoundary, false, \
2017 \ 2038 \
2018 develop(intx, PSAdaptiveSizePolicyResizeVirtualSpaceAlot, -1, \ 2039 develop(intx, PSAdaptiveSizePolicyResizeVirtualSpaceAlot, -1, \
2019 "Resize the virtual spaces of the young or old generations") \ 2040 "Resize the virtual spaces of the young or old generations") \
2020 \ 2041 \
2021 product(uintx, AdaptiveSizeThroughPutPolicy, 0, \ 2042 product(uintx, AdaptiveSizeThroughPutPolicy, 0, \
2022 "Policy for changeing generation size for throughput goals") \ 2043 "Policy for changing generation size for throughput goals") \
2023 \ 2044 \
2024 product(uintx, AdaptiveSizePausePolicy, 0, \ 2045 product(uintx, AdaptiveSizePausePolicy, 0, \
2025 "Policy for changing generation size for pause goals") \ 2046 "Policy for changing generation size for pause goals") \
2026 \ 2047 \
2027 develop(bool, PSAdjustTenuredGenForMinorPause, false, \ 2048 develop(bool, PSAdjustTenuredGenForMinorPause, false, \
2028 "Adjust tenured generation to achive a minor pause goal") \ 2049 "Adjust tenured generation to achieve a minor pause goal") \
2029 \ 2050 \
2030 develop(bool, PSAdjustYoungGenForMajorPause, false, \ 2051 develop(bool, PSAdjustYoungGenForMajorPause, false, \
2031 "Adjust young generation to achive a major pause goal") \ 2052 "Adjust young generation to achieve a major pause goal") \
2032 \ 2053 \
2033 product(uintx, AdaptiveSizePolicyInitializingSteps, 20, \ 2054 product(uintx, AdaptiveSizePolicyInitializingSteps, 20, \
2034 "Number of steps where heuristics is used before data is used") \ 2055 "Number of steps where heuristics is used before data is used") \
2035 \ 2056 \
2036 develop(uintx, AdaptiveSizePolicyReadyThreshold, 5, \ 2057 develop(uintx, AdaptiveSizePolicyReadyThreshold, 5, \
2081 \ 2102 \
2082 product(uintx, TenuredGenerationSizeSupplementDecay, 2, \ 2103 product(uintx, TenuredGenerationSizeSupplementDecay, 2, \
2083 "Decay factor to TenuredGenerationSizeIncrement") \ 2104 "Decay factor to TenuredGenerationSizeIncrement") \
2084 \ 2105 \
2085 product(uintx, MaxGCPauseMillis, max_uintx, \ 2106 product(uintx, MaxGCPauseMillis, max_uintx, \
2086 "Adaptive size policy maximum GC pause time goal in msec, " \ 2107 "Adaptive size policy maximum GC pause time goal in millisecond, "\
2087 "or (G1 Only) the max. GC time per MMU time slice") \ 2108 "or (G1 Only) the maximum GC time per MMU time slice") \
2088 \ 2109 \
2089 product(uintx, GCPauseIntervalMillis, 0, \ 2110 product(uintx, GCPauseIntervalMillis, 0, \
2090 "Time slice for MMU specification") \ 2111 "Time slice for MMU specification") \
2091 \ 2112 \
2092 product(uintx, MaxGCMinorPauseMillis, max_uintx, \ 2113 product(uintx, MaxGCMinorPauseMillis, max_uintx, \
2093 "Adaptive size policy maximum GC minor pause time goal in msec") \ 2114 "Adaptive size policy maximum GC minor pause time goal " \
2115 "in millisecond") \
2094 \ 2116 \
2095 product(uintx, GCTimeRatio, 99, \ 2117 product(uintx, GCTimeRatio, 99, \
2096 "Adaptive size policy application time to GC time ratio") \ 2118 "Adaptive size policy application time to GC time ratio") \
2097 \ 2119 \
2098 product(uintx, AdaptiveSizeDecrementScaleFactor, 4, \ 2120 product(uintx, AdaptiveSizeDecrementScaleFactor, 4, \
2116 product(bool, UseGCOverheadLimit, true, \ 2138 product(bool, UseGCOverheadLimit, true, \
2117 "Use policy to limit of proportion of time spent in GC " \ 2139 "Use policy to limit of proportion of time spent in GC " \
2118 "before an OutOfMemory error is thrown") \ 2140 "before an OutOfMemory error is thrown") \
2119 \ 2141 \
2120 product(uintx, GCTimeLimit, 98, \ 2142 product(uintx, GCTimeLimit, 98, \
2121 "Limit of proportion of time spent in GC before an OutOfMemory" \ 2143 "Limit of the proportion of time spent in GC before " \
2122 "error is thrown (used with GCHeapFreeLimit)") \ 2144 "an OutOfMemoryError is thrown (used with GCHeapFreeLimit)") \
2123 \ 2145 \
2124 product(uintx, GCHeapFreeLimit, 2, \ 2146 product(uintx, GCHeapFreeLimit, 2, \
2125 "Minimum percentage of free space after a full GC before an " \ 2147 "Minimum percentage of free space after a full GC before an " \
2126 "OutOfMemoryError is thrown (used with GCTimeLimit)") \ 2148 "OutOfMemoryError is thrown (used with GCTimeLimit)") \
2127 \ 2149 \
2139 \ 2161 \
2140 product(intx, PrefetchFieldsAhead, -1, \ 2162 product(intx, PrefetchFieldsAhead, -1, \
2141 "How many fields ahead to prefetch in oop scan (<= 0 means off)") \ 2163 "How many fields ahead to prefetch in oop scan (<= 0 means off)") \
2142 \ 2164 \
2143 diagnostic(bool, VerifySilently, false, \ 2165 diagnostic(bool, VerifySilently, false, \
2144 "Don't print print the verification progress") \ 2166 "Do not print the verification progress") \
2145 \ 2167 \
2146 diagnostic(bool, VerifyDuringStartup, false, \ 2168 diagnostic(bool, VerifyDuringStartup, false, \
2147 "Verify memory system before executing any Java code " \ 2169 "Verify memory system before executing any Java code " \
2148 "during VM initialization") \ 2170 "during VM initialization") \
2149 \ 2171 \
2162 diagnostic(bool, GCParallelVerificationEnabled, true, \ 2184 diagnostic(bool, GCParallelVerificationEnabled, true, \
2163 "Enable parallel memory system verification") \ 2185 "Enable parallel memory system verification") \
2164 \ 2186 \
2165 diagnostic(bool, DeferInitialCardMark, false, \ 2187 diagnostic(bool, DeferInitialCardMark, false, \
2166 "When +ReduceInitialCardMarks, explicitly defer any that " \ 2188 "When +ReduceInitialCardMarks, explicitly defer any that " \
2167 "may arise from new_pre_store_barrier") \ 2189 "may arise from new_pre_store_barrier") \
2168 \ 2190 \
2169 diagnostic(bool, VerifyRememberedSets, false, \ 2191 diagnostic(bool, VerifyRememberedSets, false, \
2170 "Verify GC remembered sets") \ 2192 "Verify GC remembered sets") \
2171 \ 2193 \
2172 diagnostic(bool, VerifyObjectStartArray, true, \ 2194 diagnostic(bool, VerifyObjectStartArray, true, \
2173 "Verify GC object start array if verify before/after") \ 2195 "Verify GC object start array if verify before/after") \
2174 \ 2196 \
2175 product(bool, DisableExplicitGC, false, \ 2197 product(bool, DisableExplicitGC, false, \
2176 "Tells whether calling System.gc() does a full GC") \ 2198 "Ignore calls to System.gc()") \
2177 \ 2199 \
2178 notproduct(bool, CheckMemoryInitialization, false, \ 2200 notproduct(bool, CheckMemoryInitialization, false, \
2179 "Checks memory initialization") \ 2201 "Check memory initialization") \
2180 \ 2202 \
2181 product(bool, CollectGen0First, false, \ 2203 product(bool, CollectGen0First, false, \
2182 "Collect youngest generation before each full GC") \ 2204 "Collect youngest generation before each full GC") \
2183 \ 2205 \
2184 diagnostic(bool, BindCMSThreadToCPU, false, \ 2206 diagnostic(bool, BindCMSThreadToCPU, false, \
2195 \ 2217 \
2196 product(uintx, ProcessDistributionStride, 4, \ 2218 product(uintx, ProcessDistributionStride, 4, \
2197 "Stride through processors when distributing processes") \ 2219 "Stride through processors when distributing processes") \
2198 \ 2220 \
2199 product(uintx, CMSCoordinatorYieldSleepCount, 10, \ 2221 product(uintx, CMSCoordinatorYieldSleepCount, 10, \
2200 "number of times the coordinator GC thread will sleep while " \ 2222 "Number of times the coordinator GC thread will sleep while " \
2201 "yielding before giving up and resuming GC") \ 2223 "yielding before giving up and resuming GC") \
2202 \ 2224 \
2203 product(uintx, CMSYieldSleepCount, 0, \ 2225 product(uintx, CMSYieldSleepCount, 0, \
2204 "number of times a GC thread (minus the coordinator) " \ 2226 "Number of times a GC thread (minus the coordinator) " \
2205 "will sleep while yielding before giving up and resuming GC") \ 2227 "will sleep while yielding before giving up and resuming GC") \
2206 \ 2228 \
2207 /* gc tracing */ \ 2229 /* gc tracing */ \
2208 manageable(bool, PrintGC, false, \ 2230 manageable(bool, PrintGC, false, \
2209 "Print message at garbage collect") \ 2231 "Print message at garbage collection") \
2210 \ 2232 \
2211 manageable(bool, PrintGCDetails, false, \ 2233 manageable(bool, PrintGCDetails, false, \
2212 "Print more details at garbage collect") \ 2234 "Print more details at garbage collection") \
2213 \ 2235 \
2214 manageable(bool, PrintGCDateStamps, false, \ 2236 manageable(bool, PrintGCDateStamps, false, \
2215 "Print date stamps at garbage collect") \ 2237 "Print date stamps at garbage collection") \
2216 \ 2238 \
2217 manageable(bool, PrintGCTimeStamps, false, \ 2239 manageable(bool, PrintGCTimeStamps, false, \
2218 "Print timestamps at garbage collect") \ 2240 "Print timestamps at garbage collection") \
2219 \ 2241 \
2220 product(bool, PrintGCTaskTimeStamps, false, \ 2242 product(bool, PrintGCTaskTimeStamps, false, \
2221 "Print timestamps for individual gc worker thread tasks") \ 2243 "Print timestamps for individual gc worker thread tasks") \
2222 \ 2244 \
2223 develop(intx, ConcGCYieldTimeout, 0, \ 2245 develop(intx, ConcGCYieldTimeout, 0, \
2224 "If non-zero, assert that GC threads yield within this # of ms.") \ 2246 "If non-zero, assert that GC threads yield within this " \
2247 "number of milliseconds") \
2225 \ 2248 \
2226 notproduct(bool, TraceMarkSweep, false, \ 2249 notproduct(bool, TraceMarkSweep, false, \
2227 "Trace mark sweep") \ 2250 "Trace mark sweep") \
2228 \ 2251 \
2229 product(bool, PrintReferenceGC, false, \ 2252 product(bool, PrintReferenceGC, false, \
2230 "Print times spent handling reference objects during GC " \ 2253 "Print times spent handling reference objects during GC " \
2231 " (enabled only when PrintGCDetails)") \ 2254 "(enabled only when PrintGCDetails)") \
2232 \ 2255 \
2233 develop(bool, TraceReferenceGC, false, \ 2256 develop(bool, TraceReferenceGC, false, \
2234 "Trace handling of soft/weak/final/phantom references") \ 2257 "Trace handling of soft/weak/final/phantom references") \
2235 \ 2258 \
2236 develop(bool, TraceFinalizerRegistration, false, \ 2259 develop(bool, TraceFinalizerRegistration, false, \
2237 "Trace registration of final references") \ 2260 "Trace registration of final references") \
2238 \ 2261 \
2239 notproduct(bool, TraceScavenge, false, \ 2262 notproduct(bool, TraceScavenge, false, \
2240 "Trace scavenge") \ 2263 "Trace scavenge") \
2241 \ 2264 \
2242 product_rw(bool, TraceClassLoading, false, \ 2265 product_rw(bool, TraceClassLoading, false, \
2269 \ 2292 \
2270 product_rw(bool, PrintHeapAtGC, false, \ 2293 product_rw(bool, PrintHeapAtGC, false, \
2271 "Print heap layout before and after each GC") \ 2294 "Print heap layout before and after each GC") \
2272 \ 2295 \
2273 product_rw(bool, PrintHeapAtGCExtended, false, \ 2296 product_rw(bool, PrintHeapAtGCExtended, false, \
2274 "Prints extended information about the layout of the heap " \ 2297 "Print extended information about the layout of the heap " \
2275 "when -XX:+PrintHeapAtGC is set") \ 2298 "when -XX:+PrintHeapAtGC is set") \
2276 \ 2299 \
2277 product(bool, PrintHeapAtSIGBREAK, true, \ 2300 product(bool, PrintHeapAtSIGBREAK, true, \
2278 "Print heap layout in response to SIGBREAK") \ 2301 "Print heap layout in response to SIGBREAK") \
2279 \ 2302 \
2306 \ 2329 \
2307 diagnostic(bool, TraceGCTaskThread, false, \ 2330 diagnostic(bool, TraceGCTaskThread, false, \
2308 "Trace actions of the GC task threads") \ 2331 "Trace actions of the GC task threads") \
2309 \ 2332 \
2310 product(bool, PrintParallelOldGCPhaseTimes, false, \ 2333 product(bool, PrintParallelOldGCPhaseTimes, false, \
2311 "Print the time taken by each parallel old gc phase." \ 2334 "Print the time taken by each phase in ParallelOldGC " \
2312 "PrintGCDetails must also be enabled.") \ 2335 "(PrintGCDetails must also be enabled)") \
2313 \ 2336 \
2314 develop(bool, TraceParallelOldGCMarkingPhase, false, \ 2337 develop(bool, TraceParallelOldGCMarkingPhase, false, \
2315 "Trace parallel old gc marking phase") \ 2338 "Trace marking phase in ParallelOldGC") \
2316 \ 2339 \
2317 develop(bool, TraceParallelOldGCSummaryPhase, false, \ 2340 develop(bool, TraceParallelOldGCSummaryPhase, false, \
2318 "Trace parallel old gc summary phase") \ 2341 "Trace summary phase in ParallelOldGC") \
2319 \ 2342 \
2320 develop(bool, TraceParallelOldGCCompactionPhase, false, \ 2343 develop(bool, TraceParallelOldGCCompactionPhase, false, \
2321 "Trace parallel old gc compaction phase") \ 2344 "Trace compaction phase in ParallelOldGC") \
2322 \ 2345 \
2323 develop(bool, TraceParallelOldGCDensePrefix, false, \ 2346 develop(bool, TraceParallelOldGCDensePrefix, false, \
2324 "Trace parallel old gc dense prefix computation") \ 2347 "Trace dense prefix computation for ParallelOldGC") \
2325 \ 2348 \
2326 develop(bool, IgnoreLibthreadGPFault, false, \ 2349 develop(bool, IgnoreLibthreadGPFault, false, \
2327 "Suppress workaround for libthread GP fault") \ 2350 "Suppress workaround for libthread GP fault") \
2328 \ 2351 \
2329 product(bool, PrintJNIGCStalls, false, \ 2352 product(bool, PrintJNIGCStalls, false, \
2330 "Print diagnostic message when GC is stalled" \ 2353 "Print diagnostic message when GC is stalled " \
2331 "by JNI critical section") \ 2354 "by JNI critical section") \
2332 \ 2355 \
2333 experimental(double, ObjectCountCutOffPercent, 0.5, \ 2356 experimental(double, ObjectCountCutOffPercent, 0.5, \
2334 "The percentage of the used heap that the instances of a class " \ 2357 "The percentage of the used heap that the instances of a class " \
2335 "must occupy for the class to generate a trace event.") \ 2358 "must occupy for the class to generate a trace event") \
2336 \ 2359 \
2337 /* GC log rotation setting */ \ 2360 /* GC log rotation setting */ \
2338 \ 2361 \
2339 product(bool, UseGCLogFileRotation, false, \ 2362 product(bool, UseGCLogFileRotation, false, \
2340 "Prevent large gclog file for long running app. " \ 2363 "Rotate gclog files (for long running applications). It requires "\
2341 "Requires -Xloggc:<filename>") \ 2364 "-Xloggc:<filename>") \
2342 \ 2365 \
2343 product(uintx, NumberOfGCLogFiles, 0, \ 2366 product(uintx, NumberOfGCLogFiles, 0, \
2344 "Number of gclog files in rotation, " \ 2367 "Number of gclog files in rotation " \
2345 "Default: 0, no rotation") \ 2368 "(default: 0, no rotation)") \
2346 \ 2369 \
2347 product(uintx, GCLogFileSize, 0, \ 2370 product(uintx, GCLogFileSize, 0, \
2348 "GC log file size, Default: 0 bytes, no rotation " \ 2371 "GC log file size (default: 0 bytes, no rotation). " \
2349 "Only valid with UseGCLogFileRotation") \ 2372 "It requires UseGCLogFileRotation") \
2350 \ 2373 \
2351 /* JVMTI heap profiling */ \ 2374 /* JVMTI heap profiling */ \
2352 \ 2375 \
2353 diagnostic(bool, TraceJVMTIObjectTagging, false, \ 2376 diagnostic(bool, TraceJVMTIObjectTagging, false, \
2354 "Trace JVMTI object tagging calls") \ 2377 "Trace JVMTI object tagging calls") \
2421 \ 2444 \
2422 develop(bool, GenerateRangeChecks, true, \ 2445 develop(bool, GenerateRangeChecks, true, \
2423 "Generate range checks for array accesses") \ 2446 "Generate range checks for array accesses") \
2424 \ 2447 \
2425 develop_pd(bool, ImplicitNullChecks, \ 2448 develop_pd(bool, ImplicitNullChecks, \
2426 "generate code for implicit null checks") \ 2449 "Generate code for implicit null checks") \
2427 \ 2450 \
2428 product(bool, PrintSafepointStatistics, false, \ 2451 product(bool, PrintSafepointStatistics, false, \
2429 "print statistics about safepoint synchronization") \ 2452 "Print statistics about safepoint synchronization") \
2430 \ 2453 \
2431 product(intx, PrintSafepointStatisticsCount, 300, \ 2454 product(intx, PrintSafepointStatisticsCount, 300, \
2432 "total number of safepoint statistics collected " \ 2455 "Total number of safepoint statistics collected " \
2433 "before printing them out") \ 2456 "before printing them out") \
2434 \ 2457 \
2435 product(intx, PrintSafepointStatisticsTimeout, -1, \ 2458 product(intx, PrintSafepointStatisticsTimeout, -1, \
2436 "print safepoint statistics only when safepoint takes" \ 2459 "Print safepoint statistics only when safepoint takes " \
2437 " more than PrintSafepointSatisticsTimeout in millis") \ 2460 "more than PrintSafepointSatisticsTimeout in millis") \
2438 \ 2461 \
2439 product(bool, TraceSafepointCleanupTime, false, \ 2462 product(bool, TraceSafepointCleanupTime, false, \
2440 "print the break down of clean up tasks performed during" \ 2463 "Print the break down of clean up tasks performed during " \
2441 " safepoint") \ 2464 "safepoint") \
2442 \ 2465 \
2443 product(bool, Inline, true, \ 2466 product(bool, Inline, true, \
2444 "enable inlining") \ 2467 "Enable inlining") \
2445 \ 2468 \
2446 product(bool, ClipInlining, true, \ 2469 product(bool, ClipInlining, true, \
2447 "clip inlining if aggregate method exceeds DesiredMethodLimit") \ 2470 "Clip inlining if aggregate method exceeds DesiredMethodLimit") \
2448 \ 2471 \
2449 develop(bool, UseCHA, true, \ 2472 develop(bool, UseCHA, true, \
2450 "enable CHA") \ 2473 "Enable CHA") \
2451 \ 2474 \
2452 product(bool, UseTypeProfile, true, \ 2475 product(bool, UseTypeProfile, true, \
2453 "Check interpreter profile for historically monomorphic calls") \ 2476 "Check interpreter profile for historically monomorphic calls") \
2454 \ 2477 \
2455 notproduct(bool, TimeCompiler, false, \ 2478 notproduct(bool, TimeCompiler, false, \
2456 "time the compiler") \ 2479 "Time the compiler") \
2457 \ 2480 \
2458 diagnostic(bool, PrintInlining, false, \ 2481 diagnostic(bool, PrintInlining, false, \
2459 "prints inlining optimizations") \ 2482 "Print inlining optimizations") \
2460 \ 2483 \
2461 product(bool, UsePopCountInstruction, false, \ 2484 product(bool, UsePopCountInstruction, false, \
2462 "Use population count instruction") \ 2485 "Use population count instruction") \
2463 \ 2486 \
2464 develop(bool, EagerInitialization, false, \ 2487 develop(bool, EagerInitialization, false, \
2466 \ 2489 \
2467 develop(bool, TraceMethodReplacement, false, \ 2490 develop(bool, TraceMethodReplacement, false, \
2468 "Print when methods are replaced do to recompilation") \ 2491 "Print when methods are replaced do to recompilation") \
2469 \ 2492 \
2470 develop(bool, PrintMethodFlushing, false, \ 2493 develop(bool, PrintMethodFlushing, false, \
2471 "print the nmethods being flushed") \ 2494 "Print the nmethods being flushed") \
2472 \ 2495 \
2473 develop(bool, UseRelocIndex, false, \ 2496 develop(bool, UseRelocIndex, false, \
2474 "use an index to speed random access to relocations") \ 2497 "Use an index to speed random access to relocations") \
2475 \ 2498 \
2476 develop(bool, StressCodeBuffers, false, \ 2499 develop(bool, StressCodeBuffers, false, \
2477 "Exercise code buffer expansion and other rare state changes") \ 2500 "Exercise code buffer expansion and other rare state changes") \
2478 \ 2501 \
2479 diagnostic(bool, DebugNonSafepoints, trueInDebug, \ 2502 diagnostic(bool, DebugNonSafepoints, trueInDebug, \
2480 "Generate extra debugging info for non-safepoints in nmethods") \ 2503 "Generate extra debugging information for non-safepoints in " \
2504 "nmethods") \
2481 \ 2505 \
2482 product(bool, PrintVMOptions, false, \ 2506 product(bool, PrintVMOptions, false, \
2483 "Print flags that appeared on the command line") \ 2507 "Print flags that appeared on the command line") \
2484 \ 2508 \
2485 product(bool, IgnoreUnrecognizedVMOptions, false, \ 2509 product(bool, IgnoreUnrecognizedVMOptions, false, \
2486 "Ignore unrecognized VM options") \ 2510 "Ignore unrecognized VM options") \
2487 \ 2511 \
2488 product(bool, PrintCommandLineFlags, false, \ 2512 product(bool, PrintCommandLineFlags, false, \
2489 "Print flags specified on command line or set by ergonomics") \ 2513 "Print flags specified on command line or set by ergonomics") \
2490 \ 2514 \
2491 product(bool, PrintFlagsInitial, false, \ 2515 product(bool, PrintFlagsInitial, false, \
2492 "Print all VM flags before argument processing and exit VM") \ 2516 "Print all VM flags before argument processing and exit VM") \
2493 \ 2517 \
2494 product(bool, PrintFlagsFinal, false, \ 2518 product(bool, PrintFlagsFinal, false, \
2495 "Print all VM flags after argument and ergonomic processing") \ 2519 "Print all VM flags after argument and ergonomic processing") \
2496 \ 2520 \
2497 notproduct(bool, PrintFlagsWithComments, false, \ 2521 notproduct(bool, PrintFlagsWithComments, false, \
2498 "Print all VM flags with default values and descriptions and exit")\ 2522 "Print all VM flags with default values and descriptions and " \
2523 "exit") \
2499 \ 2524 \
2500 diagnostic(bool, SerializeVMOutput, true, \ 2525 diagnostic(bool, SerializeVMOutput, true, \
2501 "Use a mutex to serialize output to tty and LogFile") \ 2526 "Use a mutex to serialize output to tty and LogFile") \
2502 \ 2527 \
2503 diagnostic(bool, DisplayVMOutput, true, \ 2528 diagnostic(bool, DisplayVMOutput, true, \
2504 "Display all VM output on the tty, independently of LogVMOutput") \ 2529 "Display all VM output on the tty, independently of LogVMOutput") \
2505 \ 2530 \
2506 diagnostic(bool, LogVMOutput, false, \ 2531 diagnostic(bool, LogVMOutput, false, \
2507 "Save VM output to LogFile") \ 2532 "Save VM output to LogFile") \
2508 \ 2533 \
2509 diagnostic(ccstr, LogFile, NULL, \ 2534 diagnostic(ccstr, LogFile, NULL, \
2510 "If LogVMOutput or LogCompilation is on, save VM output to " \ 2535 "If LogVMOutput or LogCompilation is on, save VM output to " \
2511 "this file [default: ./hotspot_pid%p.log] (%p replaced with pid)") \ 2536 "this file [default: ./hotspot_pid%p.log] (%p replaced with pid)")\
2512 \ 2537 \
2513 product(ccstr, ErrorFile, NULL, \ 2538 product(ccstr, ErrorFile, NULL, \
2514 "If an error occurs, save the error data to this file " \ 2539 "If an error occurs, save the error data to this file " \
2515 "[default: ./hs_err_pid%p.log] (%p replaced with pid)") \ 2540 "[default: ./hs_err_pid%p.log] (%p replaced with pid)") \
2516 \ 2541 \
2517 product(bool, DisplayVMOutputToStderr, false, \ 2542 product(bool, DisplayVMOutputToStderr, false, \
2518 "If DisplayVMOutput is true, display all VM output to stderr") \ 2543 "If DisplayVMOutput is true, display all VM output to stderr") \
2519 \ 2544 \
2520 product(bool, DisplayVMOutputToStdout, false, \ 2545 product(bool, DisplayVMOutputToStdout, false, \
2521 "If DisplayVMOutput is true, display all VM output to stdout") \ 2546 "If DisplayVMOutput is true, display all VM output to stdout") \
2522 \ 2547 \
2523 product(bool, UseHeavyMonitors, false, \ 2548 product(bool, UseHeavyMonitors, false, \
2524 "use heavyweight instead of lightweight Java monitors") \ 2549 "use heavyweight instead of lightweight Java monitors") \
2525 \ 2550 \
2526 product(bool, PrintStringTableStatistics, false, \ 2551 product(bool, PrintStringTableStatistics, false, \
2540 "Call fatal if this exception is thrown. Example: " \ 2565 "Call fatal if this exception is thrown. Example: " \
2541 "java -XX:AbortVMOnException=java.lang.NullPointerException Foo") \ 2566 "java -XX:AbortVMOnException=java.lang.NullPointerException Foo") \
2542 \ 2567 \
2543 notproduct(ccstr, AbortVMOnExceptionMessage, NULL, \ 2568 notproduct(ccstr, AbortVMOnExceptionMessage, NULL, \
2544 "Call fatal if the exception pointed by AbortVMOnException " \ 2569 "Call fatal if the exception pointed by AbortVMOnException " \
2545 "has this message.") \ 2570 "has this message") \
2546 \ 2571 \
2547 develop(bool, DebugVtables, false, \ 2572 develop(bool, DebugVtables, false, \
2548 "add debugging code to vtable dispatch") \ 2573 "add debugging code to vtable dispatch") \
2549 \ 2574 \
2550 develop(bool, PrintVtables, false, \ 2575 develop(bool, PrintVtables, false, \
2607 product(bool, AggressiveOpts, false, \ 2632 product(bool, AggressiveOpts, false, \
2608 "Enable aggressive optimizations - see arguments.cpp") \ 2633 "Enable aggressive optimizations - see arguments.cpp") \
2609 \ 2634 \
2610 /* statistics */ \ 2635 /* statistics */ \
2611 develop(bool, CountCompiledCalls, false, \ 2636 develop(bool, CountCompiledCalls, false, \
2612 "counts method invocations") \ 2637 "Count method invocations") \
2613 \ 2638 \
2614 notproduct(bool, CountRuntimeCalls, false, \ 2639 notproduct(bool, CountRuntimeCalls, false, \
2615 "counts VM runtime calls") \ 2640 "Count VM runtime calls") \
2616 \ 2641 \
2617 develop(bool, CountJNICalls, false, \ 2642 develop(bool, CountJNICalls, false, \
2618 "counts jni method invocations") \ 2643 "Count jni method invocations") \
2619 \ 2644 \
2620 notproduct(bool, CountJVMCalls, false, \ 2645 notproduct(bool, CountJVMCalls, false, \
2621 "counts jvm method invocations") \ 2646 "Count jvm method invocations") \
2622 \ 2647 \
2623 notproduct(bool, CountRemovableExceptions, false, \ 2648 notproduct(bool, CountRemovableExceptions, false, \
2624 "count exceptions that could be replaced by branches due to " \ 2649 "Count exceptions that could be replaced by branches due to " \
2625 "inlining") \ 2650 "inlining") \
2626 \ 2651 \
2627 notproduct(bool, ICMissHistogram, false, \ 2652 notproduct(bool, ICMissHistogram, false, \
2628 "produce histogram of IC misses") \ 2653 "Produce histogram of IC misses") \
2629 \ 2654 \
2630 notproduct(bool, PrintClassStatistics, false, \ 2655 notproduct(bool, PrintClassStatistics, false, \
2631 "prints class statistics at end of run") \ 2656 "Print class statistics at end of run") \
2632 \ 2657 \
2633 notproduct(bool, PrintMethodStatistics, false, \ 2658 notproduct(bool, PrintMethodStatistics, false, \
2634 "prints method statistics at end of run") \ 2659 "Print method statistics at end of run") \
2635 \ 2660 \
2636 /* interpreter */ \ 2661 /* interpreter */ \
2637 develop(bool, ClearInterpreterLocals, false, \ 2662 develop(bool, ClearInterpreterLocals, false, \
2638 "Always clear local variables of interpreter activations upon " \ 2663 "Always clear local variables of interpreter activations upon " \
2639 "entry") \ 2664 "entry") \
2643 \ 2668 \
2644 product_pd(bool, RewriteFrequentPairs, \ 2669 product_pd(bool, RewriteFrequentPairs, \
2645 "Rewrite frequently used bytecode pairs into a single bytecode") \ 2670 "Rewrite frequently used bytecode pairs into a single bytecode") \
2646 \ 2671 \
2647 diagnostic(bool, PrintInterpreter, false, \ 2672 diagnostic(bool, PrintInterpreter, false, \
2648 "Prints the generated interpreter code") \ 2673 "Print the generated interpreter code") \
2649 \ 2674 \
2650 product(bool, UseInterpreter, true, \ 2675 product(bool, UseInterpreter, true, \
2651 "Use interpreter for non-compiled methods") \ 2676 "Use interpreter for non-compiled methods") \
2652 \ 2677 \
2653 develop(bool, UseFastSignatureHandlers, true, \ 2678 develop(bool, UseFastSignatureHandlers, true, \
2661 \ 2686 \
2662 product(bool, UseFastAccessorMethods, true, \ 2687 product(bool, UseFastAccessorMethods, true, \
2663 "Use fast method entry code for accessor methods") \ 2688 "Use fast method entry code for accessor methods") \
2664 \ 2689 \
2665 product_pd(bool, UseOnStackReplacement, \ 2690 product_pd(bool, UseOnStackReplacement, \
2666 "Use on stack replacement, calls runtime if invoc. counter " \ 2691 "Use on stack replacement, calls runtime if invoc. counter " \
2667 "overflows in loop") \ 2692 "overflows in loop") \
2668 \ 2693 \
2669 notproduct(bool, TraceOnStackReplacement, false, \ 2694 notproduct(bool, TraceOnStackReplacement, false, \
2670 "Trace on stack replacement") \ 2695 "Trace on stack replacement") \
2671 \ 2696 \
2672 product_pd(bool, PreferInterpreterNativeStubs, \ 2697 product_pd(bool, PreferInterpreterNativeStubs, \
2710 \ 2735 \
2711 develop(bool, TraceFrequencyInlining, false, \ 2736 develop(bool, TraceFrequencyInlining, false, \
2712 "Trace frequency based inlining") \ 2737 "Trace frequency based inlining") \
2713 \ 2738 \
2714 develop_pd(bool, InlineIntrinsics, \ 2739 develop_pd(bool, InlineIntrinsics, \
2715 "Inline intrinsics that can be statically resolved") \ 2740 "Inline intrinsics that can be statically resolved") \
2716 \ 2741 \
2717 product_pd(bool, ProfileInterpreter, \ 2742 product_pd(bool, ProfileInterpreter, \
2718 "Profile at the bytecode level during interpretation") \ 2743 "Profile at the bytecode level during interpretation") \
2719 \ 2744 \
2720 develop_pd(bool, ProfileTraps, \ 2745 develop_pd(bool, ProfileTraps, \
2721 "Profile deoptimization traps at the bytecode level") \ 2746 "Profile deoptimization traps at the bytecode level") \
2722 \ 2747 \
2723 product(intx, ProfileMaturityPercentage, 20, \ 2748 product(intx, ProfileMaturityPercentage, 20, \
2724 "number of method invocations/branches (expressed as % of " \ 2749 "number of method invocations/branches (expressed as % of " \
2725 "CompileThreshold) before using the method's profile") \ 2750 "CompileThreshold) before using the method's profile") \
2726 \ 2751 \
2727 develop(bool, PrintMethodData, false, \ 2752 develop(bool, PrintMethodData, false, \
2728 "Print the results of +ProfileInterpreter at end of run") \ 2753 "Print the results of +ProfileInterpreter at end of run") \
2729 \ 2754 \
2730 develop(bool, VerifyDataPointer, trueInDebug, \ 2755 develop(bool, VerifyDataPointer, trueInDebug, \
2731 "Verify the method data pointer during interpreter profiling") \ 2756 "Verify the method data pointer during interpreter profiling") \
2732 \ 2757 \
2733 develop(bool, VerifyCompiledCode, false, \ 2758 develop(bool, VerifyCompiledCode, false, \
2738 "Manually make GC thread crash then dump java stack trace; " \ 2763 "Manually make GC thread crash then dump java stack trace; " \
2739 "Test only") \ 2764 "Test only") \
2740 \ 2765 \
2741 /* compilation */ \ 2766 /* compilation */ \
2742 product(bool, UseCompiler, true, \ 2767 product(bool, UseCompiler, true, \
2743 "use compilation") \ 2768 "Use Just-In-Time compilation") \
2744 \ 2769 \
2745 develop(bool, TraceCompilationPolicy, false, \ 2770 develop(bool, TraceCompilationPolicy, false, \
2746 "Trace compilation policy") \ 2771 "Trace compilation policy") \
2747 \ 2772 \
2748 develop(bool, TimeCompilationPolicy, false, \ 2773 develop(bool, TimeCompilationPolicy, false, \
2749 "Time the compilation policy") \ 2774 "Time the compilation policy") \
2750 \ 2775 \
2751 product(bool, UseCounterDecay, true, \ 2776 product(bool, UseCounterDecay, true, \
2752 "adjust recompilation counters") \ 2777 "Adjust recompilation counters") \
2753 \ 2778 \
2754 develop(intx, CounterHalfLifeTime, 30, \ 2779 develop(intx, CounterHalfLifeTime, 30, \
2755 "half-life time of invocation counters (in secs)") \ 2780 "Half-life time of invocation counters (in seconds)") \
2756 \ 2781 \
2757 develop(intx, CounterDecayMinIntervalLength, 500, \ 2782 develop(intx, CounterDecayMinIntervalLength, 500, \
2758 "Min. ms. between invocation of CounterDecay") \ 2783 "The minimum interval (in milliseconds) between invocation of " \
2784 "CounterDecay") \
2759 \ 2785 \
2760 product(bool, AlwaysCompileLoopMethods, false, \ 2786 product(bool, AlwaysCompileLoopMethods, false, \
2761 "when using recompilation, never interpret methods " \ 2787 "When using recompilation, never interpret methods " \
2762 "containing loops") \ 2788 "containing loops") \
2763 \ 2789 \
2764 product(bool, DontCompileHugeMethods, true, \ 2790 product(bool, DontCompileHugeMethods, true, \
2765 "don't compile methods > HugeMethodLimit") \ 2791 "Do not compile methods > HugeMethodLimit") \
2766 \ 2792 \
2767 /* Bytecode escape analysis estimation. */ \ 2793 /* Bytecode escape analysis estimation. */ \
2768 product(bool, EstimateArgEscape, true, \ 2794 product(bool, EstimateArgEscape, true, \
2769 "Analyze bytecodes to estimate escape state of arguments") \ 2795 "Analyze bytecodes to estimate escape state of arguments") \
2770 \ 2796 \
2771 product(intx, BCEATraceLevel, 0, \ 2797 product(intx, BCEATraceLevel, 0, \
2772 "How much tracing to do of bytecode escape analysis estimates") \ 2798 "How much tracing to do of bytecode escape analysis estimates") \
2773 \ 2799 \
2774 product(intx, MaxBCEAEstimateLevel, 5, \ 2800 product(intx, MaxBCEAEstimateLevel, 5, \
2775 "Maximum number of nested calls that are analyzed by BC EA.") \ 2801 "Maximum number of nested calls that are analyzed by BC EA") \
2776 \ 2802 \
2777 product(intx, MaxBCEAEstimateSize, 150, \ 2803 product(intx, MaxBCEAEstimateSize, 150, \
2778 "Maximum bytecode size of a method to be analyzed by BC EA.") \ 2804 "Maximum bytecode size of a method to be analyzed by BC EA") \
2779 \ 2805 \
2780 product(intx, AllocatePrefetchStyle, 1, \ 2806 product(intx, AllocatePrefetchStyle, 1, \
2781 "0 = no prefetch, " \ 2807 "0 = no prefetch, " \
2782 "1 = prefetch instructions for each allocation, " \ 2808 "1 = prefetch instructions for each allocation, " \
2783 "2 = use TLAB watermark to gate allocation prefetch, " \ 2809 "2 = use TLAB watermark to gate allocation prefetch, " \
2788 \ 2814 \
2789 product(intx, AllocatePrefetchLines, 3, \ 2815 product(intx, AllocatePrefetchLines, 3, \
2790 "Number of lines to prefetch ahead of array allocation pointer") \ 2816 "Number of lines to prefetch ahead of array allocation pointer") \
2791 \ 2817 \
2792 product(intx, AllocateInstancePrefetchLines, 1, \ 2818 product(intx, AllocateInstancePrefetchLines, 1, \
2793 "Number of lines to prefetch ahead of instance allocation pointer") \ 2819 "Number of lines to prefetch ahead of instance allocation " \
2820 "pointer") \
2794 \ 2821 \
2795 product(intx, AllocatePrefetchStepSize, 16, \ 2822 product(intx, AllocatePrefetchStepSize, 16, \
2796 "Step size in bytes of sequential prefetch instructions") \ 2823 "Step size in bytes of sequential prefetch instructions") \
2797 \ 2824 \
2798 product(intx, AllocatePrefetchInstr, 0, \ 2825 product(intx, AllocatePrefetchInstr, 0, \
2808 product(intx, SelfDestructTimer, 0, \ 2835 product(intx, SelfDestructTimer, 0, \
2809 "Will cause VM to terminate after a given time (in minutes) " \ 2836 "Will cause VM to terminate after a given time (in minutes) " \
2810 "(0 means off)") \ 2837 "(0 means off)") \
2811 \ 2838 \
2812 product(intx, MaxJavaStackTraceDepth, 1024, \ 2839 product(intx, MaxJavaStackTraceDepth, 1024, \
2813 "Max. no. of lines in the stack trace for Java exceptions " \ 2840 "The maximum number of lines in the stack trace for Java " \
2814 "(0 means all)") \ 2841 "exceptions (0 means all)") \
2815 \ 2842 \
2816 NOT_EMBEDDED(diagnostic(intx, GuaranteedSafepointInterval, 1000, \ 2843 NOT_EMBEDDED(diagnostic(intx, GuaranteedSafepointInterval, 1000, \
2817 "Guarantee a safepoint (at least) every so many milliseconds " \ 2844 "Guarantee a safepoint (at least) every so many milliseconds " \
2818 "(0 means none)")) \ 2845 "(0 means none)")) \
2819 \ 2846 \
2829 \ 2856 \
2830 product(intx, NmethodSweepCheckInterval, 5, \ 2857 product(intx, NmethodSweepCheckInterval, 5, \
2831 "Compilers wake up every n seconds to possibly sweep nmethods") \ 2858 "Compilers wake up every n seconds to possibly sweep nmethods") \
2832 \ 2859 \
2833 notproduct(bool, LogSweeper, false, \ 2860 notproduct(bool, LogSweeper, false, \
2834 "Keep a ring buffer of sweeper activity") \ 2861 "Keep a ring buffer of sweeper activity") \
2835 \ 2862 \
2836 notproduct(intx, SweeperLogEntries, 1024, \ 2863 notproduct(intx, SweeperLogEntries, 1024, \
2837 "Number of records in the ring buffer of sweeper activity") \ 2864 "Number of records in the ring buffer of sweeper activity") \
2838 \ 2865 \
2839 notproduct(intx, MemProfilingInterval, 500, \ 2866 notproduct(intx, MemProfilingInterval, 500, \
2840 "Time between each invocation of the MemProfiler") \ 2867 "Time between each invocation of the MemProfiler") \
2841 \ 2868 \
2842 develop(intx, MallocCatchPtr, -1, \ 2869 develop(intx, MallocCatchPtr, -1, \
2875 product_pd(intx, InlineSmallCode, \ 2902 product_pd(intx, InlineSmallCode, \
2876 "Only inline already compiled methods if their code size is " \ 2903 "Only inline already compiled methods if their code size is " \
2877 "less than this") \ 2904 "less than this") \
2878 \ 2905 \
2879 product(intx, MaxInlineSize, 35, \ 2906 product(intx, MaxInlineSize, 35, \
2880 "maximum bytecode size of a method to be inlined") \ 2907 "The maximum bytecode size of a method to be inlined") \
2881 \ 2908 \
2882 product_pd(intx, FreqInlineSize, \ 2909 product_pd(intx, FreqInlineSize, \
2883 "maximum bytecode size of a frequent method to be inlined") \ 2910 "The maximum bytecode size of a frequent method to be inlined") \
2884 \ 2911 \
2885 product(intx, MaxTrivialSize, 6, \ 2912 product(intx, MaxTrivialSize, 6, \
2886 "maximum bytecode size of a trivial method to be inlined") \ 2913 "The maximum bytecode size of a trivial method to be inlined") \
2887 \ 2914 \
2888 product(intx, MinInliningThreshold, 250, \ 2915 product(intx, MinInliningThreshold, 250, \
2889 "min. invocation count a method needs to have to be inlined") \ 2916 "The minimum invocation count a method needs to have to be " \
2917 "inlined") \
2890 \ 2918 \
2891 develop(intx, MethodHistogramCutoff, 100, \ 2919 develop(intx, MethodHistogramCutoff, 100, \
2892 "cutoff value for method invoc. histogram (+CountCalls)") \ 2920 "The cutoff value for method invocation histogram (+CountCalls)") \
2893 \ 2921 \
2894 develop(intx, ProfilerNumberOfInterpretedMethods, 25, \ 2922 develop(intx, ProfilerNumberOfInterpretedMethods, 25, \
2895 "# of interpreted methods to show in profile") \ 2923 "Number of interpreted methods to show in profile") \
2896 \ 2924 \
2897 develop(intx, ProfilerNumberOfCompiledMethods, 25, \ 2925 develop(intx, ProfilerNumberOfCompiledMethods, 25, \
2898 "# of compiled methods to show in profile") \ 2926 "Number of compiled methods to show in profile") \
2899 \ 2927 \
2900 develop(intx, ProfilerNumberOfStubMethods, 25, \ 2928 develop(intx, ProfilerNumberOfStubMethods, 25, \
2901 "# of stub methods to show in profile") \ 2929 "Number of stub methods to show in profile") \
2902 \ 2930 \
2903 develop(intx, ProfilerNumberOfRuntimeStubNodes, 25, \ 2931 develop(intx, ProfilerNumberOfRuntimeStubNodes, 25, \
2904 "# of runtime stub nodes to show in profile") \ 2932 "Number of runtime stub nodes to show in profile") \
2905 \ 2933 \
2906 product(intx, ProfileIntervalsTicks, 100, \ 2934 product(intx, ProfileIntervalsTicks, 100, \
2907 "# of ticks between printing of interval profile " \ 2935 "Number of ticks between printing of interval profile " \
2908 "(+ProfileIntervals)") \ 2936 "(+ProfileIntervals)") \
2909 \ 2937 \
2910 notproduct(intx, ScavengeALotInterval, 1, \ 2938 notproduct(intx, ScavengeALotInterval, 1, \
2911 "Interval between which scavenge will occur with +ScavengeALot") \ 2939 "Interval between which scavenge will occur with +ScavengeALot") \
2912 \ 2940 \
2923 develop(intx, DontYieldALotInterval, 10, \ 2951 develop(intx, DontYieldALotInterval, 10, \
2924 "Interval between which yields will be dropped (milliseconds)") \ 2952 "Interval between which yields will be dropped (milliseconds)") \
2925 \ 2953 \
2926 develop(intx, MinSleepInterval, 1, \ 2954 develop(intx, MinSleepInterval, 1, \
2927 "Minimum sleep() interval (milliseconds) when " \ 2955 "Minimum sleep() interval (milliseconds) when " \
2928 "ConvertSleepToYield is off (used for SOLARIS)") \ 2956 "ConvertSleepToYield is off (used for Solaris)") \
2929 \ 2957 \
2930 develop(intx, ProfilerPCTickThreshold, 15, \ 2958 develop(intx, ProfilerPCTickThreshold, 15, \
2931 "Number of ticks in a PC buckets to be a hotspot") \ 2959 "Number of ticks in a PC buckets to be a hotspot") \
2932 \ 2960 \
2933 notproduct(intx, DeoptimizeALotInterval, 5, \ 2961 notproduct(intx, DeoptimizeALotInterval, 5, \
2938 \ 2966 \
2939 develop(bool, StressNonEntrant, false, \ 2967 develop(bool, StressNonEntrant, false, \
2940 "Mark nmethods non-entrant at registration") \ 2968 "Mark nmethods non-entrant at registration") \
2941 \ 2969 \
2942 diagnostic(intx, MallocVerifyInterval, 0, \ 2970 diagnostic(intx, MallocVerifyInterval, 0, \
2943 "if non-zero, verify C heap after every N calls to " \ 2971 "If non-zero, verify C heap after every N calls to " \
2944 "malloc/realloc/free") \ 2972 "malloc/realloc/free") \
2945 \ 2973 \
2946 diagnostic(intx, MallocVerifyStart, 0, \ 2974 diagnostic(intx, MallocVerifyStart, 0, \
2947 "if non-zero, start verifying C heap after Nth call to " \ 2975 "If non-zero, start verifying C heap after Nth call to " \
2948 "malloc/realloc/free") \ 2976 "malloc/realloc/free") \
2949 \ 2977 \
2950 diagnostic(uintx, MallocMaxTestWords, 0, \ 2978 diagnostic(uintx, MallocMaxTestWords, 0, \
2951 "if non-zero, max # of Words that malloc/realloc can allocate " \ 2979 "If non-zero, maximum number of words that malloc/realloc can " \
2952 "(for testing only)") \ 2980 "allocate (for testing only)") \
2953 \ 2981 \
2954 product(intx, TypeProfileWidth, 2, \ 2982 product(intx, TypeProfileWidth, 2, \
2955 "number of receiver types to record in call/cast profile") \ 2983 "Number of receiver types to record in call/cast profile") \
2956 \ 2984 \
2957 develop(intx, BciProfileWidth, 2, \ 2985 develop(intx, BciProfileWidth, 2, \
2958 "number of return bci's to record in ret profile") \ 2986 "Number of return bci's to record in ret profile") \
2959 \ 2987 \
2960 product(intx, PerMethodRecompilationCutoff, 400, \ 2988 product(intx, PerMethodRecompilationCutoff, 400, \
2961 "After recompiling N times, stay in the interpreter (-1=>'Inf')") \ 2989 "After recompiling N times, stay in the interpreter (-1=>'Inf')") \
2962 \ 2990 \
2963 product(intx, PerBytecodeRecompilationCutoff, 200, \ 2991 product(intx, PerBytecodeRecompilationCutoff, 200, \
3020 \ 3048 \
3021 product(uintx, TLABWasteTargetPercent, 1, \ 3049 product(uintx, TLABWasteTargetPercent, 1, \
3022 "Percentage of Eden that can be wasted") \ 3050 "Percentage of Eden that can be wasted") \
3023 \ 3051 \
3024 product(uintx, TLABRefillWasteFraction, 64, \ 3052 product(uintx, TLABRefillWasteFraction, 64, \
3025 "Max TLAB waste at a refill (internal fragmentation)") \ 3053 "Maximum TLAB waste at a refill (internal fragmentation)") \
3026 \ 3054 \
3027 product(uintx, TLABWasteIncrement, 4, \ 3055 product(uintx, TLABWasteIncrement, 4, \
3028 "Increment allowed waste at slow allocation") \ 3056 "Increment allowed waste at slow allocation") \
3029 \ 3057 \
3030 product(uintx, SurvivorRatio, 8, \ 3058 product(uintx, SurvivorRatio, 8, \
3031 "Ratio of eden/survivor space size") \ 3059 "Ratio of eden/survivor space size") \
3032 \ 3060 \
3033 product(uintx, NewRatio, 2, \ 3061 product(uintx, NewRatio, 2, \
3034 "Ratio of new/old generation sizes") \ 3062 "Ratio of old/new generation sizes") \
3035 \ 3063 \
3036 product_pd(uintx, NewSizeThreadIncrease, \ 3064 product_pd(uintx, NewSizeThreadIncrease, \
3037 "Additional size added to desired new generation size per " \ 3065 "Additional size added to desired new generation size per " \
3038 "non-daemon thread (in bytes)") \ 3066 "non-daemon thread (in bytes)") \
3039 \ 3067 \
3046 product(uintx, CompressedClassSpaceSize, 1*G, \ 3074 product(uintx, CompressedClassSpaceSize, 1*G, \
3047 "Maximum size of class area in Metaspace when compressed " \ 3075 "Maximum size of class area in Metaspace when compressed " \
3048 "class pointers are used") \ 3076 "class pointers are used") \
3049 \ 3077 \
3050 product(uintx, MinHeapFreeRatio, 40, \ 3078 product(uintx, MinHeapFreeRatio, 40, \
3051 "Min percentage of heap free after GC to avoid expansion") \ 3079 "The minimum percentage of heap free after GC to avoid expansion")\
3052 \ 3080 \
3053 product(uintx, MaxHeapFreeRatio, 70, \ 3081 product(uintx, MaxHeapFreeRatio, 70, \
3054 "Max percentage of heap free after GC to avoid shrinking") \ 3082 "The maximum percentage of heap free after GC to avoid shrinking")\
3055 \ 3083 \
3056 product(intx, SoftRefLRUPolicyMSPerMB, 1000, \ 3084 product(intx, SoftRefLRUPolicyMSPerMB, 1000, \
3057 "Number of milliseconds per MB of free space in the heap") \ 3085 "Number of milliseconds per MB of free space in the heap") \
3058 \ 3086 \
3059 product(uintx, MinHeapDeltaBytes, ScaleForWordSize(128*K), \ 3087 product(uintx, MinHeapDeltaBytes, ScaleForWordSize(128*K), \
3060 "Min change in heap space due to GC (in bytes)") \ 3088 "The minimum change in heap space due to GC (in bytes)") \
3061 \ 3089 \
3062 product(uintx, MinMetaspaceExpansion, ScaleForWordSize(256*K), \ 3090 product(uintx, MinMetaspaceExpansion, ScaleForWordSize(256*K), \
3063 "Min expansion of Metaspace (in bytes)") \ 3091 "The minimum expansion of Metaspace (in bytes)") \
3064 \ 3092 \
3065 product(uintx, MinMetaspaceFreeRatio, 40, \ 3093 product(uintx, MinMetaspaceFreeRatio, 40, \
3066 "Min percentage of Metaspace free after GC to avoid expansion") \ 3094 "The minimum percentage of Metaspace free after GC to avoid " \
3095 "expansion") \
3067 \ 3096 \
3068 product(uintx, MaxMetaspaceFreeRatio, 70, \ 3097 product(uintx, MaxMetaspaceFreeRatio, 70, \
3069 "Max percentage of Metaspace free after GC to avoid shrinking") \ 3098 "The maximum percentage of Metaspace free after GC to avoid " \
3099 "shrinking") \
3070 \ 3100 \
3071 product(uintx, MaxMetaspaceExpansion, ScaleForWordSize(4*M), \ 3101 product(uintx, MaxMetaspaceExpansion, ScaleForWordSize(4*M), \
3072 "Max expansion of Metaspace without full GC (in bytes)") \ 3102 "The maximum expansion of Metaspace without full GC (in bytes)") \
3073 \ 3103 \
3074 product(uintx, QueuedAllocationWarningCount, 0, \ 3104 product(uintx, QueuedAllocationWarningCount, 0, \
3075 "Number of times an allocation that queues behind a GC " \ 3105 "Number of times an allocation that queues behind a GC " \
3076 "will retry before printing a warning") \ 3106 "will retry before printing a warning") \
3077 \ 3107 \
3089 \ 3119 \
3090 product(uintx, TargetSurvivorRatio, 50, \ 3120 product(uintx, TargetSurvivorRatio, 50, \
3091 "Desired percentage of survivor space used after scavenge") \ 3121 "Desired percentage of survivor space used after scavenge") \
3092 \ 3122 \
3093 product(uintx, MarkSweepDeadRatio, 5, \ 3123 product(uintx, MarkSweepDeadRatio, 5, \
3094 "Percentage (0-100) of the old gen allowed as dead wood." \ 3124 "Percentage (0-100) of the old gen allowed as dead wood. " \
3095 "Serial mark sweep treats this as both the min and max value." \ 3125 "Serial mark sweep treats this as both the minimum and maximum " \
3096 "CMS uses this value only if it falls back to mark sweep." \ 3126 "value. " \
3097 "Par compact uses a variable scale based on the density of the" \ 3127 "CMS uses this value only if it falls back to mark sweep. " \
3098 "generation and treats this as the max value when the heap is" \ 3128 "Par compact uses a variable scale based on the density of the " \
3099 "either completely full or completely empty. Par compact also" \ 3129 "generation and treats this as the maximum value when the heap " \
3100 "has a smaller default value; see arguments.cpp.") \ 3130 "is either completely full or completely empty. Par compact " \
3131 "also has a smaller default value; see arguments.cpp.") \
3101 \ 3132 \
3102 product(uintx, MarkSweepAlwaysCompactCount, 4, \ 3133 product(uintx, MarkSweepAlwaysCompactCount, 4, \
3103 "How often should we fully compact the heap (ignoring the dead " \ 3134 "How often should we fully compact the heap (ignoring the dead " \
3104 "space parameters)") \ 3135 "space parameters)") \
3105 \ 3136 \
3114 \ 3145 \
3115 product(intx, PrintFLSCensus, 0, \ 3146 product(intx, PrintFLSCensus, 0, \
3116 "Census for CMS' FreeListSpace") \ 3147 "Census for CMS' FreeListSpace") \
3117 \ 3148 \
3118 develop(uintx, GCExpandToAllocateDelayMillis, 0, \ 3149 develop(uintx, GCExpandToAllocateDelayMillis, 0, \
3119 "Delay in ms between expansion and allocation") \ 3150 "Delay between expansion and allocation (in milliseconds)") \
3120 \ 3151 \
3121 develop(uintx, GCWorkerDelayMillis, 0, \ 3152 develop(uintx, GCWorkerDelayMillis, 0, \
3122 "Delay in ms in scheduling GC workers") \ 3153 "Delay in scheduling GC workers (in milliseconds)") \
3123 \ 3154 \
3124 product(intx, DeferThrSuspendLoopCount, 4000, \ 3155 product(intx, DeferThrSuspendLoopCount, 4000, \
3125 "(Unstable) Number of times to iterate in safepoint loop " \ 3156 "(Unstable) Number of times to iterate in safepoint loop " \
3126 " before blocking VM threads ") \ 3157 "before blocking VM threads ") \
3127 \ 3158 \
3128 product(intx, DeferPollingPageLoopCount, -1, \ 3159 product(intx, DeferPollingPageLoopCount, -1, \
3129 "(Unsafe,Unstable) Number of iterations in safepoint loop " \ 3160 "(Unsafe,Unstable) Number of iterations in safepoint loop " \
3130 "before changing safepoint polling page to RO ") \ 3161 "before changing safepoint polling page to RO ") \
3131 \ 3162 \
3132 product(intx, SafepointSpinBeforeYield, 2000, "(Unstable)") \ 3163 product(intx, SafepointSpinBeforeYield, 2000, "(Unstable)") \
3133 \ 3164 \
3134 product(bool, PSChunkLargeArrays, true, \ 3165 product(bool, PSChunkLargeArrays, true, \
3135 "true: process large arrays in chunks") \ 3166 "Process large arrays in chunks") \
3136 \ 3167 \
3137 product(uintx, GCDrainStackTargetSize, 64, \ 3168 product(uintx, GCDrainStackTargetSize, 64, \
3138 "how many entries we'll try to leave on the stack during " \ 3169 "Number of entries we will try to leave on the stack " \
3139 "parallel GC") \ 3170 "during parallel gc") \
3140 \ 3171 \
3141 /* stack parameters */ \ 3172 /* stack parameters */ \
3142 product_pd(intx, StackYellowPages, \ 3173 product_pd(intx, StackYellowPages, \
3143 "Number of yellow zone (recoverable overflows) pages") \ 3174 "Number of yellow zone (recoverable overflows) pages") \
3144 \ 3175 \
3145 product_pd(intx, StackRedPages, \ 3176 product_pd(intx, StackRedPages, \
3146 "Number of red zone (unrecoverable overflows) pages") \ 3177 "Number of red zone (unrecoverable overflows) pages") \
3147 \ 3178 \
3148 product_pd(intx, StackShadowPages, \ 3179 product_pd(intx, StackShadowPages, \
3149 "Number of shadow zone (for overflow checking) pages" \ 3180 "Number of shadow zone (for overflow checking) pages " \
3150 " this should exceed the depth of the VM and native call stack") \ 3181 "this should exceed the depth of the VM and native call stack") \
3151 \ 3182 \
3152 product_pd(intx, ThreadStackSize, \ 3183 product_pd(intx, ThreadStackSize, \
3153 "Thread Stack Size (in Kbytes)") \ 3184 "Thread Stack Size (in Kbytes)") \
3154 \ 3185 \
3155 product_pd(intx, VMThreadStackSize, \ 3186 product_pd(intx, VMThreadStackSize, \
3185 \ 3216 \
3186 product_pd(uintx, ReservedCodeCacheSize, \ 3217 product_pd(uintx, ReservedCodeCacheSize, \
3187 "Reserved code cache size (in bytes) - maximum code cache size") \ 3218 "Reserved code cache size (in bytes) - maximum code cache size") \
3188 \ 3219 \
3189 product(uintx, CodeCacheMinimumFreeSpace, 500*K, \ 3220 product(uintx, CodeCacheMinimumFreeSpace, 500*K, \
3190 "When less than X space left, we stop compiling.") \ 3221 "When less than X space left, we stop compiling") \
3191 \ 3222 \
3192 product_pd(uintx, CodeCacheExpansionSize, \ 3223 product_pd(uintx, CodeCacheExpansionSize, \
3193 "Code cache expansion size (in bytes)") \ 3224 "Code cache expansion size (in bytes)") \
3194 \ 3225 \
3195 develop_pd(uintx, CodeCacheMinBlockLength, \ 3226 develop_pd(uintx, CodeCacheMinBlockLength, \
3196 "Minimum number of segments in a code cache block.") \ 3227 "Minimum number of segments in a code cache block") \
3197 \ 3228 \
3198 notproduct(bool, ExitOnFullCodeCache, false, \ 3229 notproduct(bool, ExitOnFullCodeCache, false, \
3199 "Exit the VM if we fill the code cache.") \ 3230 "Exit the VM if we fill the code cache") \
3200 \ 3231 \
3201 product(bool, UseCodeCacheFlushing, true, \ 3232 product(bool, UseCodeCacheFlushing, true, \
3202 "Attempt to clean the code cache before shutting off compiler") \ 3233 "Attempt to clean the code cache before shutting off compiler") \
3203 \ 3234 \
3204 product(intx, MinCodeCacheFlushingInterval, 30, \ 3235 product(intx, MinCodeCacheFlushingInterval, 30, \
3205 "Min number of seconds between code cache cleaning sessions") \ 3236 "Minimum number of seconds between code cache cleaning sessions") \
3206 \ 3237 \
3207 product(uintx, CodeCacheFlushingMinimumFreeSpace, 1500*K, \ 3238 product(uintx, CodeCacheFlushingMinimumFreeSpace, 1500*K, \
3208 "When less than X space left, start code cache cleaning") \ 3239 "When less than X space left, start code cache cleaning") \
3209 \ 3240 \
3210 product(uintx, CodeCacheFlushingFraction, 2, \ 3241 product(uintx, CodeCacheFlushingFraction, 2, \
3214 develop(intx, BinarySwitchThreshold, 5, \ 3245 develop(intx, BinarySwitchThreshold, 5, \
3215 "Minimal number of lookupswitch entries for rewriting to binary " \ 3246 "Minimal number of lookupswitch entries for rewriting to binary " \
3216 "switch") \ 3247 "switch") \
3217 \ 3248 \
3218 develop(intx, StopInterpreterAt, 0, \ 3249 develop(intx, StopInterpreterAt, 0, \
3219 "Stops interpreter execution at specified bytecode number") \ 3250 "Stop interpreter execution at specified bytecode number") \
3220 \ 3251 \
3221 develop(intx, TraceBytecodesAt, 0, \ 3252 develop(intx, TraceBytecodesAt, 0, \
3222 "Traces bytecodes starting with specified bytecode number") \ 3253 "Trace bytecodes starting with specified bytecode number") \
3223 \ 3254 \
3224 /* compiler interface */ \ 3255 /* compiler interface */ \
3225 develop(intx, CIStart, 0, \ 3256 develop(intx, CIStart, 0, \
3226 "the id of the first compilation to permit") \ 3257 "The id of the first compilation to permit") \
3227 \ 3258 \
3228 develop(intx, CIStop, -1, \ 3259 develop(intx, CIStop, -1, \
3229 "the id of the last compilation to permit") \ 3260 "The id of the last compilation to permit") \
3230 \ 3261 \
3231 develop(intx, CIStartOSR, 0, \ 3262 develop(intx, CIStartOSR, 0, \
3232 "the id of the first osr compilation to permit " \ 3263 "The id of the first osr compilation to permit " \
3233 "(CICountOSR must be on)") \ 3264 "(CICountOSR must be on)") \
3234 \ 3265 \
3235 develop(intx, CIStopOSR, -1, \ 3266 develop(intx, CIStopOSR, -1, \
3236 "the id of the last osr compilation to permit " \ 3267 "The id of the last osr compilation to permit " \
3237 "(CICountOSR must be on)") \ 3268 "(CICountOSR must be on)") \
3238 \ 3269 \
3239 develop(intx, CIBreakAtOSR, -1, \ 3270 develop(intx, CIBreakAtOSR, -1, \
3240 "id of osr compilation to break at") \ 3271 "The id of osr compilation to break at") \
3241 \ 3272 \
3242 develop(intx, CIBreakAt, -1, \ 3273 develop(intx, CIBreakAt, -1, \
3243 "id of compilation to break at") \ 3274 "The id of compilation to break at") \
3244 \ 3275 \
3245 product(ccstrlist, CompileOnly, "", \ 3276 product(ccstrlist, CompileOnly, "", \
3246 "List of methods (pkg/class.name) to restrict compilation to") \ 3277 "List of methods (pkg/class.name) to restrict compilation to") \
3247 \ 3278 \
3248 product(ccstr, CompileCommandFile, NULL, \ 3279 product(ccstr, CompileCommandFile, NULL, \
3257 product(ccstr, ReplayDataFile, NULL, \ 3288 product(ccstr, ReplayDataFile, NULL, \
3258 "File containing compilation replay information" \ 3289 "File containing compilation replay information" \
3259 "[default: ./replay_pid%p.log] (%p replaced with pid)") \ 3290 "[default: ./replay_pid%p.log] (%p replaced with pid)") \
3260 \ 3291 \
3261 develop(intx, ReplaySuppressInitializers, 2, \ 3292 develop(intx, ReplaySuppressInitializers, 2, \
3262 "Controls handling of class initialization during replay" \ 3293 "Control handling of class initialization during replay: " \
3263 "0 - don't do anything special" \ 3294 "0 - don't do anything special; " \
3264 "1 - treat all class initializers as empty" \ 3295 "1 - treat all class initializers as empty; " \
3265 "2 - treat class initializers for application classes as empty" \ 3296 "2 - treat class initializers for application classes as empty; " \
3266 "3 - allow all class initializers to run during bootstrap but" \ 3297 "3 - allow all class initializers to run during bootstrap but " \
3267 " pretend they are empty after starting replay") \ 3298 " pretend they are empty after starting replay") \
3268 \ 3299 \
3269 develop(bool, ReplayIgnoreInitErrors, false, \ 3300 develop(bool, ReplayIgnoreInitErrors, false, \
3270 "Ignore exceptions thrown during initialization for replay") \ 3301 "Ignore exceptions thrown during initialization for replay") \
3271 \ 3302 \
3290 \ 3321 \
3291 product(intx, ThreadPriorityPolicy, 0, \ 3322 product(intx, ThreadPriorityPolicy, 0, \
3292 "0 : Normal. "\ 3323 "0 : Normal. "\
3293 " VM chooses priorities that are appropriate for normal "\ 3324 " VM chooses priorities that are appropriate for normal "\
3294 " applications. On Solaris NORM_PRIORITY and above are mapped "\ 3325 " applications. On Solaris NORM_PRIORITY and above are mapped "\
3295 " to normal native priority. Java priorities below NORM_PRIORITY"\ 3326 " to normal native priority. Java priorities below " \
3296 " map to lower native priority values. On Windows applications"\ 3327 " NORM_PRIORITY map to lower native priority values. On "\
3297 " are allowed to use higher native priorities. However, with "\ 3328 " Windows applications are allowed to use higher native "\
3298 " ThreadPriorityPolicy=0, VM will not use the highest possible"\ 3329 " priorities. However, with ThreadPriorityPolicy=0, VM will "\
3299 " native priority, THREAD_PRIORITY_TIME_CRITICAL, as it may "\ 3330 " not use the highest possible native priority, "\
3300 " interfere with system threads. On Linux thread priorities "\ 3331 " THREAD_PRIORITY_TIME_CRITICAL, as it may interfere with "\
3301 " are ignored because the OS does not support static priority "\ 3332 " system threads. On Linux thread priorities are ignored "\
3302 " in SCHED_OTHER scheduling class which is the only choice for"\ 3333 " because the OS does not support static priority in "\
3334 " SCHED_OTHER scheduling class which is the only choice for "\
3303 " non-root, non-realtime applications. "\ 3335 " non-root, non-realtime applications. "\
3304 "1 : Aggressive. "\ 3336 "1 : Aggressive. "\
3305 " Java thread priorities map over to the entire range of "\ 3337 " Java thread priorities map over to the entire range of "\
3306 " native thread priorities. Higher Java thread priorities map "\ 3338 " native thread priorities. Higher Java thread priorities map "\
3307 " to higher native thread priorities. This policy should be "\ 3339 " to higher native thread priorities. This policy should be "\
3328 "(Solaris only) Give compiler threads an extra quanta") \ 3360 "(Solaris only) Give compiler threads an extra quanta") \
3329 \ 3361 \
3330 product(bool, VMThreadHintNoPreempt, false, \ 3362 product(bool, VMThreadHintNoPreempt, false, \
3331 "(Solaris only) Give VM thread an extra quanta") \ 3363 "(Solaris only) Give VM thread an extra quanta") \
3332 \ 3364 \
3333 product(intx, JavaPriority1_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3365 product(intx, JavaPriority1_To_OSPriority, -1, \
3334 product(intx, JavaPriority2_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3366 "Map Java priorities to OS priorities") \
3335 product(intx, JavaPriority3_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3367 \
3336 product(intx, JavaPriority4_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3368 product(intx, JavaPriority2_To_OSPriority, -1, \
3337 product(intx, JavaPriority5_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3369 "Map Java priorities to OS priorities") \
3338 product(intx, JavaPriority6_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3370 \
3339 product(intx, JavaPriority7_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3371 product(intx, JavaPriority3_To_OSPriority, -1, \
3340 product(intx, JavaPriority8_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3372 "Map Java priorities to OS priorities") \
3341 product(intx, JavaPriority9_To_OSPriority, -1, "Map Java priorities to OS priorities") \ 3373 \
3342 product(intx, JavaPriority10_To_OSPriority,-1, "Map Java priorities to OS priorities") \ 3374 product(intx, JavaPriority4_To_OSPriority, -1, \
3375 "Map Java priorities to OS priorities") \
3376 \
3377 product(intx, JavaPriority5_To_OSPriority, -1, \
3378 "Map Java priorities to OS priorities") \
3379 \
3380 product(intx, JavaPriority6_To_OSPriority, -1, \
3381 "Map Java priorities to OS priorities") \
3382 \
3383 product(intx, JavaPriority7_To_OSPriority, -1, \
3384 "Map Java priorities to OS priorities") \
3385 \
3386 product(intx, JavaPriority8_To_OSPriority, -1, \
3387 "Map Java priorities to OS priorities") \
3388 \
3389 product(intx, JavaPriority9_To_OSPriority, -1, \
3390 "Map Java priorities to OS priorities") \
3391 \
3392 product(intx, JavaPriority10_To_OSPriority,-1, \
3393 "Map Java priorities to OS priorities") \
3343 \ 3394 \
3344 experimental(bool, UseCriticalJavaThreadPriority, false, \ 3395 experimental(bool, UseCriticalJavaThreadPriority, false, \
3345 "Java thread priority 10 maps to critical scheduling priority") \ 3396 "Java thread priority 10 maps to critical scheduling priority") \
3346 \ 3397 \
3347 experimental(bool, UseCriticalCompilerThreadPriority, false, \ 3398 experimental(bool, UseCriticalCompilerThreadPriority, false, \
3368 /* Background Compilation */ \ 3419 /* Background Compilation */ \
3369 develop(intx, LongCompileThreshold, 50, \ 3420 develop(intx, LongCompileThreshold, 50, \
3370 "Used with +TraceLongCompiles") \ 3421 "Used with +TraceLongCompiles") \
3371 \ 3422 \
3372 product(intx, StarvationMonitorInterval, 200, \ 3423 product(intx, StarvationMonitorInterval, 200, \
3373 "Pause between each check in ms") \ 3424 "Pause between each check (in milliseconds)") \
3374 \ 3425 \
3375 /* recompilation */ \ 3426 /* recompilation */ \
3376 product_pd(intx, CompileThreshold, \ 3427 product_pd(intx, CompileThreshold, \
3377 "number of interpreted method invocations before (re-)compiling") \ 3428 "number of interpreted method invocations before (re-)compiling") \
3378 \ 3429 \
3379 product_pd(intx, BackEdgeThreshold, \ 3430 product_pd(intx, BackEdgeThreshold, \
3380 "Interpreter Back edge threshold at which an OSR compilation is invoked")\ 3431 "Interpreter Back edge threshold at which an OSR compilation is " \
3432 "invoked") \
3381 \ 3433 \
3382 product(intx, Tier0InvokeNotifyFreqLog, 7, \ 3434 product(intx, Tier0InvokeNotifyFreqLog, 7, \
3383 "Interpreter (tier 0) invocation notification frequency.") \ 3435 "Interpreter (tier 0) invocation notification frequency") \
3384 \ 3436 \
3385 product(intx, Tier2InvokeNotifyFreqLog, 11, \ 3437 product(intx, Tier2InvokeNotifyFreqLog, 11, \
3386 "C1 without MDO (tier 2) invocation notification frequency.") \ 3438 "C1 without MDO (tier 2) invocation notification frequency") \
3387 \ 3439 \
3388 product(intx, Tier3InvokeNotifyFreqLog, 10, \ 3440 product(intx, Tier3InvokeNotifyFreqLog, 10, \
3389 "C1 with MDO profiling (tier 3) invocation notification " \ 3441 "C1 with MDO profiling (tier 3) invocation notification " \
3390 "frequency.") \ 3442 "frequency") \
3391 \ 3443 \
3392 product(intx, Tier23InlineeNotifyFreqLog, 20, \ 3444 product(intx, Tier23InlineeNotifyFreqLog, 20, \
3393 "Inlinee invocation (tiers 2 and 3) notification frequency") \ 3445 "Inlinee invocation (tiers 2 and 3) notification frequency") \
3394 \ 3446 \
3395 product(intx, Tier0BackedgeNotifyFreqLog, 10, \ 3447 product(intx, Tier0BackedgeNotifyFreqLog, 10, \
3396 "Interpreter (tier 0) invocation notification frequency.") \ 3448 "Interpreter (tier 0) invocation notification frequency") \
3397 \ 3449 \
3398 product(intx, Tier2BackedgeNotifyFreqLog, 14, \ 3450 product(intx, Tier2BackedgeNotifyFreqLog, 14, \
3399 "C1 without MDO (tier 2) invocation notification frequency.") \ 3451 "C1 without MDO (tier 2) invocation notification frequency") \
3400 \ 3452 \
3401 product(intx, Tier3BackedgeNotifyFreqLog, 13, \ 3453 product(intx, Tier3BackedgeNotifyFreqLog, 13, \
3402 "C1 with MDO profiling (tier 3) invocation notification " \ 3454 "C1 with MDO profiling (tier 3) invocation notification " \
3403 "frequency.") \ 3455 "frequency") \
3404 \ 3456 \
3405 product(intx, Tier2CompileThreshold, 0, \ 3457 product(intx, Tier2CompileThreshold, 0, \
3406 "threshold at which tier 2 compilation is invoked") \ 3458 "threshold at which tier 2 compilation is invoked") \
3407 \ 3459 \
3408 product(intx, Tier2BackEdgeThreshold, 0, \ 3460 product(intx, Tier2BackEdgeThreshold, 0, \
3415 product(intx, Tier3MinInvocationThreshold, 100, \ 3467 product(intx, Tier3MinInvocationThreshold, 100, \
3416 "Minimum invocation to compile at tier 3") \ 3468 "Minimum invocation to compile at tier 3") \
3417 \ 3469 \
3418 product(intx, Tier3CompileThreshold, 2000, \ 3470 product(intx, Tier3CompileThreshold, 2000, \
3419 "Threshold at which tier 3 compilation is invoked (invocation " \ 3471 "Threshold at which tier 3 compilation is invoked (invocation " \
3420 "minimum must be satisfied.") \ 3472 "minimum must be satisfied") \
3421 \ 3473 \
3422 product(intx, Tier3BackEdgeThreshold, 60000, \ 3474 product(intx, Tier3BackEdgeThreshold, 60000, \
3423 "Back edge threshold at which tier 3 OSR compilation is invoked") \ 3475 "Back edge threshold at which tier 3 OSR compilation is invoked") \
3424 \ 3476 \
3425 product(intx, Tier4InvocationThreshold, 5000, \ 3477 product(intx, Tier4InvocationThreshold, 5000, \
3429 product(intx, Tier4MinInvocationThreshold, 600, \ 3481 product(intx, Tier4MinInvocationThreshold, 600, \
3430 "Minimum invocation to compile at tier 4") \ 3482 "Minimum invocation to compile at tier 4") \
3431 \ 3483 \
3432 product(intx, Tier4CompileThreshold, 15000, \ 3484 product(intx, Tier4CompileThreshold, 15000, \
3433 "Threshold at which tier 4 compilation is invoked (invocation " \ 3485 "Threshold at which tier 4 compilation is invoked (invocation " \
3434 "minimum must be satisfied.") \ 3486 "minimum must be satisfied") \
3435 \ 3487 \
3436 product(intx, Tier4BackEdgeThreshold, 40000, \ 3488 product(intx, Tier4BackEdgeThreshold, 40000, \
3437 "Back edge threshold at which tier 4 OSR compilation is invoked") \ 3489 "Back edge threshold at which tier 4 OSR compilation is invoked") \
3438 \ 3490 \
3439 product(intx, Tier3DelayOn, 5, \ 3491 product(intx, Tier3DelayOn, 5, \
3458 \ 3510 \
3459 product(intx, TieredStopAtLevel, 4, \ 3511 product(intx, TieredStopAtLevel, 4, \
3460 "Stop at given compilation level") \ 3512 "Stop at given compilation level") \
3461 \ 3513 \
3462 product(intx, Tier0ProfilingStartPercentage, 200, \ 3514 product(intx, Tier0ProfilingStartPercentage, 200, \
3463 "Start profiling in interpreter if the counters exceed tier 3" \ 3515 "Start profiling in interpreter if the counters exceed tier 3 " \
3464 "thresholds by the specified percentage") \ 3516 "thresholds by the specified percentage") \
3465 \ 3517 \
3466 product(uintx, IncreaseFirstTierCompileThresholdAt, 50, \ 3518 product(uintx, IncreaseFirstTierCompileThresholdAt, 50, \
3467 "Increase the compile threshold for C1 compilation if the code" \ 3519 "Increase the compile threshold for C1 compilation if the code " \
3468 "cache is filled by the specified percentage.") \ 3520 "cache is filled by the specified percentage") \
3469 \ 3521 \
3470 product(intx, TieredRateUpdateMinTime, 1, \ 3522 product(intx, TieredRateUpdateMinTime, 1, \
3471 "Minimum rate sampling interval (in milliseconds)") \ 3523 "Minimum rate sampling interval (in milliseconds)") \
3472 \ 3524 \
3473 product(intx, TieredRateUpdateMaxTime, 25, \ 3525 product(intx, TieredRateUpdateMaxTime, 25, \
3478 \ 3530 \
3479 product(bool, PrintTieredEvents, false, \ 3531 product(bool, PrintTieredEvents, false, \
3480 "Print tiered events notifications") \ 3532 "Print tiered events notifications") \
3481 \ 3533 \
3482 product_pd(intx, OnStackReplacePercentage, \ 3534 product_pd(intx, OnStackReplacePercentage, \
3483 "NON_TIERED number of method invocations/branches (expressed as %"\ 3535 "NON_TIERED number of method invocations/branches (expressed as " \
3484 "of CompileThreshold) before (re-)compiling OSR code") \ 3536 "% of CompileThreshold) before (re-)compiling OSR code") \
3485 \ 3537 \
3486 product(intx, InterpreterProfilePercentage, 33, \ 3538 product(intx, InterpreterProfilePercentage, 33, \
3487 "NON_TIERED number of method invocations/branches (expressed as %"\ 3539 "NON_TIERED number of method invocations/branches (expressed as " \
3488 "of CompileThreshold) before profiling in the interpreter") \ 3540 "% of CompileThreshold) before profiling in the interpreter") \
3489 \ 3541 \
3490 develop(intx, MaxRecompilationSearchLength, 10, \ 3542 develop(intx, MaxRecompilationSearchLength, 10, \
3491 "max. # frames to inspect searching for recompilee") \ 3543 "The maximum number of frames to inspect when searching for " \
3544 "recompilee") \
3492 \ 3545 \
3493 develop(intx, MaxInterpretedSearchLength, 3, \ 3546 develop(intx, MaxInterpretedSearchLength, 3, \
3494 "max. # interp. frames to skip when searching for recompilee") \ 3547 "The maximum number of interpreted frames to skip when searching "\
3548 "for recompilee") \
3495 \ 3549 \
3496 develop(intx, DesiredMethodLimit, 8000, \ 3550 develop(intx, DesiredMethodLimit, 8000, \
3497 "desired max. method size (in bytecodes) after inlining") \ 3551 "The desired maximum method size (in bytecodes) after inlining") \
3498 \ 3552 \
3499 develop(intx, HugeMethodLimit, 8000, \ 3553 develop(intx, HugeMethodLimit, 8000, \
3500 "don't compile methods larger than this if " \ 3554 "Don't compile methods larger than this if " \
3501 "+DontCompileHugeMethods") \ 3555 "+DontCompileHugeMethods") \
3502 \ 3556 \
3503 /* New JDK 1.4 reflection implementation */ \ 3557 /* New JDK 1.4 reflection implementation */ \
3504 \ 3558 \
3505 develop(bool, UseNewReflection, true, \ 3559 develop(bool, UseNewReflection, true, \
3517 product(bool, ReflectionWrapResolutionErrors, true, \ 3571 product(bool, ReflectionWrapResolutionErrors, true, \
3518 "Temporary flag for transition to AbstractMethodError wrapped " \ 3572 "Temporary flag for transition to AbstractMethodError wrapped " \
3519 "in InvocationTargetException. See 6531596") \ 3573 "in InvocationTargetException. See 6531596") \
3520 \ 3574 \
3521 develop(bool, VerifyLambdaBytecodes, false, \ 3575 develop(bool, VerifyLambdaBytecodes, false, \
3522 "Force verification of jdk 8 lambda metafactory bytecodes.") \ 3576 "Force verification of jdk 8 lambda metafactory bytecodes") \
3523 \ 3577 \
3524 develop(intx, FastSuperclassLimit, 8, \ 3578 develop(intx, FastSuperclassLimit, 8, \
3525 "Depth of hardwired instanceof accelerator array") \ 3579 "Depth of hardwired instanceof accelerator array") \
3526 \ 3580 \
3527 /* Properties for Java libraries */ \ 3581 /* Properties for Java libraries */ \
3541 "Testing Only: Use the new version while testing") \ 3595 "Testing Only: Use the new version while testing") \
3542 \ 3596 \
3543 /* flags for performance data collection */ \ 3597 /* flags for performance data collection */ \
3544 \ 3598 \
3545 product(bool, UsePerfData, falseInEmbedded, \ 3599 product(bool, UsePerfData, falseInEmbedded, \
3546 "Flag to disable jvmstat instrumentation for performance testing" \ 3600 "Flag to disable jvmstat instrumentation for performance testing "\
3547 "and problem isolation purposes.") \ 3601 "and problem isolation purposes") \
3548 \ 3602 \
3549 product(bool, PerfDataSaveToFile, false, \ 3603 product(bool, PerfDataSaveToFile, false, \
3550 "Save PerfData memory to hsperfdata_<pid> file on exit") \ 3604 "Save PerfData memory to hsperfdata_<pid> file on exit") \
3551 \ 3605 \
3552 product(ccstr, PerfDataSaveFile, NULL, \ 3606 product(ccstr, PerfDataSaveFile, NULL, \
3553 "Save PerfData memory to the specified absolute pathname," \ 3607 "Save PerfData memory to the specified absolute pathname. " \
3554 "%p in the file name if present will be replaced by pid") \ 3608 "The string %p in the file name (if present) " \
3555 \ 3609 "will be replaced by pid") \
3556 product(intx, PerfDataSamplingInterval, 50 /*ms*/, \ 3610 \
3557 "Data sampling interval in milliseconds") \ 3611 product(intx, PerfDataSamplingInterval, 50, \
3612 "Data sampling interval (in milliseconds)") \
3558 \ 3613 \
3559 develop(bool, PerfTraceDataCreation, false, \ 3614 develop(bool, PerfTraceDataCreation, false, \
3560 "Trace creation of Performance Data Entries") \ 3615 "Trace creation of Performance Data Entries") \
3561 \ 3616 \
3562 develop(bool, PerfTraceMemOps, false, \ 3617 develop(bool, PerfTraceMemOps, false, \
3577 \ 3632 \
3578 product(bool, PerfBypassFileSystemCheck, false, \ 3633 product(bool, PerfBypassFileSystemCheck, false, \
3579 "Bypass Win32 file system criteria checks (Windows Only)") \ 3634 "Bypass Win32 file system criteria checks (Windows Only)") \
3580 \ 3635 \
3581 product(intx, UnguardOnExecutionViolation, 0, \ 3636 product(intx, UnguardOnExecutionViolation, 0, \
3582 "Unguard page and retry on no-execute fault (Win32 only)" \ 3637 "Unguard page and retry on no-execute fault (Win32 only) " \
3583 "0=off, 1=conservative, 2=aggressive") \ 3638 "0=off, 1=conservative, 2=aggressive") \
3584 \ 3639 \
3585 /* Serviceability Support */ \ 3640 /* Serviceability Support */ \
3586 \ 3641 \
3587 product(bool, ManagementServer, false, \ 3642 product(bool, ManagementServer, false, \
3588 "Create JMX Management Server") \ 3643 "Create JMX Management Server") \
3589 \ 3644 \
3590 product(bool, DisableAttachMechanism, false, \ 3645 product(bool, DisableAttachMechanism, false, \
3591 "Disable mechanism that allows tools to attach to this VM") \ 3646 "Disable mechanism that allows tools to attach to this VM") \
3592 \ 3647 \
3593 product(bool, StartAttachListener, false, \ 3648 product(bool, StartAttachListener, false, \
3594 "Always start Attach Listener at VM startup") \ 3649 "Always start Attach Listener at VM startup") \
3595 \ 3650 \
3596 manageable(bool, PrintConcurrentLocks, false, \ 3651 manageable(bool, PrintConcurrentLocks, false, \
3609 \ 3664 \
3610 product(bool, RequireSharedSpaces, false, \ 3665 product(bool, RequireSharedSpaces, false, \
3611 "Require shared spaces for metadata") \ 3666 "Require shared spaces for metadata") \
3612 \ 3667 \
3613 product(bool, DumpSharedSpaces, false, \ 3668 product(bool, DumpSharedSpaces, false, \
3614 "Special mode: JVM reads a class list, loads classes, builds " \ 3669 "Special mode: JVM reads a class list, loads classes, builds " \
3615 "shared spaces, and dumps the shared spaces to a file to be " \ 3670 "shared spaces, and dumps the shared spaces to a file to be " \
3616 "used in future JVM runs.") \ 3671 "used in future JVM runs") \
3617 \ 3672 \
3618 product(bool, PrintSharedSpaces, false, \ 3673 product(bool, PrintSharedSpaces, false, \
3619 "Print usage of shared spaces") \ 3674 "Print usage of shared spaces") \
3620 \ 3675 \
3621 product(uintx, SharedReadWriteSize, NOT_LP64(12*M) LP64_ONLY(16*M), \ 3676 product(uintx, SharedReadWriteSize, NOT_LP64(12*M) LP64_ONLY(16*M), \
3684 \ 3739 \
3685 product(bool, RelaxAccessControlCheck, false, \ 3740 product(bool, RelaxAccessControlCheck, false, \
3686 "Relax the access control checks in the verifier") \ 3741 "Relax the access control checks in the verifier") \
3687 \ 3742 \
3688 diagnostic(bool, PrintDTraceDOF, false, \ 3743 diagnostic(bool, PrintDTraceDOF, false, \
3689 "Print the DTrace DOF passed to the system for JSDT probes") \ 3744 "Print the DTrace DOF passed to the system for JSDT probes") \
3690 \ 3745 \
3691 product(uintx, StringTableSize, defaultStringTableSize, \ 3746 product(uintx, StringTableSize, defaultStringTableSize, \
3692 "Number of buckets in the interned String table") \ 3747 "Number of buckets in the interned String table") \
3693 \ 3748 \
3694 develop(bool, TraceDefaultMethods, false, \ 3749 develop(bool, TraceDefaultMethods, false, \
3697 develop(bool, VerifyGenericSignatures, false, \ 3752 develop(bool, VerifyGenericSignatures, false, \
3698 "Abort VM on erroneous or inconsistent generic signatures") \ 3753 "Abort VM on erroneous or inconsistent generic signatures") \
3699 \ 3754 \
3700 product(bool, UseVMInterruptibleIO, false, \ 3755 product(bool, UseVMInterruptibleIO, false, \
3701 "(Unstable, Solaris-specific) Thread interrupt before or with " \ 3756 "(Unstable, Solaris-specific) Thread interrupt before or with " \
3702 "EINTR for I/O operations results in OS_INTRPT. The default value"\ 3757 "EINTR for I/O operations results in OS_INTRPT. The default " \
3703 " of this flag is true for JDK 6 and earlier") \ 3758 "value of this flag is true for JDK 6 and earlier") \
3704 \ 3759 \
3705 diagnostic(bool, WhiteBoxAPI, false, \ 3760 diagnostic(bool, WhiteBoxAPI, false, \
3706 "Enable internal testing APIs") \ 3761 "Enable internal testing APIs") \
3707 \ 3762 \
3708 product(bool, PrintGCCause, true, \ 3763 product(bool, PrintGCCause, true, \
3719 "Allocation less than this value will be allocated " \ 3774 "Allocation less than this value will be allocated " \
3720 "using malloc. Larger allocations will use mmap.") \ 3775 "using malloc. Larger allocations will use mmap.") \
3721 \ 3776 \
3722 product(bool, EnableTracing, false, \ 3777 product(bool, EnableTracing, false, \
3723 "Enable event-based tracing") \ 3778 "Enable event-based tracing") \
3779 \
3724 product(bool, UseLockedTracing, false, \ 3780 product(bool, UseLockedTracing, false, \
3725 "Use locked-tracing when doing event-based tracing") 3781 "Use locked-tracing when doing event-based tracing")
3726 3782
3727 3783
3728 /* 3784 /*