< prev index next >

src/os/aix/vm/os_aix.cpp

Print this page

        

@@ -2509,22 +2509,22 @@
   return false;
 }
 
 // Reserve memory at an arbitrary address, only if that area is
 // available (and not reserved for something else).
-char* os::pd_attempt_reserve_memory_at(size_t bytes, char* requested_addr) {
+char* os::pd_attempt_reserve_memory_at(size_t bytes, char* requested_addr, bool use_SHM) {
   char* addr = NULL;
 
   // Always round to os::vm_page_size(), which may be larger than 4K.
   bytes = align_size_up(bytes, os::vm_page_size());
 
   // In 4K mode always use mmap.
   // In 64K mode allocate small sizes with mmap, large ones with 64K shmatted.
   if (os::vm_page_size() == 4*K) {
     return reserve_mmaped_memory(bytes, requested_addr, 0);
   } else {
-    if (bytes >= Use64KPagesThreshold) {
+    if (use_SHM && bytes >= Use64KPagesThreshold) {
       return reserve_shmated_memory(bytes, requested_addr, 0);
     } else {
       return reserve_mmaped_memory(bytes, requested_addr, 0);
     }
   }
< prev index next >