--- old/src/os/solaris/vm/os_solaris.cpp 2011-08-23 14:50:42.821962000 -0500 +++ new/src/os/solaris/vm/os_solaris.cpp 2011-08-23 14:50:42.364948000 -0500 @@ -2777,8 +2777,11 @@ bool os::commit_memory(char* addr, size_t bytes, bool exec) { int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE; size_t size = bytes; - return - NULL != Solaris::mmap_chunk(addr, size, MAP_PRIVATE|MAP_FIXED, prot); + char *res = Solaris::mmap_chunk(addr, size, MAP_PRIVATE|MAP_FIXED, prot); + if (UseNUMAInterleaving) { + numa_make_global(addr, bytes); + } + return res != NULL; } bool os::commit_memory(char* addr, size_t bytes, size_t alignment_hint, @@ -3437,6 +3440,9 @@ return NULL; } + if (UseNUMAInterleaving) { + numa_make_global(retAddr, bytes); + } return retAddr; }