src/share/vm/runtime/arguments.cpp

changeset 7074
833b0f92429a
parent 7041
411e30e5fbb8
child 7085
fd4dbaff3002
child 7089
6e0cb14ce59b
     1.1 --- a/src/share/vm/runtime/arguments.cpp	Wed Aug 27 09:36:55 2014 +0200
     1.2 +++ b/src/share/vm/runtime/arguments.cpp	Wed Aug 27 08:19:12 2014 -0400
     1.3 @@ -294,6 +294,7 @@
     1.4    { "UseMPSS",                       JDK_Version::jdk(8), JDK_Version::jdk(9) },
     1.5    { "UseStringCache",                JDK_Version::jdk(8), JDK_Version::jdk(9) },
     1.6    { "UseOldInlining",                JDK_Version::jdk(9), JDK_Version::jdk(10) },
     1.7 +  { "AutoShutdownNMT",               JDK_Version::jdk(9), JDK_Version::jdk(10) },
     1.8  #ifdef PRODUCT
     1.9    { "DesiredMethodLimit",
    1.10                             JDK_Version::jdk_update(7, 2), JDK_Version::jdk(8) },
    1.11 @@ -2343,7 +2344,7 @@
    1.12  
    1.13    if (PrintNMTStatistics) {
    1.14  #if INCLUDE_NMT
    1.15 -    if (MemTracker::tracking_level() == MemTracker::NMT_off) {
    1.16 +    if (MemTracker::tracking_level() == NMT_off) {
    1.17  #endif // INCLUDE_NMT
    1.18        warning("PrintNMTStatistics is disabled, because native memory tracking is not enabled");
    1.19        PrintNMTStatistics = false;
    1.20 @@ -3533,15 +3534,24 @@
    1.21        CommandLineFlags::printFlags(tty, false);
    1.22        vm_exit(0);
    1.23      }
    1.24 +#if INCLUDE_NMT
    1.25      if (match_option(option, "-XX:NativeMemoryTracking", &tail)) {
    1.26 -#if INCLUDE_NMT
    1.27 -      MemTracker::init_tracking_options(tail);
    1.28 -#else
    1.29 -      jio_fprintf(defaultStream::error_stream(),
    1.30 -        "Native Memory Tracking is not supported in this VM\n");
    1.31 -      return JNI_ERR;
    1.32 +      // The launcher did not setup nmt environment variable properly.
    1.33 +//      if (!MemTracker::check_launcher_nmt_support(tail)) {
    1.34 +//        warning("Native Memory Tracking did not setup properly, using wrong launcher?");
    1.35 +//      }
    1.36 +
    1.37 +      // Verify if nmt option is valid.
    1.38 +      if (MemTracker::verify_nmt_option()) {
    1.39 +        // Late initialization, still in single-threaded mode.
    1.40 +        if (MemTracker::tracking_level() >= NMT_summary) {
    1.41 +          MemTracker::init();
    1.42 +        }
    1.43 +      } else {
    1.44 +        vm_exit_during_initialization("Syntax error, expecting -XX:NativeMemoryTracking=[off|summary|detail]", NULL);
    1.45 +      }
    1.46 +    }
    1.47  #endif
    1.48 -    }
    1.49  
    1.50  
    1.51  #ifndef PRODUCT

mercurial