Mercurial > hg > graal-jvmci-8
comparison src/os/bsd/vm/os_bsd.cpp @ 20804:7848fc12602b
Merge with jdk8u40-b25
author | Gilles Duboscq <gilles.m.duboscq@oracle.com> |
---|---|
date | Tue, 07 Apr 2015 14:58:49 +0200 |
parents | 52b4284cb496 833b0f92429a |
children | c3ad14a83248 |
comparison
equal
deleted
inserted
replaced
20184:84105dcdb05b | 20804:7848fc12602b |
---|---|
46 #include "runtime/interfaceSupport.hpp" | 46 #include "runtime/interfaceSupport.hpp" |
47 #include "runtime/java.hpp" | 47 #include "runtime/java.hpp" |
48 #include "runtime/javaCalls.hpp" | 48 #include "runtime/javaCalls.hpp" |
49 #include "runtime/mutexLocker.hpp" | 49 #include "runtime/mutexLocker.hpp" |
50 #include "runtime/objectMonitor.hpp" | 50 #include "runtime/objectMonitor.hpp" |
51 #include "runtime/orderAccess.inline.hpp" | |
51 #include "runtime/osThread.hpp" | 52 #include "runtime/osThread.hpp" |
52 #include "runtime/perfMemory.hpp" | 53 #include "runtime/perfMemory.hpp" |
53 #include "runtime/sharedRuntime.hpp" | 54 #include "runtime/sharedRuntime.hpp" |
54 #include "runtime/statSampler.hpp" | 55 #include "runtime/statSampler.hpp" |
55 #include "runtime/stubRoutines.hpp" | 56 #include "runtime/stubRoutines.hpp" |
2431 } | 2432 } |
2432 return NULL; | 2433 return NULL; |
2433 } | 2434 } |
2434 | 2435 |
2435 // The memory is committed | 2436 // The memory is committed |
2436 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); |
2437 | 2438 |
2438 return addr; | 2439 return addr; |
2439 } | 2440 } |
2440 | 2441 |
2441 bool os::release_memory_special(char* base, size_t bytes) { | 2442 bool os::release_memory_special(char* base, size_t bytes) { |
2442 MemTracker::Tracker tkr = MemTracker::get_virtual_memory_release_tracker(); | 2443 if (MemTracker::tracking_level() > NMT_minimal) { |
2443 // detaching the SHM segment will also delete it, see reserve_memory_special() | 2444 Tracker tkr = MemTracker::get_virtual_memory_release_tracker(); |
2444 int rslt = shmdt(base); | 2445 // detaching the SHM segment will also delete it, see reserve_memory_special() |
2445 if (rslt == 0) { | 2446 int rslt = shmdt(base); |
2446 tkr.record((address)base, bytes); | 2447 if (rslt == 0) { |
2447 return true; | 2448 tkr.record((address)base, bytes); |
2449 return true; | |
2450 } else { | |
2451 return false; | |
2452 } | |
2448 } else { | 2453 } else { |
2449 tkr.discard(); | 2454 return shmdt(base) == 0; |
2450 return false; | 2455 } |
2451 } | |
2452 | |
2453 } | 2456 } |
2454 | 2457 |
2455 size_t os::large_page_size() { | 2458 size_t os::large_page_size() { |
2456 return _large_page_size; | 2459 return _large_page_size; |
2457 } | 2460 } |