1.1 --- a/src/os/bsd/vm/os_bsd.cpp Wed Aug 27 09:36:55 2014 +0200 1.2 +++ b/src/os/bsd/vm/os_bsd.cpp Wed Aug 27 08:19:12 2014 -0400 1.3 @@ -2434,23 +2434,25 @@ 1.4 } 1.5 1.6 // The memory is committed 1.7 - MemTracker::record_virtual_memory_reserve_and_commit((address)addr, bytes, mtNone, CALLER_PC); 1.8 + MemTracker::record_virtual_memory_reserve_and_commit((address)addr, bytes, CALLER_PC); 1.9 1.10 return addr; 1.11 } 1.12 1.13 bool os::release_memory_special(char* base, size_t bytes) { 1.14 - MemTracker::Tracker tkr = MemTracker::get_virtual_memory_release_tracker(); 1.15 - // detaching the SHM segment will also delete it, see reserve_memory_special() 1.16 - int rslt = shmdt(base); 1.17 - if (rslt == 0) { 1.18 - tkr.record((address)base, bytes); 1.19 - return true; 1.20 + if (MemTracker::tracking_level() > NMT_minimal) { 1.21 + Tracker tkr = MemTracker::get_virtual_memory_release_tracker(); 1.22 + // detaching the SHM segment will also delete it, see reserve_memory_special() 1.23 + int rslt = shmdt(base); 1.24 + if (rslt == 0) { 1.25 + tkr.record((address)base, bytes); 1.26 + return true; 1.27 + } else { 1.28 + return false; 1.29 + } 1.30 } else { 1.31 - tkr.discard(); 1.32 - return false; 1.33 + return shmdt(base) == 0; 1.34 } 1.35 - 1.36 } 1.37 1.38 size_t os::large_page_size() {