1.1 --- a/src/os/solaris/vm/os_solaris.cpp Tue Mar 12 11:00:49 2013 -0700 1.2 +++ b/src/os/solaris/vm/os_solaris.cpp Fri Mar 15 08:57:55 2013 +0100 1.3 @@ -3420,13 +3420,25 @@ 1.4 if ((retAddr != NULL) && UseNUMAInterleaving) { 1.5 numa_make_global(retAddr, size); 1.6 } 1.7 + 1.8 + // The memory is committed 1.9 + address pc = CALLER_PC; 1.10 + MemTracker::record_virtual_memory_reserve((address)retAddr, size, pc); 1.11 + MemTracker::record_virtual_memory_commit((address)retAddr, size, pc); 1.12 + 1.13 return retAddr; 1.14 } 1.15 1.16 bool os::release_memory_special(char* base, size_t bytes) { 1.17 // detaching the SHM segment will also delete it, see reserve_memory_special() 1.18 int rslt = shmdt(base); 1.19 - return rslt == 0; 1.20 + if (rslt == 0) { 1.21 + MemTracker::record_virtual_memory_uncommit((address)base, bytes); 1.22 + MemTracker::record_virtual_memory_release((address)base, bytes); 1.23 + return true; 1.24 + } else { 1.25 + return false; 1.26 + } 1.27 } 1.28 1.29 size_t os::large_page_size() {