src/share/vm/runtime/arguments.cpp

Print this page
rev 4655 : 8014765: VM exits if MaxTenuringThreshold is set below the default InitialTenuringThreshold, and InitialTenuringThreshold is not set
Summary: The VM exits when the condition in the subject line applies. The fix sets InitialTenuringThreshold to MaxTenuringThreshold if it is larger than MaxTenuringThreshold and InitialTenuringThreshold has not been set (is default).
Reviewed-by: jwilhelm, jmasa, brutisson


3027   // This must be done after all -D arguments have been processed.
3028   scp_p->expand_endorsed();
3029 
3030   if (scp_assembly_required || scp_p->get_endorsed() != NULL) {
3031     // Assemble the bootclasspath elements into the final path.
3032     Arguments::set_sysclasspath(scp_p->combined_path());
3033   }
3034 
3035   // This must be done after all arguments have been processed.
3036   // java_compiler() true means set to "NONE" or empty.
3037   if (java_compiler() && !xdebug_mode()) {
3038     // For backwards compatibility, we switch to interpreted mode if
3039     // -Djava.compiler="NONE" or "" is specified AND "-Xdebug" was
3040     // not specified.
3041     set_mode_flags(_int);
3042   }
3043   if (CompileThreshold == 0) {
3044     set_mode_flags(_int);
3045   }
3046 





3047 #ifndef COMPILER2
3048   // Don't degrade server performance for footprint
3049   if (FLAG_IS_DEFAULT(UseLargePages) &&
3050       MaxHeapSize < LargePageHeapSizeThreshold) {
3051     // No need for large granularity pages w/small heaps.
3052     // Note that large pages are enabled/disabled for both the
3053     // Java heap and the code cache.
3054     FLAG_SET_DEFAULT(UseLargePages, false);
3055     SOLARIS_ONLY(FLAG_SET_DEFAULT(UseMPSS, false));
3056     SOLARIS_ONLY(FLAG_SET_DEFAULT(UseISM, false));
3057   }
3058 
3059   // Tiered compilation is undefined with C1.
3060   TieredCompilation = false;
3061 #else
3062   if (!FLAG_IS_DEFAULT(OptoLoopAlignment) && FLAG_IS_DEFAULT(MaxLoopPad)) {
3063     FLAG_SET_DEFAULT(MaxLoopPad, OptoLoopAlignment-1);
3064   }
3065 #endif
3066 




3027   // This must be done after all -D arguments have been processed.
3028   scp_p->expand_endorsed();
3029 
3030   if (scp_assembly_required || scp_p->get_endorsed() != NULL) {
3031     // Assemble the bootclasspath elements into the final path.
3032     Arguments::set_sysclasspath(scp_p->combined_path());
3033   }
3034 
3035   // This must be done after all arguments have been processed.
3036   // java_compiler() true means set to "NONE" or empty.
3037   if (java_compiler() && !xdebug_mode()) {
3038     // For backwards compatibility, we switch to interpreted mode if
3039     // -Djava.compiler="NONE" or "" is specified AND "-Xdebug" was
3040     // not specified.
3041     set_mode_flags(_int);
3042   }
3043   if (CompileThreshold == 0) {
3044     set_mode_flags(_int);
3045   }
3046 
3047   // eventually fix up InitialTenuringThreshold if only MaxTenuringThreshold is set
3048   if (FLAG_IS_DEFAULT(InitialTenuringThreshold) && (InitialTenuringThreshold > MaxTenuringThreshold)) {
3049     FLAG_SET_ERGO(uintx, InitialTenuringThreshold, MaxTenuringThreshold);
3050   }
3051 
3052 #ifndef COMPILER2
3053   // Don't degrade server performance for footprint
3054   if (FLAG_IS_DEFAULT(UseLargePages) &&
3055       MaxHeapSize < LargePageHeapSizeThreshold) {
3056     // No need for large granularity pages w/small heaps.
3057     // Note that large pages are enabled/disabled for both the
3058     // Java heap and the code cache.
3059     FLAG_SET_DEFAULT(UseLargePages, false);
3060     SOLARIS_ONLY(FLAG_SET_DEFAULT(UseMPSS, false));
3061     SOLARIS_ONLY(FLAG_SET_DEFAULT(UseISM, false));
3062   }
3063 
3064   // Tiered compilation is undefined with C1.
3065   TieredCompilation = false;
3066 #else
3067   if (!FLAG_IS_DEFAULT(OptoLoopAlignment) && FLAG_IS_DEFAULT(MaxLoopPad)) {
3068     FLAG_SET_DEFAULT(MaxLoopPad, OptoLoopAlignment-1);
3069   }
3070 #endif
3071