< prev index next >
src/hotspot/share/services/memTracker.hpp
Print this page
rev 50440 : [mq]: 8202772-NMT-erroneously-assumes-thread-stack-boundaries-to-be-page-aligned
@@ -112,11 +112,10 @@
ThreadCritical _tc;
};
class MemTracker : AllStatic {
friend class VirtualMemoryTrackerTest;
-
public:
static inline NMT_TrackingLevel tracking_level() {
if (_tracking_level == NMT_unknown) {
// No fencing is needed here, since JVM is in single-threaded
// mode.
@@ -239,29 +238,13 @@
if (tracking_level() < NMT_summary) return;
VirtualMemoryTracker::set_reserved_region_type((address)addr, flag);
}
}
- static inline void record_thread_stack(void* addr, size_t size) {
- if (tracking_level() < NMT_summary) return;
- if (addr != NULL) {
- // uses thread stack malloc slot for book keeping number of threads
- MallocMemorySummary::record_malloc(0, mtThreadStack);
- record_virtual_memory_reserve(addr, size, CALLER_PC, mtThreadStack);
- }
- }
+ static void record_thread_stack(void* addr, size_t size);
- static inline void release_thread_stack(void* addr, size_t size) {
- if (tracking_level() < NMT_summary) return;
- if (addr != NULL) {
- // uses thread stack malloc slot for book keeping number of threads
- MallocMemorySummary::record_free(0, mtThreadStack);
- ThreadCritical tc;
- if (tracking_level() < NMT_summary) return;
- VirtualMemoryTracker::remove_released_region((address)addr, size);
- }
- }
+ static void release_thread_stack(void* addr, size_t size);
// Query lock is used to synchronize the access to tracking data.
// So far, it is only used by JCmd query, but it may be used by
// other tools.
static inline Mutex* query_lock() { return _query_lock; }
< prev index next >