equal
deleted
inserted
replaced
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) { |