< prev index next >

src/share/vm/runtime/os.cpp

Print this page
rev 7555 : imported patch 8067469-g1-ignores-alwayspretouch
rev 7556 : imported patch david-erik-review


1571   } else {
1572     res = pd_uncommit_memory(addr, bytes);
1573   }
1574   return res;
1575 }
1576 
1577 bool os::release_memory(char* addr, size_t bytes) {
1578   bool res;
1579   if (MemTracker::tracking_level() > NMT_minimal) {
1580     Tracker tkr = MemTracker::get_virtual_memory_release_tracker();
1581     res = pd_release_memory(addr, bytes);
1582     if (res) {
1583       tkr.record((address)addr, bytes);
1584     }
1585   } else {
1586     res = pd_release_memory(addr, bytes);
1587   }
1588   return res;
1589 }
1590 





1591 
1592 char* os::map_memory(int fd, const char* file_name, size_t file_offset,
1593                            char *addr, size_t bytes, bool read_only,
1594                            bool allow_exec) {
1595   char* result = pd_map_memory(fd, file_name, file_offset, addr, bytes, read_only, allow_exec);
1596   if (result != NULL) {
1597     MemTracker::record_virtual_memory_reserve_and_commit((address)result, bytes, CALLER_PC);
1598   }
1599   return result;
1600 }
1601 
1602 char* os::remap_memory(int fd, const char* file_name, size_t file_offset,
1603                              char *addr, size_t bytes, bool read_only,
1604                              bool allow_exec) {
1605   return pd_remap_memory(fd, file_name, file_offset, addr, bytes,
1606                     read_only, allow_exec);
1607 }
1608 
1609 bool os::unmap_memory(char *addr, size_t bytes) {
1610   bool result;




1571   } else {
1572     res = pd_uncommit_memory(addr, bytes);
1573   }
1574   return res;
1575 }
1576 
1577 bool os::release_memory(char* addr, size_t bytes) {
1578   bool res;
1579   if (MemTracker::tracking_level() > NMT_minimal) {
1580     Tracker tkr = MemTracker::get_virtual_memory_release_tracker();
1581     res = pd_release_memory(addr, bytes);
1582     if (res) {
1583       tkr.record((address)addr, bytes);
1584     }
1585   } else {
1586     res = pd_release_memory(addr, bytes);
1587   }
1588   return res;
1589 }
1590 
1591 void os::pretouch_memory(char* start, char* end) {
1592   for (volatile char *p = start; p < end; p += os::vm_page_size()) {
1593     *p = 0;
1594   }
1595 }
1596 
1597 char* os::map_memory(int fd, const char* file_name, size_t file_offset,
1598                            char *addr, size_t bytes, bool read_only,
1599                            bool allow_exec) {
1600   char* result = pd_map_memory(fd, file_name, file_offset, addr, bytes, read_only, allow_exec);
1601   if (result != NULL) {
1602     MemTracker::record_virtual_memory_reserve_and_commit((address)result, bytes, CALLER_PC);
1603   }
1604   return result;
1605 }
1606 
1607 char* os::remap_memory(int fd, const char* file_name, size_t file_offset,
1608                              char *addr, size_t bytes, bool read_only,
1609                              bool allow_exec) {
1610   return pd_remap_memory(fd, file_name, file_offset, addr, bytes,
1611                     read_only, allow_exec);
1612 }
1613 
1614 bool os::unmap_memory(char *addr, size_t bytes) {
1615   bool result;


< prev index next >