src/os/linux/vm/os_linux.cpp
Print this page
rev 2675 : merge with latest default trunk
*** 2500,2509 ****
--- 2500,2512 ----
// problem.
bool os::commit_memory(char* addr, size_t size, bool exec) {
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);
+ if (UseNUMAInterleaving && (res != (uintptr_t) MAP_FAILED)) {
+ numa_make_global(addr, size);
+ }
return res != (uintptr_t) MAP_FAILED;
}
// Define MAP_HUGETLB here so we can build HotSpot on old systems.
#ifndef MAP_HUGETLB
*** 2521,2530 ****
--- 2524,2536 ----
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|MAP_HUGETLB,
-1, 0);
+ if (UseNUMAInterleaving && (res != (uintptr_t) MAP_FAILED)) {
+ numa_make_global(addr, size);
+ }
return res != (uintptr_t) MAP_FAILED;
}
return commit_memory(addr, size, exec);
}
*** 3113,3122 ****
--- 3119,3132 ----
warning(msg);
}
return NULL;
}
+ if (UseNUMAInterleaving) {
+ numa_make_global(addr, bytes);
+ }
+
return addr;
}
bool os::release_memory_special(char* base, size_t bytes) {
// detaching the SHM segment will also delete it, see reserve_memory_special()