src/os/solaris/vm/os_solaris.cpp

changeset 4744
15401203db6b
parent 4739
ca9580859cf4
parent 4711
6b803ba47588
child 4854
754c24457b20
child 4888
17bf4d428955
     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() {

mercurial