mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
7181995: NMT ON: NMT assertion failure assert(cur_vm->is_uncommit_record() || cur_vm->is_deallocation_record
Fixed virtual memory records merge and promotion logic, should be based on sequence number vs. base address order Reviewed-by: coleenp, acorn
This commit is contained in:
parent
6f32be5139
commit
442e4b0e54
7 changed files with 403 additions and 390 deletions
|
@ -318,10 +318,9 @@ void Thread::record_stack_base_and_size() {
|
|||
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 @@ Thread::~Thread() {
|
|||
// 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();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue