comparison src/share/vm/runtime/globals.hpp @ 4088:358eca91be48

7116730: Revert 7116481: Commercial features in Hotspot must be gated by a switch Summary: Revert 7116481 to current hsx/hotspot-main Reviewed-by: kamg
author phh
date Wed, 30 Nov 2011 12:48:52 -0500
parents 763f01599ff4
children 1bbf5b6fb7b0 cd00eaeebef6
comparison
equal deleted inserted replaced
4087:763f01599ff4 4088:358eca91be48
371 // A flag must be declared with one of the following types: 371 // A flag must be declared with one of the following types:
372 // bool, intx, uintx, ccstr. 372 // bool, intx, uintx, ccstr.
373 // The type "ccstr" is an alias for "const char*" and is used 373 // The type "ccstr" is an alias for "const char*" and is used
374 // only in this file, because the macrology requires single-token type names. 374 // only in this file, because the macrology requires single-token type names.
375 375
376 // Note: Diagnostic options are not meant for VM tuning or for product modes. 376 // Note: Diagnostic options not meant for VM tuning or for product modes.
377 // They are to be used for VM quality assurance or field diagnosis 377 // They are to be used for VM quality assurance or field diagnosis
378 // of VM bugs. They are hidden so that users will not be encouraged to 378 // of VM bugs. They are hidden so that users will not be encouraged to
379 // try them as if they were VM ordinary execution options. However, they 379 // try them as if they were VM ordinary execution options. However, they
380 // are available in the product version of the VM. Under instruction 380 // are available in the product version of the VM. Under instruction
381 // from support engineers, VM customers can turn them on to collect 381 // from support engineers, VM customers can turn them on to collect
382 // diagnostic information about VM problems. To use a VM diagnostic 382 // diagnostic information about VM problems. To use a VM diagnostic
383 // option, you must first specify +UnlockDiagnosticVMOptions. 383 // option, you must first specify +UnlockDiagnosticVMOptions.
384 // (This master switch also affects the behavior of -Xprintflags.) 384 // (This master switch also affects the behavior of -Xprintflags.)
385 //
386 //
387 // commercial flags support features for which Oracle charges a fee for
388 // production use, though they're free for development and/or evaluation.
389 // There's no enforcement mechanism in Hotspot other than that
390 // -XX:+UnlockCommercialVMOptions must first be specified in order to use them.
391 // 385 //
392 // experimental flags are in support of features that are not 386 // experimental flags are in support of features that are not
393 // part of the officially supported product, but are available 387 // part of the officially supported product, but are available
394 // for experimenting with. They could, for example, be performance 388 // for experimenting with. They could, for example, be performance
395 // features that may not have undergone full or rigorous QA, but which may 389 // features that may not have undergone full or rigorous QA, but which may
432 // and not reuse state related to the flag state at any given time. 426 // and not reuse state related to the flag state at any given time.
433 // 427 //
434 // Note that when there is a need to support develop flags to be writeable, 428 // Note that when there is a need to support develop flags to be writeable,
435 // it can be done in the same way as product_rw. 429 // it can be done in the same way as product_rw.
436 430
437 #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, commercial, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product) \ 431 #define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product) \
438 \ 432 \
439 lp64_product(bool, UseCompressedOops, false, \ 433 lp64_product(bool, UseCompressedOops, false, \
440 "Use 32-bit object references in 64-bit VM. " \ 434 "Use 32-bit object references in 64-bit VM. " \
441 "lp64_product means flag is always constant in 32 bit VM") \ 435 "lp64_product means flag is always constant in 32 bit VM") \
442 \ 436 \
466 "Use lwsync instruction if true, else use slower sync") \ 460 "Use lwsync instruction if true, else use slower sync") \
467 \ 461 \
468 develop(bool, CleanChunkPoolAsync, falseInEmbedded, \ 462 develop(bool, CleanChunkPoolAsync, falseInEmbedded, \
469 "Whether to clean the chunk pool asynchronously") \ 463 "Whether to clean the chunk pool asynchronously") \
470 \ 464 \
471 /* Temporary: See 6948537 */ \ 465 /* Temporary: See 6948537 */ \
472 experimental(bool, UseMemSetInBOT, true, \ 466 experimental(bool, UseMemSetInBOT, true, \
473 "(Unstable) uses memset in BOT updates in GC code") \ 467 "(Unstable) uses memset in BOT updates in GC code") \
474 \ 468 \
475 commercial(bool, UnlockCommercialVMOptions, false, \
476 "Enable normal processing of flags relating to commercial " \
477 "features") \
478 \
479 diagnostic(bool, UnlockDiagnosticVMOptions, trueInDebug, \ 469 diagnostic(bool, UnlockDiagnosticVMOptions, trueInDebug, \
480 "Enable normal processing of flags relating to field diagnostics")\ 470 "Enable normal processing of flags relating to field diagnostics")\
481 \ 471 \
482 experimental(bool, UnlockExperimentalVMOptions, false, \ 472 experimental(bool, UnlockExperimentalVMOptions, false, \
483 "Enable normal processing of flags relating to experimental " \ 473 "Enable normal processing of flags relating to experimental features")\
484 "features") \
485 \ 474 \
486 product(bool, JavaMonitorsInStackTrace, true, \ 475 product(bool, JavaMonitorsInStackTrace, true, \
487 "Print info. about Java monitor locks when the stacks are dumped")\ 476 "Print info. about Java monitor locks when the stacks are dumped")\
488 \ 477 \
489 product_pd(bool, UseLargePages, \ 478 product_pd(bool, UseLargePages, \
587 \ 576 \
588 develop(bool, VerifyStack, false, \ 577 develop(bool, VerifyStack, false, \
589 "Verify stack of each thread when it is entering a runtime call") \ 578 "Verify stack of each thread when it is entering a runtime call") \
590 \ 579 \
591 diagnostic(bool, ForceUnreachable, false, \ 580 diagnostic(bool, ForceUnreachable, false, \
592 "Make all non code cache addresses unreachable by forcing use of "\ 581 "Make all non code cache addresses to be unreachable with forcing use of 64bit literal fixups") \
593 "64-bit literal fixups") \
594 \ 582 \
595 notproduct(bool, StressDerivedPointers, false, \ 583 notproduct(bool, StressDerivedPointers, false, \
596 "Force scavenge when a derived pointers is detected on stack " \ 584 "Force scavenge when a derived pointers is detected on stack " \
597 "after rtm call") \ 585 "after rtm call") \
598 \ 586 \
3862 "Number of buckets in the interned String table") \ 3850 "Number of buckets in the interned String table") \
3863 \ 3851 \
3864 product(bool, UseVMInterruptibleIO, false, \ 3852 product(bool, UseVMInterruptibleIO, false, \
3865 "(Unstable, Solaris-specific) Thread interrupt before or with " \ 3853 "(Unstable, Solaris-specific) Thread interrupt before or with " \
3866 "EINTR for I/O operations results in OS_INTRPT. The default value"\ 3854 "EINTR for I/O operations results in OS_INTRPT. The default value"\
3867 " of this flag is true for JDK 6 and earlier") \ 3855 " of this flag is true for JDK 6 and earliers")
3868 \
3869 commercial(bool, FlightRecorder, false, \
3870 "Enable Java Flight Recorder")
3871
3872 3856
3873 /* 3857 /*
3874 * Macros for factoring of globals 3858 * Macros for factoring of globals
3875 */ 3859 */
3876 3860
3877 // Interface macros 3861 // Interface macros
3878 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name; 3862 #define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
3879 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name; 3863 #define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
3880 #define DECLARE_COMMERCIAL_FLAG(type, name, value, doc) extern "C" type name;
3881 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name; 3864 #define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
3882 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name; 3865 #define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
3883 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name; 3866 #define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
3884 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name; 3867 #define DECLARE_PRODUCT_RW_FLAG(type, name, value, doc) extern "C" type name;
3885 #ifdef PRODUCT 3868 #ifdef PRODUCT
3899 #endif // _LP64 3882 #endif // _LP64
3900 3883
3901 // Implementation macros 3884 // Implementation macros
3902 #define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc) type name = value; 3885 #define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc) type name = value;
3903 #define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc) type name = pd_##name; 3886 #define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc) type name = pd_##name;
3904 #define MATERIALIZE_COMMERCIAL_FLAG(type, name, value, doc) type name = value;
3905 #define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value; 3887 #define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value;
3906 #define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value; 3888 #define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value;
3907 #define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value; 3889 #define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value;
3908 #define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value; 3890 #define MATERIALIZE_PRODUCT_RW_FLAG(type, name, value, doc) type name = value;
3909 #ifdef PRODUCT 3891 #ifdef PRODUCT
3919 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) type name = value; 3901 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) type name = value;
3920 #else 3902 #else
3921 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) /* flag is constant */ 3903 #define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) /* flag is constant */
3922 #endif // _LP64 3904 #endif // _LP64
3923 3905
3924 RUNTIME_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_COMMERCIAL_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG, DECLARE_LP64_PRODUCT_FLAG) 3906 RUNTIME_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_EXPERIMENTAL_FLAG, DECLARE_NOTPRODUCT_FLAG, DECLARE_MANAGEABLE_FLAG, DECLARE_PRODUCT_RW_FLAG, DECLARE_LP64_PRODUCT_FLAG)
3925 3907
3926 RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG) 3908 RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG)
3927 3909
3928 #endif // SHARE_VM_RUNTIME_GLOBALS_HPP 3910 #endif // SHARE_VM_RUNTIME_GLOBALS_HPP