< prev index next >

src/hotspot/share/runtime/arguments.cpp

Print this page
*** 1788,11 ***
  static bool patch_mod_javabase = false;
  
  // Check the consistency of vm_init_args
  bool Arguments::check_vm_args_consistency() {
    // This may modify compiler flags. Must be called before CompilerConfig::check_args_consistency()
!   if (!CDSConfig::check_vm_args_consistency(patch_mod_javabase, mode_flag_cmd_line)) {
      return false;
    }
  
    // Method for adding checks for flag consistency.
    // The intent is to warn the user of all possible conflicts,
--- 1788,11 ---
  static bool patch_mod_javabase = false;
  
  // Check the consistency of vm_init_args
  bool Arguments::check_vm_args_consistency() {
    // This may modify compiler flags. Must be called before CompilerConfig::check_args_consistency()
!   if (!CDSConfig::check_vm_args_consistency(patch_mod_javabase, mode_flag_cmd_line, xshare_auto_cmd_line)) {
      return false;
    }
  
    // Method for adding checks for flag consistency.
    // The intent is to warn the user of all possible conflicts,

*** 3884,17 ***
      warning("Disabling UseProfiledLoopPredicate since UseLoopPredicate is turned off.");
      FLAG_SET_ERGO(UseProfiledLoopPredicate, false);
    }
  #endif // COMPILER2
  
!   if (log_is_enabled(Info, perf, class, link)) {
!     if (!UsePerfData) {
!       warning("Disabling -Xlog:perf+class+link since UsePerfData is turned off.");
        LogConfiguration::disable_tags(false, LOG_TAGS(perf, class, link));
        assert(!log_is_enabled(Info, perf, class, link), "sanity");
      }
    }
  
    if (FLAG_IS_CMDLINE(DiagnoseSyncOnValueBasedClasses)) {
      if (DiagnoseSyncOnValueBasedClasses == ObjectSynchronizer::LOG_WARNING && !log_is_enabled(Info, valuebasedclasses)) {
        LogConfiguration::configure_stdout(LogLevel::Info, true, LOG_TAGS(valuebasedclasses));
      }
--- 3884,43 ---
      warning("Disabling UseProfiledLoopPredicate since UseLoopPredicate is turned off.");
      FLAG_SET_ERGO(UseProfiledLoopPredicate, false);
    }
  #endif // COMPILER2
  
!   if (log_is_enabled(Info, init)) {
!     if (FLAG_IS_DEFAULT(ProfileVMLocks)) {
!       FLAG_SET_DEFAULT(ProfileVMLocks, true);
+     }
+     if (UsePerfData && !log_is_enabled(Info, perf, class, link)) {
+       // automatically enable -Xlog:perf+class+link
+       LogConfiguration::configure_stdout(LogLevel::Info, true, LOG_TAGS(perf, class, link));
+     }
+     // Don't turn on ProfileVMCalls and ProfileRuntimeCalls by default.
+   } else {
+     if (!FLAG_IS_DEFAULT(ProfileVMLocks) && ProfileVMLocks) {
+       warning("Disabling ProfileVMLocks since logging is turned off.");
+       FLAG_SET_DEFAULT(ProfileVMLocks, false);
+     }
+     if (!FLAG_IS_DEFAULT(ProfileVMCalls) && ProfileVMCalls) {
+       warning("Disabling ProfileVMCalls since logging is turned off.");
+       FLAG_SET_DEFAULT(ProfileVMCalls, false);
+     }
+     if (!FLAG_IS_DEFAULT(ProfileRuntimeCalls) && ProfileRuntimeCalls) {
+       warning("Disabling ProfileRuntimeCalls since logging is turned off.");
+       FLAG_SET_DEFAULT(ProfileRuntimeCalls, false);
+     }
+     if (log_is_enabled(Info, perf, class, link)) {
+       warning("Disabling -Xlog:perf+class+link since logging is turned off.");
        LogConfiguration::disable_tags(false, LOG_TAGS(perf, class, link));
        assert(!log_is_enabled(Info, perf, class, link), "sanity");
      }
    }
+   if (FLAG_IS_DEFAULT(PerfDataMemorySize)) {
+     if (ProfileVMLocks || ProfileVMCalls || ProfileRuntimeCalls) {
+       FLAG_SET_DEFAULT(PerfDataMemorySize, 128*K); // reserve more space for extra perf counters
+     }
+   }
  
    if (FLAG_IS_CMDLINE(DiagnoseSyncOnValueBasedClasses)) {
      if (DiagnoseSyncOnValueBasedClasses == ObjectSynchronizer::LOG_WARNING && !log_is_enabled(Info, valuebasedclasses)) {
        LogConfiguration::configure_stdout(LogLevel::Info, true, LOG_TAGS(valuebasedclasses));
      }
< prev index next >