< prev index next >

src/share/vm/runtime/arguments.cpp

Print this page

        

*** 245,269 **** new SystemProperty("java.vm.specification.version", buffer, false)); PropertyList_add(&_system_properties, new SystemProperty("java.vm.vendor", VM_Version::vm_vendor(), false)); } ! /** ! * Provide a slightly more user-friendly way of eliminating -XX flags. ! * When a flag is eliminated, it can be added to this list in order to ! * continue accepting this flag on the command-line, while issuing a warning ! * and ignoring the value. Once the JDK version reaches the 'accept_until' ! * limit, we flatly refuse to admit the existence of the flag. This allows ! * a flag to die correctly over JDK releases using HSX. */ typedef struct { const char* name; ! JDK_Version obsoleted_in; // when the flag went away ! JDK_Version accept_until; // which version to start denying the existence ! } ObsoleteFlag; ! static ObsoleteFlag obsolete_jvm_flags[] = { { "UseTrainGC", JDK_Version::jdk(5), JDK_Version::jdk(7) }, { "UseSpecialLargeObjectHandling", JDK_Version::jdk(5), JDK_Version::jdk(7) }, { "UseOversizedCarHandling", JDK_Version::jdk(5), JDK_Version::jdk(7) }, { "TraceCarAllocation", JDK_Version::jdk(5), JDK_Version::jdk(7) }, { "PrintTrainGCProcessingStats", JDK_Version::jdk(5), JDK_Version::jdk(7) }, --- 245,308 ---- new SystemProperty("java.vm.specification.version", buffer, false)); PropertyList_add(&_system_properties, new SystemProperty("java.vm.vendor", VM_Version::vm_vendor(), false)); } ! /* ! * -XX argument processing: ! * ! * -XX arguments are usually defined in globals.hpp, globals_<cpu>.hpp, globals_<os>.hpp, <compiler>_globals.hpp, or <gc>_globals.hpp. ! * -XX arguments are parsed in parse_argument(). ! * -XX argument bounds checking is done in check_vm_args_consistency(). ! * ! * Over time -XX arguments may change. There are mechanisms to handle common cases: ! * ! * ALIAS: An option may be renamed or replaced by another option. The old name can be supported by adding ! * the old and new option names to the "aliased_jvm_flags" table. Delete the old variable from globals.hpp. ! * This is often part of the process of deprecating a flag, but not all aliases need to be deprecated. ! * ! * DEPRECATED: An option may be supported, but a warning is printed to let the user know that support may be removed ! * in the future. Both regular and aliased options may be deprecated. ! * Add a deprecation warning for an option (or alias) by adding an entry in the "deprecated_jvm_flags" table. ! * Specify the option name, the jdk version that deprecated the option, and the jdk version that will ! * expire the option (if removal has been scheduled). ! * ! * OBSOLETE: An option may be removed (and deleted from globals.hpp), but still be accepted on the command line. ! * A warning is printed to let the user know that support may be removed in the future. ! * Add an obsolete warning for an option (or alias) by adding an entry in the "obsolete_jvm_flags" table. ! * Specify the option name, the jdk version that obsoleted the option, and the jdk version that will ! * expire the option (if removal has been scheduled). ! * ! * EXPIRED: When the current JDK version is equal or greater to the "accept_until" version of a deprecated or obsolete ! * option, the system will flatly refuse to admit the existence of the flag. This allows a flag to die correctly ! * over JDK releases using HSX. ! * Note that manual cleanup of expired options should be done at major JDK version upgrades: ! * - Expired options can be removed from the obsolete_jvm_flags, deprecated_jvm_flags tables, and aliased_jvm_flags tables. ! * - Expired deprecated options may still have global variable definitions that should be removed (in globals.hpp, etc). ! * ! * Tests: Aliases are tested in VMAliasOptions.java. Deprecated options in VMDeprecatedOptions.java. Obsolete options are tested in various files. */ + + // Obsolete or deprecated -XX flag. typedef struct { const char* name; ! JDK_Version obsoleted_in; // When the warning started (obsolete or deprecated). ! JDK_Version accept_until; // Which version to start denying the existence of the flag (if scheduled). ! static const uint8_t _removal_unscheduled = 0; ! ! bool is_removal_scheduled() const { ! return accept_until.major_version() != _removal_unscheduled; ! } ! ! } SpecialFlag; ! ! // When a flag is eliminated, it can be added to this list in order to ! // continue accepting this flag on the command-line, while issuing a warning ! // and ignoring the value. Once the JDK version reaches the 'accept_until' ! // limit, we flatly refuse to admit the existence of the flag. ! static SpecialFlag const obsolete_jvm_flags[] = { { "UseTrainGC", JDK_Version::jdk(5), JDK_Version::jdk(7) }, { "UseSpecialLargeObjectHandling", JDK_Version::jdk(5), JDK_Version::jdk(7) }, { "UseOversizedCarHandling", JDK_Version::jdk(5), JDK_Version::jdk(7) }, { "TraceCarAllocation", JDK_Version::jdk(5), JDK_Version::jdk(7) }, { "PrintTrainGCProcessingStats", JDK_Version::jdk(5), JDK_Version::jdk(7) },
*** 294,304 **** JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) }, { "AllowTransitionalJSR292", JDK_Version::jdk(7), JDK_Version::jdk(8) }, { "UseCompressedStrings", JDK_Version::jdk(7), JDK_Version::jdk(8) }, { "CMSPermGenPrecleaningEnabled", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "CMSTriggerPermRatio", JDK_Version::jdk(8), JDK_Version::jdk(9) }, ! { "CMSInitiatingPermOccupancyFraction", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "AdaptivePermSizeWeight", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "PermGenPadding", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "PermMarkSweepDeadRatio", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "PermSize", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "MaxPermSize", JDK_Version::jdk(8), JDK_Version::jdk(9) }, --- 333,344 ---- JDK_Version::jdk_update(6,27), JDK_Version::jdk(8) }, { "AllowTransitionalJSR292", JDK_Version::jdk(7), JDK_Version::jdk(8) }, { "UseCompressedStrings", JDK_Version::jdk(7), JDK_Version::jdk(8) }, { "CMSPermGenPrecleaningEnabled", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "CMSTriggerPermRatio", JDK_Version::jdk(8), JDK_Version::jdk(9) }, ! { "CMSInitiatingPermOccupancyFraction", ! JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "AdaptivePermSizeWeight", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "PermGenPadding", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "PermMarkSweepDeadRatio", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "PermSize", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "MaxPermSize", JDK_Version::jdk(8), JDK_Version::jdk(9) },
*** 313,324 **** { "UseMPSS", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "UseStringCache", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "UseOldInlining", JDK_Version::jdk(9), JDK_Version::jdk(10) }, { "SafepointPollOffset", JDK_Version::jdk(9), JDK_Version::jdk(10) }, #ifdef PRODUCT ! { "DesiredMethodLimit", ! JDK_Version::jdk_update(7, 2), JDK_Version::jdk(8) }, #endif // PRODUCT { "UseVMInterruptibleIO", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "UseBoundThreads", JDK_Version::jdk(9), JDK_Version::jdk(10) }, { "DefaultThreadPriority", JDK_Version::jdk(9), JDK_Version::jdk(10) }, { "NoYieldsInMicrolock", JDK_Version::jdk(9), JDK_Version::jdk(10) }, --- 353,363 ---- { "UseMPSS", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "UseStringCache", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "UseOldInlining", JDK_Version::jdk(9), JDK_Version::jdk(10) }, { "SafepointPollOffset", JDK_Version::jdk(9), JDK_Version::jdk(10) }, #ifdef PRODUCT ! { "DesiredMethodLimit", JDK_Version::jdk_update(7, 2), JDK_Version::jdk(8) }, #endif // PRODUCT { "UseVMInterruptibleIO", JDK_Version::jdk(8), JDK_Version::jdk(9) }, { "UseBoundThreads", JDK_Version::jdk(9), JDK_Version::jdk(10) }, { "DefaultThreadPriority", JDK_Version::jdk(9), JDK_Version::jdk(10) }, { "NoYieldsInMicrolock", JDK_Version::jdk(9), JDK_Version::jdk(10) },
*** 336,370 **** #endif // ZERO { "UseCompilerSafepoints", JDK_Version::jdk(9), JDK_Version::jdk(10) }, { NULL, JDK_Version(0), JDK_Version(0) } }; ! // Returns true if the flag is obsolete and fits into the range specified ! // for being ignored. In the case that the flag is ignored, the 'version' ! // value is filled in with the version number when the flag became ! // obsolete so that that value can be displayed to the user. ! bool Arguments::is_newly_obsolete(const char *s, JDK_Version* version) { int i = 0; assert(version != NULL, "Must provide a version buffer"); ! while (obsolete_jvm_flags[i].name != NULL) { ! const ObsoleteFlag& flag_status = obsolete_jvm_flags[i]; // <flag>=xxx form // [-|+]<flag> form size_t len = strlen(flag_status.name); if (((strncmp(flag_status.name, s, len) == 0) && (strlen(s) == len)) || ((s[0] == '+' || s[0] == '-') && (strncmp(flag_status.name, &s[1], len) == 0) && (strlen(&s[1]) == len))) { ! if (JDK_Version::current().compare(flag_status.accept_until) == -1) { *version = flag_status.obsoleted_in; ! return true; } } i++; } ! return false; } // Constructs the system class path (aka boot class path) from the following // components, in order: // --- 375,468 ---- #endif // ZERO { "UseCompilerSafepoints", JDK_Version::jdk(9), JDK_Version::jdk(10) }, { NULL, JDK_Version(0), JDK_Version(0) } }; ! // When a flag is deprecated, it can be added to this list in order to issuing a warning when the flag is used. ! // Once the JDK version reaches the 'accept_until' limit, we flatly refuse to admit the existence of the flag. ! static SpecialFlag const deprecated_jvm_flags[] = { ! // deprecated non-alias flags: ! { "MaxGCMinorPauseMillis", JDK_Version::jdk(8), JDK_Version::jdk(SpecialFlag::_removal_unscheduled) }, ! { "UseParNewGC", JDK_Version::jdk(9), JDK_Version::jdk(10) }, ! ! // deprecated alias flags (see also aliased_jvm_flags): ! { "DefaultMaxRAMFraction", JDK_Version::jdk(8), JDK_Version::jdk(SpecialFlag::_removal_unscheduled) }, ! { "CMSMarkStackSizeMax", JDK_Version::jdk(9), JDK_Version::jdk(10) }, ! { "CMSMarkStackSize", JDK_Version::jdk(9), JDK_Version::jdk(10) }, ! { "G1MarkStackSize", JDK_Version::jdk(9), JDK_Version::jdk(10) }, ! { "ParallelMarkingThreads", JDK_Version::jdk(9), JDK_Version::jdk(10) }, ! { "ParallelCMSThreads", JDK_Version::jdk(9), JDK_Version::jdk(10) }, ! { NULL, JDK_Version(0), JDK_Version(0) } ! }; ! ! // Flags that are aliases for other flags. ! typedef struct { ! const char* alias_name; ! const char* real_name; ! } AliasedFlag; ! ! static AliasedFlag const aliased_jvm_flags[] = { ! { "DefaultMaxRAMFraction", "MaxRAMFraction" }, ! { "CMSMarkStackSizeMax", "MarkStackSizeMax" }, ! { "CMSMarkStackSize", "MarkStackSize" }, ! { "G1MarkStackSize", "MarkStackSize" }, ! { "ParallelMarkingThreads", "ConcGCThreads" }, ! { "ParallelCMSThreads", "ConcGCThreads" }, ! { NULL, NULL} ! }; ! ! // Returns 1 if the flag is special and jdk version is in the range specified. ! // In this case the 'version' buffer is filled in with the version number when ! // the flag became special. ! // Returns -1 if the flag is special and has expired (should be ignored). ! // Returns 0 if the flag is not special. ! static int is_special_flag(const SpecialFlag special_table[], const char *s, JDK_Version* version) { int i = 0; assert(version != NULL, "Must provide a version buffer"); ! while (special_table[i].name != NULL) { ! const SpecialFlag& flag_status = special_table[i]; // <flag>=xxx form // [-|+]<flag> form size_t len = strlen(flag_status.name); if (((strncmp(flag_status.name, s, len) == 0) && (strlen(s) == len)) || ((s[0] == '+' || s[0] == '-') && (strncmp(flag_status.name, &s[1], len) == 0) && (strlen(&s[1]) == len))) { ! if (!flag_status.is_removal_scheduled() || ! JDK_Version::current().compare(flag_status.accept_until) == -1) { *version = flag_status.obsoleted_in; ! return 1; ! } else { ! return -1; } } i++; } ! return 0; ! } ! ! bool Arguments::is_newly_obsolete(const char *s, JDK_Version* version) { ! return (is_special_flag(obsolete_jvm_flags, s, version) == 1); ! } ! ! int Arguments::is_deprecated_flag(const char *s, JDK_Version* version) { ! return is_special_flag(deprecated_jvm_flags, s, version); ! } ! ! const char* Arguments::real_flag_name(const char *flag_name) { ! int i = 0; ! while (aliased_jvm_flags[i].alias_name != NULL) { ! const AliasedFlag& flag_status = aliased_jvm_flags[i]; ! size_t len = strlen(flag_status.alias_name); ! if (((strncmp(flag_status.alias_name, flag_name, len) == 0) && ! (strlen(flag_name) == len))) { ! return flag_status.real_name; ! } ! i++; ! } ! return flag_name; } // Constructs the system class path (aka boot class path) from the following // components, in order: //
*** 631,645 **** default: ShouldNotReachHere(); } } ! static bool set_bool_flag(char* name, bool value, Flag::Flags origin) { return CommandLineFlags::boolAtPut(name, &value, origin); } ! static bool set_fp_numeric_flag(char* name, char* value, Flag::Flags origin) { double v; if (sscanf(value, "%lf", &v) != 1) { return false; } --- 729,743 ---- default: ShouldNotReachHere(); } } ! static bool set_bool_flag(const char* name, bool value, Flag::Flags origin) { return CommandLineFlags::boolAtPut(name, &value, origin); } ! static bool set_fp_numeric_flag(const char* name, char* value, Flag::Flags origin) { double v; if (sscanf(value, "%lf", &v) != 1) { return false; }
*** 647,657 **** return true; } return false; } ! static bool set_numeric_flag(char* name, char* value, Flag::Flags origin) { julong v; intx intx_v; bool is_neg = false; // Check the sign first since atomull() parses only unsigned values. if (*value == '-') { --- 745,755 ---- return true; } return false; } ! static bool set_numeric_flag(const char* name, char* value, Flag::Flags origin) { julong v; intx intx_v; bool is_neg = false; // Check the sign first since atomull() parses only unsigned values. if (*value == '-') {
*** 684,701 **** return true; } return false; } ! static bool set_string_flag(char* name, const char* value, Flag::Flags origin) { if (!CommandLineFlags::ccstrAtPut(name, &value, origin)) return false; // Contract: CommandLineFlags always returns a pointer that needs freeing. FREE_C_HEAP_ARRAY(char, value); return true; } ! static bool append_to_string_flag(char* name, const char* new_value, Flag::Flags origin) { const char* old_value = ""; if (!CommandLineFlags::ccstrAt(name, &old_value)) return false; size_t old_len = old_value != NULL ? strlen(old_value) : 0; size_t new_len = strlen(new_value); const char* value; --- 782,799 ---- return true; } return false; } ! static bool set_string_flag(const char* name, const char* value, Flag::Flags origin) { if (!CommandLineFlags::ccstrAtPut(name, &value, origin)) return false; // Contract: CommandLineFlags always returns a pointer that needs freeing. FREE_C_HEAP_ARRAY(char, value); return true; } ! static bool append_to_string_flag(const char* name, const char* new_value, Flag::Flags origin) { const char* old_value = ""; if (!CommandLineFlags::ccstrAt(name, &old_value)) return false; size_t old_len = old_value != NULL ? strlen(old_value) : 0; size_t new_len = strlen(new_value); const char* value;
*** 719,783 **** FREE_C_HEAP_ARRAY(char, free_this_too); } return true; } bool Arguments::parse_argument(const char* arg, Flag::Flags origin) { // range of acceptable characters spelled out for portability reasons #define NAME_RANGE "[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]" #define BUFLEN 255 char name[BUFLEN+1]; char dummy; if (sscanf(arg, "-%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) { ! return set_bool_flag(name, false, origin); } if (sscanf(arg, "+%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) { ! return set_bool_flag(name, true, origin); } char punct; if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "%c", name, &punct) == 2 && punct == '=') { const char* value = strchr(arg, '=') + 1; ! Flag* flag = Flag::find_flag(name, strlen(name)); if (flag != NULL && flag->is_ccstr()) { if (flag->ccstr_accumulates()) { ! return append_to_string_flag(name, value, origin); } else { if (value[0] == '\0') { value = NULL; } ! return set_string_flag(name, value, origin); } } } if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE ":%c", name, &punct) == 2 && punct == '=') { const char* value = strchr(arg, '=') + 1; // -XX:Foo:=xxx will reset the string flag to the given value. if (value[0] == '\0') { value = NULL; } ! return set_string_flag(name, value, origin); } #define SIGNED_FP_NUMBER_RANGE "[-0123456789.]" #define SIGNED_NUMBER_RANGE "[-0123456789]" #define NUMBER_RANGE "[0123456789]" char value[BUFLEN + 1]; char value2[BUFLEN + 1]; if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) SIGNED_NUMBER_RANGE "." "%" XSTR(BUFLEN) NUMBER_RANGE "%c", name, value, value2, &dummy) == 3) { // Looks like a floating-point number -- try again with more lenient format string if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) SIGNED_FP_NUMBER_RANGE "%c", name, value, &dummy) == 2) { ! return set_fp_numeric_flag(name, value, origin); } } #define VALUE_RANGE "[-kmgtxKMGTX0123456789abcdefABCDEF]" if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) VALUE_RANGE "%c", name, value, &dummy) == 2) { ! return set_numeric_flag(name, value, origin); } return false; } --- 817,933 ---- FREE_C_HEAP_ARRAY(char, free_this_too); } return true; } + const char* Arguments::handle_aliases_and_deprecation(const char* arg) { + const char* real_name = real_flag_name(arg); + JDK_Version since = JDK_Version(); + switch (is_deprecated_flag(arg, &since)) { + case -1: + return NULL; + case 0: + return real_name; + case 1: { + char version[256]; + since.to_string(version, sizeof(version)); + if (real_name != arg) { + warning("option %s was deprecated in version %s and will likely be removed in a future release. Use option %s instead.", + arg, version, real_name); + } else { + warning("option %s was deprecated in version %s and will likely be removed in a future release.", + arg, version); + } + return real_name; + } + } + ShouldNotReachHere(); + return NULL; + } + bool Arguments::parse_argument(const char* arg, Flag::Flags origin) { // range of acceptable characters spelled out for portability reasons #define NAME_RANGE "[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]" #define BUFLEN 255 char name[BUFLEN+1]; char dummy; + const char* real_name; if (sscanf(arg, "-%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) { ! real_name = handle_aliases_and_deprecation(name); ! if (real_name == NULL) { ! return NULL; // "name" is a deprecated option that has expired. ! } ! return set_bool_flag(real_name, false, origin); } if (sscanf(arg, "+%" XSTR(BUFLEN) NAME_RANGE "%c", name, &dummy) == 1) { ! real_name = handle_aliases_and_deprecation(name); ! if (real_name == NULL) { ! return NULL; ! } ! return set_bool_flag(real_name, true, origin); } char punct; if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "%c", name, &punct) == 2 && punct == '=') { const char* value = strchr(arg, '=') + 1; ! Flag* flag; ! ! real_name = handle_aliases_and_deprecation(name); ! if (real_name == NULL) { ! return NULL; ! } ! flag = Flag::find_flag(real_name, strlen(real_name)); if (flag != NULL && flag->is_ccstr()) { if (flag->ccstr_accumulates()) { ! return append_to_string_flag(real_name, value, origin); } else { if (value[0] == '\0') { value = NULL; } ! return set_string_flag(real_name, value, origin); } } } if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE ":%c", name, &punct) == 2 && punct == '=') { const char* value = strchr(arg, '=') + 1; // -XX:Foo:=xxx will reset the string flag to the given value. if (value[0] == '\0') { value = NULL; } ! real_name = handle_aliases_and_deprecation(name); ! if (real_name == NULL) { ! return NULL; ! } ! return set_string_flag(real_name, value, origin); } #define SIGNED_FP_NUMBER_RANGE "[-0123456789.]" #define SIGNED_NUMBER_RANGE "[-0123456789]" #define NUMBER_RANGE "[0123456789]" char value[BUFLEN + 1]; char value2[BUFLEN + 1]; if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) SIGNED_NUMBER_RANGE "." "%" XSTR(BUFLEN) NUMBER_RANGE "%c", name, value, value2, &dummy) == 3) { // Looks like a floating-point number -- try again with more lenient format string if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) SIGNED_FP_NUMBER_RANGE "%c", name, value, &dummy) == 2) { ! real_name = handle_aliases_and_deprecation(name); ! if (real_name == NULL) { ! return NULL; ! } ! return set_fp_numeric_flag(real_name, value, origin); } } #define VALUE_RANGE "[-kmgtxKMGTX0123456789abcdefABCDEF]" if (sscanf(arg, "%" XSTR(BUFLEN) NAME_RANGE "=" "%" XSTR(BUFLEN) VALUE_RANGE "%c", name, value, &dummy) == 2) { ! real_name = handle_aliases_and_deprecation(name); ! if (real_name == NULL) { ! return NULL; ! } ! return set_numeric_flag(real_name, value, origin); } return false; }
*** 1742,1752 **** } else if (UseConcMarkSweepGC) { set_cms_and_parnew_gc_flags(); } else if (UseG1GC) { set_g1_gc_flags(); } - check_deprecated_gc_flags(); if (AssumeMP && !UseSerialGC) { if (FLAG_IS_DEFAULT(ParallelGCThreads) && ParallelGCThreads == 1) { warning("If the number of processors is expected to increase from one, then" " you should configure the number of parallel GC threads appropriately" " using -XX:ParallelGCThreads=N"); --- 1892,1901 ----
*** 1772,1786 **** // Use static initialization to get the default before parsing static const uintx DefaultHeapBaseMinAddress = HeapBaseMinAddress; void Arguments::set_heap_size() { - if (!FLAG_IS_DEFAULT(DefaultMaxRAMFraction)) { - // Deprecated flag - FLAG_SET_CMDLINE(uintx, MaxRAMFraction, DefaultMaxRAMFraction); - } - const julong phys_mem = FLAG_IS_DEFAULT(MaxRAM) ? MIN2(os::physical_memory(), (julong)MaxRAM) : (julong)MaxRAM; // If the maximum heap size has not been set with -Xmx, --- 1921,1930 ----
*** 2134,2157 **** } return true; } - void Arguments::check_deprecated_gc_flags() { - if (FLAG_IS_CMDLINE(UseParNewGC)) { - warning("The UseParNewGC flag is deprecated and will likely be removed in a future release"); - } - if (FLAG_IS_CMDLINE(MaxGCMinorPauseMillis)) { - warning("Using MaxGCMinorPauseMillis as minor pause goal is deprecated" - "and will likely be removed in future release"); - } - if (FLAG_IS_CMDLINE(DefaultMaxRAMFraction)) { - warning("DefaultMaxRAMFraction is deprecated and will likely be removed in a future release. " - "Use MaxRAMFraction instead."); - } - } - // Check stack pages settings bool Arguments::check_stack_pages() { bool status = true; status = status && verify_min_value(StackYellowPages, 1, "StackYellowPages"); --- 2278,2287 ----
*** 2384,2394 **** status = status && verify_min_value(ParGCStridesPerThread, 1, "ParGCStridesPerThread"); status = status && verify_min_value(MinRAMFraction, 1, "MinRAMFraction"); status = status && verify_min_value(InitialRAMFraction, 1, "InitialRAMFraction"); status = status && verify_min_value(MaxRAMFraction, 1, "MaxRAMFraction"); - status = status && verify_min_value(DefaultMaxRAMFraction, 1, "DefaultMaxRAMFraction"); status = status && verify_interval(AdaptiveTimeWeight, 0, 100, "AdaptiveTimeWeight"); status = status && verify_min_value(AdaptiveSizeDecrementScaleFactor, 1, "AdaptiveSizeDecrementScaleFactor"); status = status && verify_interval(TLABAllocationWeight, 0, 100, "TLABAllocationWeight"); --- 2514,2523 ----
*** 3221,3270 **** } else if (match_option(option, "-XX:+FullGCALot")) { FLAG_SET_CMDLINE(bool, FullGCALot, true); // disable scavenge before parallel mark-compact FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false); #endif - } else if (match_option(option, "-XX:CMSMarkStackSize=", &tail) || - match_option(option, "-XX:G1MarkStackSize=", &tail)) { - julong stack_size = 0; - ArgsRange errcode = parse_memory_size(tail, &stack_size, 1); - if (errcode != arg_in_range) { - jio_fprintf(defaultStream::error_stream(), - "Invalid mark stack size: %s\n", option->optionString); - describe_range_error(errcode); - return JNI_EINVAL; - } - jio_fprintf(defaultStream::error_stream(), - "Please use -XX:MarkStackSize in place of " - "-XX:CMSMarkStackSize or -XX:G1MarkStackSize in the future\n"); - FLAG_SET_CMDLINE(uintx, MarkStackSize, stack_size); - } else if (match_option(option, "-XX:CMSMarkStackSizeMax=", &tail)) { - julong max_stack_size = 0; - ArgsRange errcode = parse_memory_size(tail, &max_stack_size, 1); - if (errcode != arg_in_range) { - jio_fprintf(defaultStream::error_stream(), - "Invalid maximum mark stack size: %s\n", - option->optionString); - describe_range_error(errcode); - return JNI_EINVAL; - } - jio_fprintf(defaultStream::error_stream(), - "Please use -XX:MarkStackSizeMax in place of " - "-XX:CMSMarkStackSizeMax in the future\n"); - FLAG_SET_CMDLINE(uintx, MarkStackSizeMax, max_stack_size); - } else if (match_option(option, "-XX:ParallelMarkingThreads=", &tail) || - match_option(option, "-XX:ParallelCMSThreads=", &tail)) { - uintx conc_threads = 0; - if (!parse_uintx(tail, &conc_threads, 1)) { - jio_fprintf(defaultStream::error_stream(), - "Invalid concurrent threads: %s\n", option->optionString); - return JNI_EINVAL; - } - jio_fprintf(defaultStream::error_stream(), - "Please use -XX:ConcGCThreads in place of " - "-XX:ParallelMarkingThreads or -XX:ParallelCMSThreads in the future\n"); - FLAG_SET_CMDLINE(uintx, ConcGCThreads, conc_threads); } else if (match_option(option, "-XX:MaxDirectMemorySize=", &tail)) { julong max_direct_memory_size = 0; ArgsRange errcode = parse_memory_size(tail, &max_direct_memory_size, 0); if (errcode != arg_in_range) { jio_fprintf(defaultStream::error_stream(), --- 3350,3359 ----
< prev index next >