< prev index next >

src/hotspot/share/services/memTracker.hpp

Print this page




 229       ThreadCritical tc;
 230       if (tracking_level() < NMT_summary) return;
 231       VirtualMemoryTracker::add_committed_region((address)addr, size, stack);
 232     }
 233   }
 234 
 235   static inline void record_virtual_memory_type(void* addr, MEMFLAGS flag) {
 236     if (tracking_level() < NMT_summary) return;
 237     if (addr != NULL) {
 238       ThreadCritical tc;
 239       if (tracking_level() < NMT_summary) return;
 240       VirtualMemoryTracker::set_reserved_region_type((address)addr, flag);
 241     }
 242   }
 243 
 244   static inline void record_thread_stack(void* addr, size_t size) {
 245     if (tracking_level() < NMT_summary) return;
 246     if (addr != NULL) {
 247       // uses thread stack malloc slot for book keeping number of threads
 248       MallocMemorySummary::record_malloc(0, mtThreadStack);
 249       record_virtual_memory_reserve_and_commit(addr, size, CALLER_PC, mtThreadStack);
 250     }
 251   }
 252 
 253   static inline void release_thread_stack(void* addr, size_t size) {
 254     if (tracking_level() < NMT_summary) return;
 255     if (addr != NULL) {
 256       // uses thread stack malloc slot for book keeping number of threads
 257       MallocMemorySummary::record_free(0, mtThreadStack);
 258       ThreadCritical tc;
 259       if (tracking_level() < NMT_summary) return;
 260       VirtualMemoryTracker::remove_released_region((address)addr, size);
 261     }
 262   }
 263 
 264   // 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
 266   // other tools.
 267   static inline Mutex* query_lock() { return _query_lock; }
 268 
 269   // Make a final report or report for hs_err file.




 229       ThreadCritical tc;
 230       if (tracking_level() < NMT_summary) return;
 231       VirtualMemoryTracker::add_committed_region((address)addr, size, stack);
 232     }
 233   }
 234 
 235   static inline void record_virtual_memory_type(void* addr, MEMFLAGS flag) {
 236     if (tracking_level() < NMT_summary) return;
 237     if (addr != NULL) {
 238       ThreadCritical tc;
 239       if (tracking_level() < NMT_summary) return;
 240       VirtualMemoryTracker::set_reserved_region_type((address)addr, flag);
 241     }
 242   }
 243 
 244   static inline void record_thread_stack(void* addr, size_t size) {
 245     if (tracking_level() < NMT_summary) return;
 246     if (addr != NULL) {
 247       // uses thread stack malloc slot for book keeping number of threads
 248       MallocMemorySummary::record_malloc(0, mtThreadStack);
 249       record_virtual_memory_reserve(addr, size, CALLER_PC, mtThreadStack);
 250     }
 251   }
 252 
 253   static inline void release_thread_stack(void* addr, size_t size) {
 254     if (tracking_level() < NMT_summary) return;
 255     if (addr != NULL) {
 256       // uses thread stack malloc slot for book keeping number of threads
 257       MallocMemorySummary::record_free(0, mtThreadStack);
 258       ThreadCritical tc;
 259       if (tracking_level() < NMT_summary) return;
 260       VirtualMemoryTracker::remove_released_region((address)addr, size);
 261     }
 262   }
 263 
 264   // 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
 266   // other tools.
 267   static inline Mutex* query_lock() { return _query_lock; }
 268 
 269   // Make a final report or report for hs_err file.


< prev index next >