equal
deleted
inserted
replaced
239 if (tracking_level() < NMT_summary) return; |
239 if (tracking_level() < NMT_summary) return; |
240 VirtualMemoryTracker::set_reserved_region_type((address)addr, flag); |
240 VirtualMemoryTracker::set_reserved_region_type((address)addr, flag); |
241 } |
241 } |
242 } |
242 } |
243 |
243 |
|
244 #ifdef _AIX |
|
245 // See JDK-8202772 - temporarily disable thread stack tracking on AIX. |
|
246 static inline void record_thread_stack(void* addr, size_t size) {} |
|
247 static inline void release_thread_stack(void* addr, size_t size) {} |
|
248 #else |
244 static inline void record_thread_stack(void* addr, size_t size) { |
249 static inline void record_thread_stack(void* addr, size_t size) { |
245 if (tracking_level() < NMT_summary) return; |
250 if (tracking_level() < NMT_summary) return; |
246 if (addr != NULL) { |
251 if (addr != NULL) { |
247 // uses thread stack malloc slot for book keeping number of threads |
252 // uses thread stack malloc slot for book keeping number of threads |
248 MallocMemorySummary::record_malloc(0, mtThreadStack); |
253 MallocMemorySummary::record_malloc(0, mtThreadStack); |
258 ThreadCritical tc; |
263 ThreadCritical tc; |
259 if (tracking_level() < NMT_summary) return; |
264 if (tracking_level() < NMT_summary) return; |
260 VirtualMemoryTracker::remove_released_region((address)addr, size); |
265 VirtualMemoryTracker::remove_released_region((address)addr, size); |
261 } |
266 } |
262 } |
267 } |
|
268 #endif |
263 |
269 |
264 // Query lock is used to synchronize the access to tracking data. |
270 // Query lock is used to synchronize the access to tracking data. |
265 // So far, it is only used by JCmd query, but it may be used by |
271 // So far, it is only used by JCmd query, but it may be used by |
266 // other tools. |
272 // other tools. |
267 static inline Mutex* query_lock() { return _query_lock; } |
273 static inline Mutex* query_lock() { return _query_lock; } |