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