7116730: Revert 7116481: Commercial features in Hotspot must be gated by a switch
Revert 7116481 to current hsx/hotspot-main Reviewed-by: kamg
This commit is contained in:
parent
1372b916ff
commit
5e1d1487de
@ -46,8 +46,8 @@
|
||||
|
||||
RUNTIME_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, \
|
||||
MATERIALIZE_PRODUCT_FLAG, MATERIALIZE_PD_PRODUCT_FLAG, \
|
||||
MATERIALIZE_COMMERCIAL_FLAG, MATERIALIZE_DIAGNOSTIC_FLAG, \
|
||||
MATERIALIZE_EXPERIMENTAL_FLAG, MATERIALIZE_NOTPRODUCT_FLAG, \
|
||||
MATERIALIZE_DIAGNOSTIC_FLAG, MATERIALIZE_EXPERIMENTAL_FLAG, \
|
||||
MATERIALIZE_NOTPRODUCT_FLAG, \
|
||||
MATERIALIZE_MANAGEABLE_FLAG, MATERIALIZE_PRODUCT_RW_FLAG, \
|
||||
MATERIALIZE_LP64_PRODUCT_FLAG)
|
||||
|
||||
@ -56,16 +56,13 @@ RUNTIME_OS_FLAGS(MATERIALIZE_DEVELOPER_FLAG, MATERIALIZE_PD_DEVELOPER_FLAG, \
|
||||
MATERIALIZE_DIAGNOSTIC_FLAG, MATERIALIZE_NOTPRODUCT_FLAG)
|
||||
|
||||
bool Flag::is_unlocker() const {
|
||||
return strcmp(name, "UnlockCommercialVMOptions") == 0 ||
|
||||
strcmp(name, "UnlockDiagnosticVMOptions") == 0 ||
|
||||
return strcmp(name, "UnlockDiagnosticVMOptions") == 0 ||
|
||||
strcmp(name, "UnlockExperimentalVMOptions") == 0;
|
||||
|
||||
}
|
||||
|
||||
bool Flag::is_unlocked() const {
|
||||
if (strcmp(kind, "{commercial}") == 0) {
|
||||
return UnlockCommercialVMOptions;
|
||||
} else if (strcmp(kind, "{diagnostic}") == 0) {
|
||||
if (strcmp(kind, "{diagnostic}") == 0) {
|
||||
if (strcmp(name, "EnableInvokeDynamic") == 0 && UnlockExperimentalVMOptions && !UnlockDiagnosticVMOptions) {
|
||||
// transitional logic to allow tests to run until they are changed
|
||||
static int warned;
|
||||
@ -168,7 +165,6 @@ void Flag::print_as_flag(outputStream* st) {
|
||||
|
||||
#define RUNTIME_PRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{product}", DEFAULT },
|
||||
#define RUNTIME_PD_PRODUCT_FLAG_STRUCT(type, name, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{pd product}", DEFAULT },
|
||||
#define RUNTIME_COMMERCIAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{commercial}", DEFAULT },
|
||||
#define RUNTIME_DIAGNOSTIC_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{diagnostic}", DEFAULT },
|
||||
#define RUNTIME_EXPERIMENTAL_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{experimental}", DEFAULT },
|
||||
#define RUNTIME_MANAGEABLE_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, NOT_PRODUCT_ARG(doc) "{manageable}", DEFAULT },
|
||||
@ -231,7 +227,7 @@ void Flag::print_as_flag(outputStream* st) {
|
||||
#endif
|
||||
|
||||
static Flag flagTable[] = {
|
||||
RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_COMMERCIAL_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_EXPERIMENTAL_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT, RUNTIME_MANAGEABLE_FLAG_STRUCT, RUNTIME_PRODUCT_RW_FLAG_STRUCT, RUNTIME_LP64_PRODUCT_FLAG_STRUCT)
|
||||
RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_EXPERIMENTAL_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT, RUNTIME_MANAGEABLE_FLAG_STRUCT, RUNTIME_PRODUCT_RW_FLAG_STRUCT, RUNTIME_LP64_PRODUCT_FLAG_STRUCT)
|
||||
RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT)
|
||||
#ifndef SERIALGC
|
||||
G1_FLAGS(RUNTIME_DEVELOP_FLAG_STRUCT, RUNTIME_PD_DEVELOP_FLAG_STRUCT, RUNTIME_PRODUCT_FLAG_STRUCT, RUNTIME_PD_PRODUCT_FLAG_STRUCT, RUNTIME_DIAGNOSTIC_FLAG_STRUCT, RUNTIME_EXPERIMENTAL_FLAG_STRUCT, RUNTIME_NOTPRODUCT_FLAG_STRUCT, RUNTIME_MANAGEABLE_FLAG_STRUCT, RUNTIME_PRODUCT_RW_FLAG_STRUCT)
|
||||
@ -261,8 +257,8 @@ Flag* Flag::find_flag(char* name, size_t length) {
|
||||
for (Flag* current = &flagTable[0]; current->name; current++) {
|
||||
if (str_equal(current->name, name, length)) {
|
||||
if (!(current->is_unlocked() || current->is_unlocker())) {
|
||||
// disable use of commercial, diagnostic or experimental
|
||||
// flags until they are explicitly unlocked
|
||||
// disable use of diagnostic or experimental flags until they
|
||||
// are explicitly unlocked
|
||||
return NULL;
|
||||
}
|
||||
return current;
|
||||
|
@ -373,7 +373,7 @@ class CommandLineFlags {
|
||||
// The type "ccstr" is an alias for "const char*" and is used
|
||||
// only in this file, because the macrology requires single-token type names.
|
||||
|
||||
// Note: Diagnostic options are not meant for VM tuning or for product modes.
|
||||
// Note: Diagnostic options not meant for VM tuning or for product modes.
|
||||
// They are to be used for VM quality assurance or field diagnosis
|
||||
// of VM bugs. They are hidden so that users will not be encouraged to
|
||||
// try them as if they were VM ordinary execution options. However, they
|
||||
@ -383,12 +383,6 @@ class CommandLineFlags {
|
||||
// option, you must first specify +UnlockDiagnosticVMOptions.
|
||||
// (This master switch also affects the behavior of -Xprintflags.)
|
||||
//
|
||||
//
|
||||
// commercial flags support features for which Oracle charges a fee for
|
||||
// production use, though they're free for development and/or evaluation.
|
||||
// There's no enforcement mechanism in Hotspot other than that
|
||||
// -XX:+UnlockCommercialVMOptions must first be specified in order to use them.
|
||||
//
|
||||
// experimental flags are in support of features that are not
|
||||
// part of the officially supported product, but are available
|
||||
// for experimenting with. They could, for example, be performance
|
||||
@ -434,7 +428,7 @@ class CommandLineFlags {
|
||||
// Note that when there is a need to support develop flags to be writeable,
|
||||
// it can be done in the same way as product_rw.
|
||||
|
||||
#define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, commercial, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product) \
|
||||
#define RUNTIME_FLAGS(develop, develop_pd, product, product_pd, diagnostic, experimental, notproduct, manageable, product_rw, lp64_product) \
|
||||
\
|
||||
lp64_product(bool, UseCompressedOops, false, \
|
||||
"Use 32-bit object references in 64-bit VM. " \
|
||||
@ -468,20 +462,15 @@ class CommandLineFlags {
|
||||
develop(bool, CleanChunkPoolAsync, falseInEmbedded, \
|
||||
"Whether to clean the chunk pool asynchronously") \
|
||||
\
|
||||
/* Temporary: See 6948537 */ \
|
||||
/* Temporary: See 6948537 */ \
|
||||
experimental(bool, UseMemSetInBOT, true, \
|
||||
"(Unstable) uses memset in BOT updates in GC code") \
|
||||
\
|
||||
commercial(bool, UnlockCommercialVMOptions, false, \
|
||||
"Enable normal processing of flags relating to commercial " \
|
||||
"features") \
|
||||
\
|
||||
diagnostic(bool, UnlockDiagnosticVMOptions, trueInDebug, \
|
||||
"Enable normal processing of flags relating to field diagnostics")\
|
||||
\
|
||||
experimental(bool, UnlockExperimentalVMOptions, false, \
|
||||
"Enable normal processing of flags relating to experimental " \
|
||||
"features") \
|
||||
"Enable normal processing of flags relating to experimental features")\
|
||||
\
|
||||
product(bool, JavaMonitorsInStackTrace, true, \
|
||||
"Print info. about Java monitor locks when the stacks are dumped")\
|
||||
@ -589,8 +578,7 @@ class CommandLineFlags {
|
||||
"Verify stack of each thread when it is entering a runtime call") \
|
||||
\
|
||||
diagnostic(bool, ForceUnreachable, false, \
|
||||
"Make all non code cache addresses unreachable by forcing use of "\
|
||||
"64-bit literal fixups") \
|
||||
"Make all non code cache addresses to be unreachable with forcing use of 64bit literal fixups") \
|
||||
\
|
||||
notproduct(bool, StressDerivedPointers, false, \
|
||||
"Force scavenge when a derived pointers is detected on stack " \
|
||||
@ -3864,11 +3852,7 @@ class CommandLineFlags {
|
||||
product(bool, UseVMInterruptibleIO, false, \
|
||||
"(Unstable, Solaris-specific) Thread interrupt before or with " \
|
||||
"EINTR for I/O operations results in OS_INTRPT. The default value"\
|
||||
" of this flag is true for JDK 6 and earlier") \
|
||||
\
|
||||
commercial(bool, FlightRecorder, false, \
|
||||
"Enable Java Flight Recorder")
|
||||
|
||||
" of this flag is true for JDK 6 and earliers")
|
||||
|
||||
/*
|
||||
* Macros for factoring of globals
|
||||
@ -3877,7 +3861,6 @@ class CommandLineFlags {
|
||||
// Interface macros
|
||||
#define DECLARE_PRODUCT_FLAG(type, name, value, doc) extern "C" type name;
|
||||
#define DECLARE_PD_PRODUCT_FLAG(type, name, doc) extern "C" type name;
|
||||
#define DECLARE_COMMERCIAL_FLAG(type, name, value, doc) extern "C" type name;
|
||||
#define DECLARE_DIAGNOSTIC_FLAG(type, name, value, doc) extern "C" type name;
|
||||
#define DECLARE_EXPERIMENTAL_FLAG(type, name, value, doc) extern "C" type name;
|
||||
#define DECLARE_MANAGEABLE_FLAG(type, name, value, doc) extern "C" type name;
|
||||
@ -3901,7 +3884,6 @@ class CommandLineFlags {
|
||||
// Implementation macros
|
||||
#define MATERIALIZE_PRODUCT_FLAG(type, name, value, doc) type name = value;
|
||||
#define MATERIALIZE_PD_PRODUCT_FLAG(type, name, doc) type name = pd_##name;
|
||||
#define MATERIALIZE_COMMERCIAL_FLAG(type, name, value, doc) type name = value;
|
||||
#define MATERIALIZE_DIAGNOSTIC_FLAG(type, name, value, doc) type name = value;
|
||||
#define MATERIALIZE_EXPERIMENTAL_FLAG(type, name, value, doc) type name = value;
|
||||
#define MATERIALIZE_MANAGEABLE_FLAG(type, name, value, doc) type name = value;
|
||||
@ -3921,7 +3903,7 @@ class CommandLineFlags {
|
||||
#define MATERIALIZE_LP64_PRODUCT_FLAG(type, name, value, doc) /* flag is constant */
|
||||
#endif // _LP64
|
||||
|
||||
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)
|
||||
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)
|
||||
|
||||
RUNTIME_OS_FLAGS(DECLARE_DEVELOPER_FLAG, DECLARE_PD_DEVELOPER_FLAG, DECLARE_PRODUCT_FLAG, DECLARE_PD_PRODUCT_FLAG, DECLARE_DIAGNOSTIC_FLAG, DECLARE_NOTPRODUCT_FLAG)
|
||||
|
||||
|
@ -35,7 +35,6 @@
|
||||
|
||||
#define RUNTIME_PRODUCT_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
|
||||
#define RUNTIME_PD_PRODUCT_FLAG_MEMBER(type, name, doc) FLAG_MEMBER(name),
|
||||
#define RUNTIME_COMMERCIAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
|
||||
#define RUNTIME_DIAGNOSTIC_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
|
||||
#define RUNTIME_EXPERIMENTAL_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
|
||||
#define RUNTIME_MANAGEABLE_FLAG_MEMBER(type, name, value, doc) FLAG_MEMBER(name),
|
||||
@ -83,7 +82,7 @@
|
||||
#endif
|
||||
|
||||
typedef enum {
|
||||
RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_COMMERCIAL_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_EXPERIMENTAL_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER, RUNTIME_MANAGEABLE_FLAG_MEMBER, RUNTIME_PRODUCT_RW_FLAG_MEMBER, RUNTIME_LP64_PRODUCT_FLAG_MEMBER)
|
||||
RUNTIME_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_EXPERIMENTAL_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER, RUNTIME_MANAGEABLE_FLAG_MEMBER, RUNTIME_PRODUCT_RW_FLAG_MEMBER, RUNTIME_LP64_PRODUCT_FLAG_MEMBER)
|
||||
RUNTIME_OS_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER)
|
||||
#ifndef KERNEL
|
||||
G1_FLAGS(RUNTIME_DEVELOP_FLAG_MEMBER, RUNTIME_PD_DEVELOP_FLAG_MEMBER, RUNTIME_PRODUCT_FLAG_MEMBER, RUNTIME_PD_PRODUCT_FLAG_MEMBER, RUNTIME_DIAGNOSTIC_FLAG_MEMBER, RUNTIME_EXPERIMENTAL_FLAG_MEMBER, RUNTIME_NOTPRODUCT_FLAG_MEMBER, RUNTIME_MANAGEABLE_FLAG_MEMBER, RUNTIME_PRODUCT_RW_FLAG_MEMBER)
|
||||
@ -103,7 +102,6 @@ typedef enum {
|
||||
|
||||
#define RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
|
||||
#define RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE(type, name, doc) FLAG_MEMBER_WITH_TYPE(name,type),
|
||||
#define RUNTIME_COMMERCIAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
|
||||
#define RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
|
||||
#define RUNTIME_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
|
||||
#define RUNTIME_MANAGEABLE_FLAG_MEMBER_WITH_TYPE(type, name, value, doc) FLAG_MEMBER_WITH_TYPE(name,type),
|
||||
@ -155,7 +153,6 @@ typedef enum {
|
||||
RUNTIME_PD_DEVELOP_FLAG_MEMBER_WITH_TYPE,
|
||||
RUNTIME_PRODUCT_FLAG_MEMBER_WITH_TYPE,
|
||||
RUNTIME_PD_PRODUCT_FLAG_MEMBER_WITH_TYPE,
|
||||
RUNTIME_COMMERCIAL_FLAG_MEMBER_WITH_TYPE,
|
||||
RUNTIME_DIAGNOSTIC_FLAG_MEMBER_WITH_TYPE,
|
||||
RUNTIME_EXPERIMENTAL_FLAG_MEMBER_WITH_TYPE,
|
||||
RUNTIME_NOTPRODUCT_FLAG_MEMBER_WITH_TYPE,
|
||||
|
Loading…
x
Reference in New Issue
Block a user