--- old/src/os/linux/vm/os_linux.cpp 2011-08-23 14:50:39.272841000 -0500 +++ new/src/os/linux/vm/os_linux.cpp 2011-08-23 14:50:38.739830000 -0500 @@ -2502,6 +2502,9 @@ 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; } @@ -2523,6 +2526,9 @@ (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; } @@ -3115,6 +3121,10 @@ return NULL; } + if (UseNUMAInterleaving) { + numa_make_global(addr, bytes); + } + return addr; }