7087583: Hotspot fails to allocate heap with mmap(MAP_HUGETLB)
authoriveresov
Tue, 06 Sep 2011 21:03:51 -0700
changeset 10522 23830453e083
parent 10499 71714e44d255
child 10523 cdb54c167ab0
child 10524 6594ca81279a
7087583: Hotspot fails to allocate heap with mmap(MAP_HUGETLB) Summary: Try using small pages when transparent huge pages allocation fails Reviewed-by: ysr
hotspot/src/os/linux/vm/os_linux.cpp
--- a/hotspot/src/os/linux/vm/os_linux.cpp	Fri Sep 02 21:33:57 2011 -0700
+++ b/hotspot/src/os/linux/vm/os_linux.cpp	Tue Sep 06 21:03:51 2011 -0700
@@ -2531,10 +2531,14 @@
       }
       return true;
     }
-    return false;
-  }
-
-  return commit_memory(addr, size, exec);
+    // Fall through and try to use small pages
+  }
+
+  if (commit_memory(addr, size, exec)) {
+    realign_memory(addr, size, alignment_hint);
+    return true;
+  }
+  return false;
 }
 
 void os::realign_memory(char *addr, size_t bytes, size_t alignment_hint) {