hotspot/src/os/solaris/vm/os_solaris.cpp
changeset 15927 f256c20146f4
parent 15743 f708934a12e7
child 15960 674d0586183f
equal deleted inserted replaced
15926:8e87d545195f 15927:f256c20146f4
  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 }