298 { "UsePermISM", JDK_Version::jdk(8), JDK_Version::jdk(9) }, |
298 { "UsePermISM", JDK_Version::jdk(8), JDK_Version::jdk(9) }, |
299 { "UseMPSS", JDK_Version::jdk(8), JDK_Version::jdk(9) }, |
299 { "UseMPSS", JDK_Version::jdk(8), JDK_Version::jdk(9) }, |
300 { "UseStringCache", JDK_Version::jdk(8), JDK_Version::jdk(9) }, |
300 { "UseStringCache", JDK_Version::jdk(8), JDK_Version::jdk(9) }, |
301 { "UseOldInlining", JDK_Version::jdk(9), JDK_Version::jdk(10) }, |
301 { "UseOldInlining", JDK_Version::jdk(9), JDK_Version::jdk(10) }, |
302 { "AutoShutdownNMT", JDK_Version::jdk(9), JDK_Version::jdk(10) }, |
302 { "AutoShutdownNMT", JDK_Version::jdk(9), JDK_Version::jdk(10) }, |
|
303 { "CompilationRepeat", JDK_Version::jdk(8), JDK_Version::jdk(9) }, |
303 #ifdef PRODUCT |
304 #ifdef PRODUCT |
304 { "DesiredMethodLimit", |
305 { "DesiredMethodLimit", |
305 JDK_Version::jdk_update(7, 2), JDK_Version::jdk(8) }, |
306 JDK_Version::jdk_update(7, 2), JDK_Version::jdk(8) }, |
306 #endif // PRODUCT |
307 #endif // PRODUCT |
307 { NULL, JDK_Version(0), JDK_Version(0) } |
308 { NULL, JDK_Version(0), JDK_Version(0) } |
1142 Tier3InvokeNotifyFreqLog = 0; |
1143 Tier3InvokeNotifyFreqLog = 0; |
1143 Tier4InvocationThreshold = 0; |
1144 Tier4InvocationThreshold = 0; |
1144 } |
1145 } |
1145 } |
1146 } |
1146 |
1147 |
|
1148 /** |
|
1149 * Returns the minimum number of compiler threads needed to run the JVM. The following |
|
1150 * configurations are possible. |
|
1151 * |
|
1152 * 1) The JVM is build using an interpreter only. As a result, the minimum number of |
|
1153 * compiler threads is 0. |
|
1154 * 2) The JVM is build using the compiler(s) and tiered compilation is disabled. As |
|
1155 * a result, either C1 or C2 is used, so the minimum number of compiler threads is 1. |
|
1156 * 3) The JVM is build using the compiler(s) and tiered compilation is enabled. However, |
|
1157 * the option "TieredStopAtLevel < CompLevel_full_optimization". As a result, only |
|
1158 * C1 can be used, so the minimum number of compiler threads is 1. |
|
1159 * 4) The JVM is build using the compilers and tiered compilation is enabled. The option |
|
1160 * 'TieredStopAtLevel = CompLevel_full_optimization' (the default value). As a result, |
|
1161 * the minimum number of compiler threads is 2. |
|
1162 */ |
|
1163 int Arguments::get_min_number_of_compiler_threads() { |
|
1164 #if !defined(COMPILER1) && !defined(COMPILER2) && !defined(SHARK) |
|
1165 return 0; // case 1 |
|
1166 #else |
|
1167 if (!TieredCompilation || (TieredStopAtLevel < CompLevel_full_optimization)) { |
|
1168 return 1; // case 2 or case 3 |
|
1169 } |
|
1170 return 2; // case 4 (tiered) |
|
1171 #endif |
|
1172 } |
|
1173 |
1147 #if INCLUDE_ALL_GCS |
1174 #if INCLUDE_ALL_GCS |
1148 static void disable_adaptive_size_policy(const char* collector_name) { |
1175 static void disable_adaptive_size_policy(const char* collector_name) { |
1149 if (UseAdaptiveSizePolicy) { |
1176 if (UseAdaptiveSizePolicy) { |
1150 if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) { |
1177 if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) { |
1151 warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.", |
1178 warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.", |
2458 } |
2485 } |
2459 |
2486 |
2460 #ifdef COMPILER1 |
2487 #ifdef COMPILER1 |
2461 status &= verify_interval(SafepointPollOffset, 0, os::vm_page_size() - BytesPerWord, "SafepointPollOffset"); |
2488 status &= verify_interval(SafepointPollOffset, 0, os::vm_page_size() - BytesPerWord, "SafepointPollOffset"); |
2462 #endif |
2489 #endif |
|
2490 |
|
2491 int min_number_of_compiler_threads = get_min_number_of_compiler_threads(); |
|
2492 // The default CICompilerCount's value is CI_COMPILER_COUNT. |
|
2493 assert(min_number_of_compiler_threads <= CI_COMPILER_COUNT, "minimum should be less or equal default number"); |
|
2494 // Check the minimum number of compiler threads |
|
2495 status &=verify_min_value(CICompilerCount, min_number_of_compiler_threads, "CICompilerCount"); |
2463 |
2496 |
2464 return status; |
2497 return status; |
2465 } |
2498 } |
2466 |
2499 |
2467 bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore, |
2500 bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore, |
3615 // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed. |
3648 // If flag "-XX:Flags=flags-file" is used it will be the first option to be processed. |
3616 const char* hotspotrc = ".hotspotrc"; |
3649 const char* hotspotrc = ".hotspotrc"; |
3617 bool settings_file_specified = false; |
3650 bool settings_file_specified = false; |
3618 bool needs_hotspotrc_warning = false; |
3651 bool needs_hotspotrc_warning = false; |
3619 |
3652 |
|
3653 ArgumentsExt::process_options(args); |
|
3654 |
3620 const char* flags_file; |
3655 const char* flags_file; |
3621 int index; |
3656 int index; |
3622 for (index = 0; index < args->nOptions; index++) { |
3657 for (index = 0; index < args->nOptions; index++) { |
3623 const JavaVMOption *option = args->options + index; |
3658 const JavaVMOption *option = args->options + index; |
3624 if (match_option(option, "-XX:Flags=", &tail)) { |
3659 if (match_option(option, "-XX:Flags=", &tail)) { |