src/os/bsd/vm/os_bsd.cpp

changeset 4713
252ad8d5f22b
parent 4696
bdb602473679
parent 4711
6b803ba47588
child 4854
754c24457b20
child 4888
17bf4d428955
     1.1 --- a/src/os/bsd/vm/os_bsd.cpp	Fri Mar 08 08:22:18 2013 -0800
     1.2 +++ b/src/os/bsd/vm/os_bsd.cpp	Fri Mar 08 17:14:22 2013 -0800
     1.3 @@ -57,6 +57,7 @@
     1.4  #include "runtime/threadCritical.hpp"
     1.5  #include "runtime/timer.hpp"
     1.6  #include "services/attachListener.hpp"
     1.7 +#include "services/memTracker.hpp"
     1.8  #include "services/runtimeService.hpp"
     1.9  #include "utilities/decoder.hpp"
    1.10  #include "utilities/defaultStream.hpp"
    1.11 @@ -2275,13 +2276,25 @@
    1.12       return NULL;
    1.13    }
    1.14  
    1.15 +  // The memory is committed
    1.16 +  address pc = CALLER_PC;
    1.17 +  MemTracker::record_virtual_memory_reserve((address)addr, bytes, pc);
    1.18 +  MemTracker::record_virtual_memory_commit((address)addr, bytes, pc);
    1.19 +
    1.20    return addr;
    1.21  }
    1.22  
    1.23  bool os::release_memory_special(char* base, size_t bytes) {
    1.24    // detaching the SHM segment will also delete it, see reserve_memory_special()
    1.25    int rslt = shmdt(base);
    1.26 -  return rslt == 0;
    1.27 +  if (rslt == 0) {
    1.28 +    MemTracker::record_virtual_memory_uncommit((address)base, bytes);
    1.29 +    MemTracker::record_virtual_memory_release((address)base, bytes);
    1.30 +    return true;
    1.31 +  } else {
    1.32 +    return false;
    1.33 +  }
    1.34 +
    1.35  }
    1.36  
    1.37  size_t os::large_page_size() {

mercurial