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 }