src/hotspot/share/services/memTracker.cpp
changeset 52581 d402a406bbc3
parent 51308 acf02a6f369e
child 52877 9e041366c764
equal deleted inserted replaced
52580:73f6a850a62f 52581:d402a406bbc3
    22  *
    22  *
    23  */
    23  */
    24 #include "precompiled.hpp"
    24 #include "precompiled.hpp"
    25 #include "jvm.h"
    25 #include "jvm.h"
    26 
    26 
    27 #include "runtime/mutex.hpp"
       
    28 #include "runtime/orderAccess.hpp"
    27 #include "runtime/orderAccess.hpp"
    29 #include "runtime/vmThread.hpp"
    28 #include "runtime/vmThread.hpp"
    30 #include "runtime/vm_operations.hpp"
    29 #include "runtime/vm_operations.hpp"
    31 #include "services/memBaseline.hpp"
    30 #include "services/memBaseline.hpp"
    32 #include "services/memReporter.hpp"
    31 #include "services/memReporter.hpp"
    48 
    47 
    49 volatile NMT_TrackingLevel MemTracker::_tracking_level = NMT_unknown;
    48 volatile NMT_TrackingLevel MemTracker::_tracking_level = NMT_unknown;
    50 NMT_TrackingLevel MemTracker::_cmdline_tracking_level = NMT_unknown;
    49 NMT_TrackingLevel MemTracker::_cmdline_tracking_level = NMT_unknown;
    51 
    50 
    52 MemBaseline MemTracker::_baseline;
    51 MemBaseline MemTracker::_baseline;
    53 Mutex*      MemTracker::_query_lock = NULL;
       
    54 bool MemTracker::_is_nmt_env_valid = true;
    52 bool MemTracker::_is_nmt_env_valid = true;
    55 
    53 
    56 static const size_t buffer_size = 64;
    54 static const size_t buffer_size = 64;
    57 
    55 
    58 NMT_TrackingLevel MemTracker::init_tracking_level() {
    56 NMT_TrackingLevel MemTracker::init_tracking_level() {
    96   if (level >= NMT_summary) {
    94   if (level >= NMT_summary) {
    97     if (!VirtualMemoryTracker::late_initialize(level)) {
    95     if (!VirtualMemoryTracker::late_initialize(level)) {
    98       shutdown();
    96       shutdown();
    99       return;
    97       return;
   100     }
    98     }
   101     _query_lock = new (std::nothrow) Mutex(Monitor::max_nonleaf, "NMT_queryLock");
       
   102     // Already OOM. It is unlikely, but still have to handle it.
       
   103     if (_query_lock == NULL) {
       
   104       shutdown();
       
   105     }
       
   106   }
    99   }
   107 }
   100 }
   108 
   101 
   109 bool MemTracker::check_launcher_nmt_support(const char* value) {
   102 bool MemTracker::check_launcher_nmt_support(const char* value) {
   110   if (strcmp(value, "=detail") == 0) {
   103   if (strcmp(value, "=detail") == 0) {