src/os/solaris/vm/os_solaris.cpp

changeset 5272
1f4355cee9a2
parent 5264
e95fc50106cf
child 5365
59b052799158
child 5384
dec841e0c9aa
equal deleted inserted replaced
5270:cd2118b62475 5272:1f4355cee9a2
3530 if ((retAddr != NULL) && UseNUMAInterleaving) { 3530 if ((retAddr != NULL) && UseNUMAInterleaving) {
3531 numa_make_global(retAddr, size); 3531 numa_make_global(retAddr, size);
3532 } 3532 }
3533 3533
3534 // The memory is committed 3534 // The memory is committed
3535 address pc = CALLER_PC; 3535 MemTracker::record_virtual_memory_reserve_and_commit((address)retAddr, size, mtNone, CURRENT_PC);
3536 MemTracker::record_virtual_memory_reserve((address)retAddr, size, pc);
3537 MemTracker::record_virtual_memory_commit((address)retAddr, size, pc);
3538 3536
3539 return retAddr; 3537 return retAddr;
3540 } 3538 }
3541 3539
3542 bool os::release_memory_special(char* base, size_t bytes) { 3540 bool os::release_memory_special(char* base, size_t bytes) {
3541 MemTracker::Tracker tkr = MemTracker::get_virtual_memory_release_tracker();
3543 // detaching the SHM segment will also delete it, see reserve_memory_special() 3542 // detaching the SHM segment will also delete it, see reserve_memory_special()
3544 int rslt = shmdt(base); 3543 int rslt = shmdt(base);
3545 if (rslt == 0) { 3544 if (rslt == 0) {
3546 MemTracker::record_virtual_memory_uncommit((address)base, bytes); 3545 tkr.record((address)base, bytes);
3547 MemTracker::record_virtual_memory_release((address)base, bytes);
3548 return true; 3546 return true;
3549 } else { 3547 } else {
3550 return false; 3548 tkr.discard();
3549 return false;
3551 } 3550 }
3552 } 3551 }
3553 3552
3554 size_t os::large_page_size() { 3553 size_t os::large_page_size() {
3555 return _large_page_size; 3554 return _large_page_size;

mercurial