src/os/solaris/vm/os_solaris.cpp

changeset 4744
15401203db6b
parent 4739
ca9580859cf4
parent 4711
6b803ba47588
child 4854
754c24457b20
child 4888
17bf4d428955
equal deleted inserted replaced
4743:82657b6a8cc0 4744:15401203db6b
3418 return NULL; 3418 return NULL;
3419 } 3419 }
3420 if ((retAddr != NULL) && UseNUMAInterleaving) { 3420 if ((retAddr != NULL) && UseNUMAInterleaving) {
3421 numa_make_global(retAddr, size); 3421 numa_make_global(retAddr, size);
3422 } 3422 }
3423
3424 // The memory is committed
3425 address pc = CALLER_PC;
3426 MemTracker::record_virtual_memory_reserve((address)retAddr, size, pc);
3427 MemTracker::record_virtual_memory_commit((address)retAddr, size, pc);
3428
3423 return retAddr; 3429 return retAddr;
3424 } 3430 }
3425 3431
3426 bool os::release_memory_special(char* base, size_t bytes) { 3432 bool os::release_memory_special(char* base, size_t bytes) {
3427 // detaching the SHM segment will also delete it, see reserve_memory_special() 3433 // detaching the SHM segment will also delete it, see reserve_memory_special()
3428 int rslt = shmdt(base); 3434 int rslt = shmdt(base);
3429 return rslt == 0; 3435 if (rslt == 0) {
3436 MemTracker::record_virtual_memory_uncommit((address)base, bytes);
3437 MemTracker::record_virtual_memory_release((address)base, bytes);
3438 return true;
3439 } else {
3440 return false;
3441 }
3430 } 3442 }
3431 3443
3432 size_t os::large_page_size() { 3444 size_t os::large_page_size() {
3433 return _large_page_size; 3445 return _large_page_size;
3434 } 3446 }

mercurial