hotspot/src/os/linux/vm/os_linux.cpp
changeset 15927 f256c20146f4
parent 15926 8e87d545195f
child 16438 245d5c0a8dd8
child 16605 ba13efd453bc
equal deleted inserted replaced
15926:8e87d545195f 15927:f256c20146f4
    56 #include "runtime/stubRoutines.hpp"
    56 #include "runtime/stubRoutines.hpp"
    57 #include "runtime/thread.inline.hpp"
    57 #include "runtime/thread.inline.hpp"
    58 #include "runtime/threadCritical.hpp"
    58 #include "runtime/threadCritical.hpp"
    59 #include "runtime/timer.hpp"
    59 #include "runtime/timer.hpp"
    60 #include "services/attachListener.hpp"
    60 #include "services/attachListener.hpp"
       
    61 #include "services/memTracker.hpp"
    61 #include "services/runtimeService.hpp"
    62 #include "services/runtimeService.hpp"
    62 #include "utilities/decoder.hpp"
    63 #include "utilities/decoder.hpp"
    63 #include "utilities/defaultStream.hpp"
    64 #include "utilities/defaultStream.hpp"
    64 #include "utilities/events.hpp"
    65 #include "utilities/events.hpp"
    65 #include "utilities/elfFile.hpp"
    66 #include "utilities/elfFile.hpp"
  3210 
  3211 
  3211   if ((addr != NULL) && UseNUMAInterleaving) {
  3212   if ((addr != NULL) && UseNUMAInterleaving) {
  3212     numa_make_global(addr, bytes);
  3213     numa_make_global(addr, bytes);
  3213   }
  3214   }
  3214 
  3215 
       
  3216   // The memory is committed
       
  3217   address pc = CALLER_PC;
       
  3218   MemTracker::record_virtual_memory_reserve((address)addr, bytes, pc);
       
  3219   MemTracker::record_virtual_memory_commit((address)addr, bytes, pc);
       
  3220 
  3215   return addr;
  3221   return addr;
  3216 }
  3222 }
  3217 
  3223 
  3218 bool os::release_memory_special(char* base, size_t bytes) {
  3224 bool os::release_memory_special(char* base, size_t bytes) {
  3219   // detaching the SHM segment will also delete it, see reserve_memory_special()
  3225   // detaching the SHM segment will also delete it, see reserve_memory_special()
  3220   int rslt = shmdt(base);
  3226   int rslt = shmdt(base);
  3221   return rslt == 0;
  3227   if (rslt == 0) {
       
  3228     MemTracker::record_virtual_memory_uncommit((address)base, bytes);
       
  3229     MemTracker::record_virtual_memory_release((address)base, bytes);
       
  3230     return true;
       
  3231   } else {
       
  3232    return false;
       
  3233   }
  3222 }
  3234 }
  3223 
  3235 
  3224 size_t os::large_page_size() {
  3236 size_t os::large_page_size() {
  3225   return _large_page_size;
  3237   return _large_page_size;
  3226 }
  3238 }