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()