src/os/solaris/vm/os_solaris.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File
hotspot Cdiff src/os/solaris/vm/os_solaris.cpp
src/os/solaris/vm/os_solaris.cpp
Print this page
*** 3402,3426 ****
if ((retAddr != NULL) && UseNUMAInterleaving) {
numa_make_global(retAddr, size);
}
// The memory is committed
! address pc = CALLER_PC;
! MemTracker::record_virtual_memory_reserve((address)retAddr, size, pc);
! MemTracker::record_virtual_memory_commit((address)retAddr, size, pc);
return retAddr;
}
bool os::release_memory_special(char* base, size_t bytes) {
// detaching the SHM segment will also delete it, see reserve_memory_special()
int rslt = shmdt(base);
if (rslt == 0) {
! MemTracker::record_virtual_memory_uncommit((address)base, bytes);
! MemTracker::record_virtual_memory_release((address)base, bytes);
return true;
} else {
return false;
}
}
size_t os::large_page_size() {
--- 3402,3426 ----
if ((retAddr != NULL) && UseNUMAInterleaving) {
numa_make_global(retAddr, size);
}
// The memory is committed
! NMTTrackOp op(NMTTrackOp::ReserveAndCommitOp);
! op.execute_op((address)retAddr, size, 0, CALLER_PC);
return retAddr;
}
bool os::release_memory_special(char* base, size_t bytes) {
+ NMTTrackOp op(NMTTrackOp::ReleaseOp);
// detaching the SHM segment will also delete it, see reserve_memory_special()
int rslt = shmdt(base);
if (rslt == 0) {
! op.execute_op((address)base, bytes);
return true;
} else {
+ op.abort_op();
return false;
}
}
size_t os::large_page_size() {
src/os/solaris/vm/os_solaris.cpp
Index
Unified diffs
Context diffs
Sdiffs
Wdiffs
Patch
New
Old
Previous File
Next File