Mercurial > hg > truffle
diff src/share/vm/runtime/thread.cpp @ 6741:33143ee07800
7181995: NMT ON: NMT assertion failure assert(cur_vm->is_uncommit_record() || cur_vm->is_deallocation_record
Summary: Fixed virtual memory records merge and promotion logic, should be based on sequence number vs. base address order
Reviewed-by: coleenp, acorn
author | zgu |
---|---|
date | Tue, 11 Sep 2012 20:53:17 -0400 |
parents | da91efe96a93 |
children | 6dfc6a541338 |
line wrap: on
line diff
--- a/src/share/vm/runtime/thread.cpp Tue Sep 04 16:20:28 2012 -0700 +++ b/src/share/vm/runtime/thread.cpp Tue Sep 11 20:53:17 2012 -0400 @@ -318,10 +318,9 @@ set_stack_size(os::current_stack_size()); // record thread's native stack, stack grows downward - address vm_base = _stack_base - _stack_size; - MemTracker::record_virtual_memory_reserve(vm_base, _stack_size, - CURRENT_PC, this); - MemTracker::record_virtual_memory_type(vm_base, mtThreadStack); + address low_stack_addr = stack_base() - stack_size(); + MemTracker::record_thread_stack(low_stack_addr, stack_size(), this, + CURRENT_PC); } @@ -329,8 +328,8 @@ // Reclaim the objectmonitors from the omFreeList of the moribund thread. ObjectSynchronizer::omFlush (this) ; - MemTracker::record_virtual_memory_release((_stack_base - _stack_size), - _stack_size, this); + address low_stack_addr = stack_base() - stack_size(); + MemTracker::release_thread_stack(low_stack_addr, stack_size(), this); // deallocate data structures delete resource_area();