8202772: NMT thread stack tracking causes crashes on AIX

Reviewed-by: goetz, zgu
This commit is contained in:
Thomas Stuefe 2018-06-13 06:35:04 +02:00
parent dcf7b2e477
commit 765618a8ab
2 changed files with 9 additions and 0 deletions
src/hotspot/share/services
test/hotspot/gtest/runtime

@ -241,6 +241,11 @@ class MemTracker : AllStatic {
}
}
#ifdef _AIX
// See JDK-8202772 - temporarily disable thread stack tracking on AIX.
static inline void record_thread_stack(void* addr, size_t size) {}
static inline void release_thread_stack(void* addr, size_t size) {}
#else
static inline void record_thread_stack(void* addr, size_t size) {
if (tracking_level() < NMT_summary) return;
if (addr != NULL) {
@ -260,6 +265,7 @@ class MemTracker : AllStatic {
VirtualMemoryTracker::remove_released_region((address)addr, size);
}
}
#endif
// 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

@ -38,6 +38,8 @@
class CommittedVirtualMemoryTest {
public:
static void test() {
#ifndef _AIX
// See JDK-8202772: temporarily disabled.
Thread* thr = Thread::current();
address stack_end = thr->stack_end();
size_t stack_size = thr->stack_size();
@ -81,6 +83,7 @@ public:
ASSERT_TRUE(i >= 1);
ASSERT_TRUE(found_stack_top);
ASSERT_TRUE(found_i_addr);
#endif // !_AIX
}
static void check_covered_pages(address addr, size_t size, address base, size_t touch_pages, int* page_num) {