--- a/hotspot/src/os/linux/vm/os_linux.cpp Tue Aug 23 11:06:30 2011 +0200
+++ b/hotspot/src/os/linux/vm/os_linux.cpp Thu Aug 25 02:57:46 2011 -0700
@@ -2502,7 +2502,13 @@
int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE;
uintptr_t res = (uintptr_t) ::mmap(addr, size, prot,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0);
- return res != (uintptr_t) MAP_FAILED;
+ if (res != (uintptr_t) MAP_FAILED) {
+ if (UseNUMAInterleaving) {
+ numa_make_global(addr, size);
+ }
+ return true;
+ }
+ return false;
}
// Define MAP_HUGETLB here so we can build HotSpot on old systems.
@@ -2523,7 +2529,13 @@
(uintptr_t) ::mmap(addr, size, prot,
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS|MAP_HUGETLB,
-1, 0);
- return res != (uintptr_t) MAP_FAILED;
+ if (res != (uintptr_t) MAP_FAILED) {
+ if (UseNUMAInterleaving) {
+ numa_make_global(addr, size);
+ }
+ return true;
+ }
+ return false;
}
return commit_memory(addr, size, exec);
@@ -3115,6 +3127,10 @@
return NULL;
}
+ if ((addr != NULL) && UseNUMAInterleaving) {
+ numa_make_global(addr, bytes);
+ }
+
return addr;
}