src/share/vm/runtime/arguments.cpp

Print this page




1109   }
1110 }
1111 
1112 void Arguments::set_tiered_flags() {
1113   // With tiered, set default policy to AdvancedThresholdPolicy, which is 3.
1114   if (FLAG_IS_DEFAULT(CompilationPolicyChoice)) {
1115     FLAG_SET_DEFAULT(CompilationPolicyChoice, 3);
1116   }
1117   if (CompilationPolicyChoice < 2) {
1118     vm_exit_during_initialization(
1119       "Incompatible compilation policy selected", NULL);
1120   }
1121   // Increase the code cache size - tiered compiles a lot more.
1122   if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
1123     FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 5);
1124   }
1125   if (!UseInterpreter) { // -Xcomp
1126     Tier3InvokeNotifyFreqLog = 0;
1127     Tier4InvocationThreshold = 0;
1128   }



1129 }
1130 
1131 #if INCLUDE_ALL_GCS
1132 static void disable_adaptive_size_policy(const char* collector_name) {
1133   if (UseAdaptiveSizePolicy) {
1134     if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) {
1135       warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.",
1136               collector_name);
1137     }
1138     FLAG_SET_DEFAULT(UseAdaptiveSizePolicy, false);
1139   }
1140 }
1141 
1142 void Arguments::set_parnew_gc_flags() {
1143   assert(!UseSerialGC && !UseParallelOldGC && !UseParallelGC && !UseG1GC,
1144          "control point invariant");
1145   assert(UseParNewGC, "Error");
1146 
1147   // Turn off AdaptiveSizePolicy for parnew until it is complete.
1148   disable_adaptive_size_policy("UseParNewGC");


2252                 "Invalid InitialCodeCacheSize=%dK. Must be at least %dK.\n", InitialCodeCacheSize/K,
2253                 os::vm_page_size()/K);
2254     status = false;
2255   } else if (ReservedCodeCacheSize < InitialCodeCacheSize) {
2256     jio_fprintf(defaultStream::error_stream(),
2257                 "Invalid ReservedCodeCacheSize: %dK. Must be at least InitialCodeCacheSize=%dK.\n",
2258                 ReservedCodeCacheSize/K, InitialCodeCacheSize/K);
2259     status = false;
2260   } else if (ReservedCodeCacheSize < min_code_cache_size) {
2261     jio_fprintf(defaultStream::error_stream(),
2262                 "Invalid ReservedCodeCacheSize=%dK. Must be at least %uK.\n", ReservedCodeCacheSize/K,
2263                 min_code_cache_size/K);
2264     status = false;
2265   } else if (ReservedCodeCacheSize > 2*G) {
2266     // Code cache size larger than MAXINT is not supported.
2267     jio_fprintf(defaultStream::error_stream(),
2268                 "Invalid ReservedCodeCacheSize=%dM. Must be at most %uM.\n", ReservedCodeCacheSize/M,
2269                 (2*G)/M);
2270     status = false;
2271   }




2272   return status;
2273 }
2274 
2275 bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore,
2276   const char* option_type) {
2277   if (ignore) return false;
2278 
2279   const char* spacer = " ";
2280   if (option_type == NULL) {
2281     option_type = ++spacer; // Set both to the empty string.
2282   }
2283 
2284   if (os::obsolete_option(option)) {
2285     jio_fprintf(defaultStream::error_stream(),
2286                 "Obsolete %s%soption: %s\n", option_type, spacer,
2287       option->optionString);
2288     return false;
2289   } else {
2290     jio_fprintf(defaultStream::error_stream(),
2291                 "Unrecognized %s%soption: %s\n", option_type, spacer,




1109   }
1110 }
1111 
1112 void Arguments::set_tiered_flags() {
1113   // With tiered, set default policy to AdvancedThresholdPolicy, which is 3.
1114   if (FLAG_IS_DEFAULT(CompilationPolicyChoice)) {
1115     FLAG_SET_DEFAULT(CompilationPolicyChoice, 3);
1116   }
1117   if (CompilationPolicyChoice < 2) {
1118     vm_exit_during_initialization(
1119       "Incompatible compilation policy selected", NULL);
1120   }
1121   // Increase the code cache size - tiered compiles a lot more.
1122   if (FLAG_IS_DEFAULT(ReservedCodeCacheSize)) {
1123     FLAG_SET_DEFAULT(ReservedCodeCacheSize, ReservedCodeCacheSize * 5);
1124   }
1125   if (!UseInterpreter) { // -Xcomp
1126     Tier3InvokeNotifyFreqLog = 0;
1127     Tier4InvocationThreshold = 0;
1128   }
1129   if (FLAG_IS_DEFAULT(NmethodSweepFraction)) {
1130     FLAG_SET_DEFAULT(NmethodSweepFraction, 1 + ReservedCodeCacheSize / (16 * M));
1131   }
1132 }
1133 
1134 #if INCLUDE_ALL_GCS
1135 static void disable_adaptive_size_policy(const char* collector_name) {
1136   if (UseAdaptiveSizePolicy) {
1137     if (FLAG_IS_CMDLINE(UseAdaptiveSizePolicy)) {
1138       warning("disabling UseAdaptiveSizePolicy; it is incompatible with %s.",
1139               collector_name);
1140     }
1141     FLAG_SET_DEFAULT(UseAdaptiveSizePolicy, false);
1142   }
1143 }
1144 
1145 void Arguments::set_parnew_gc_flags() {
1146   assert(!UseSerialGC && !UseParallelOldGC && !UseParallelGC && !UseG1GC,
1147          "control point invariant");
1148   assert(UseParNewGC, "Error");
1149 
1150   // Turn off AdaptiveSizePolicy for parnew until it is complete.
1151   disable_adaptive_size_policy("UseParNewGC");


2255                 "Invalid InitialCodeCacheSize=%dK. Must be at least %dK.\n", InitialCodeCacheSize/K,
2256                 os::vm_page_size()/K);
2257     status = false;
2258   } else if (ReservedCodeCacheSize < InitialCodeCacheSize) {
2259     jio_fprintf(defaultStream::error_stream(),
2260                 "Invalid ReservedCodeCacheSize: %dK. Must be at least InitialCodeCacheSize=%dK.\n",
2261                 ReservedCodeCacheSize/K, InitialCodeCacheSize/K);
2262     status = false;
2263   } else if (ReservedCodeCacheSize < min_code_cache_size) {
2264     jio_fprintf(defaultStream::error_stream(),
2265                 "Invalid ReservedCodeCacheSize=%dK. Must be at least %uK.\n", ReservedCodeCacheSize/K,
2266                 min_code_cache_size/K);
2267     status = false;
2268   } else if (ReservedCodeCacheSize > 2*G) {
2269     // Code cache size larger than MAXINT is not supported.
2270     jio_fprintf(defaultStream::error_stream(),
2271                 "Invalid ReservedCodeCacheSize=%dM. Must be at most %uM.\n", ReservedCodeCacheSize/M,
2272                 (2*G)/M);
2273     status = false;
2274   }
2275 
2276   status &= verify_interval(NmethodSweepFraction, 1, ReservedCodeCacheSize/K, "NmethodSweepFraction");
2277   status &= verify_interval(NmethodSweepActivity, 0, 2000, "NmethodSweepActivity");
2278 
2279   return status;
2280 }
2281 
2282 bool Arguments::is_bad_option(const JavaVMOption* option, jboolean ignore,
2283   const char* option_type) {
2284   if (ignore) return false;
2285 
2286   const char* spacer = " ";
2287   if (option_type == NULL) {
2288     option_type = ++spacer; // Set both to the empty string.
2289   }
2290 
2291   if (os::obsolete_option(option)) {
2292     jio_fprintf(defaultStream::error_stream(),
2293                 "Obsolete %s%soption: %s\n", option_type, spacer,
2294       option->optionString);
2295     return false;
2296   } else {
2297     jio_fprintf(defaultStream::error_stream(),
2298                 "Unrecognized %s%soption: %s\n", option_type, spacer,