Mercurial > hg > truffle
comparison src/os/bsd/vm/os_bsd.cpp @ 20360:833b0f92429a
8046598: Scalable Native memory tracking development
Summary: Enhance scalability of native memory tracking
Reviewed-by: coleenp, ctornqvi, gtriantafill
author | zgu |
---|---|
date | Wed, 27 Aug 2014 08:19:12 -0400 |
parents | d22136881b85 |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
20359:4d3a43351904 | 20360:833b0f92429a |
---|---|
2432 } | 2432 } |
2433 return NULL; | 2433 return NULL; |
2434 } | 2434 } |
2435 | 2435 |
2436 // The memory is committed | 2436 // The memory is committed |
2437 MemTracker::record_virtual_memory_reserve_and_commit((address)addr, bytes, mtNone, CALLER_PC); | 2437 MemTracker::record_virtual_memory_reserve_and_commit((address)addr, bytes, CALLER_PC); |
2438 | 2438 |
2439 return addr; | 2439 return addr; |
2440 } | 2440 } |
2441 | 2441 |
2442 bool os::release_memory_special(char* base, size_t bytes) { | 2442 bool os::release_memory_special(char* base, size_t bytes) { |
2443 MemTracker::Tracker tkr = MemTracker::get_virtual_memory_release_tracker(); | 2443 if (MemTracker::tracking_level() > NMT_minimal) { |
2444 // detaching the SHM segment will also delete it, see reserve_memory_special() | 2444 Tracker tkr = MemTracker::get_virtual_memory_release_tracker(); |
2445 int rslt = shmdt(base); | 2445 // detaching the SHM segment will also delete it, see reserve_memory_special() |
2446 if (rslt == 0) { | 2446 int rslt = shmdt(base); |
2447 tkr.record((address)base, bytes); | 2447 if (rslt == 0) { |
2448 return true; | 2448 tkr.record((address)base, bytes); |
2449 return true; | |
2450 } else { | |
2451 return false; | |
2452 } | |
2449 } else { | 2453 } else { |
2450 tkr.discard(); | 2454 return shmdt(base) == 0; |
2451 return false; | 2455 } |
2452 } | |
2453 | |
2454 } | 2456 } |
2455 | 2457 |
2456 size_t os::large_page_size() { | 2458 size_t os::large_page_size() { |
2457 return _large_page_size; | 2459 return _large_page_size; |
2458 } | 2460 } |