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