1.1 --- a/src/os/solaris/vm/os_solaris.cpp Tue Aug 23 11:06:30 2011 +0200 1.2 +++ b/src/os/solaris/vm/os_solaris.cpp Thu Aug 25 02:57:46 2011 -0700 1.3 @@ -2777,8 +2777,14 @@ 1.4 bool os::commit_memory(char* addr, size_t bytes, bool exec) { 1.5 int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE; 1.6 size_t size = bytes; 1.7 - return 1.8 - NULL != Solaris::mmap_chunk(addr, size, MAP_PRIVATE|MAP_FIXED, prot); 1.9 + char *res = Solaris::mmap_chunk(addr, size, MAP_PRIVATE|MAP_FIXED, prot); 1.10 + if (res != NULL) { 1.11 + if (UseNUMAInterleaving) { 1.12 + numa_make_global(addr, bytes); 1.13 + } 1.14 + return true; 1.15 + } 1.16 + return false; 1.17 } 1.18 1.19 bool os::commit_memory(char* addr, size_t bytes, size_t alignment_hint, 1.20 @@ -3389,12 +3395,11 @@ 1.21 return true; 1.22 } 1.23 1.24 -char* os::reserve_memory_special(size_t bytes, char* addr, bool exec) { 1.25 +char* os::reserve_memory_special(size_t size, char* addr, bool exec) { 1.26 // "exec" is passed in but not used. Creating the shared image for 1.27 // the code cache doesn't have an SHM_X executable permission to check. 1.28 assert(UseLargePages && UseISM, "only for ISM large pages"); 1.29 1.30 - size_t size = bytes; 1.31 char* retAddr = NULL; 1.32 int shmid; 1.33 key_t ismKey; 1.34 @@ -3436,7 +3441,9 @@ 1.35 } 1.36 return NULL; 1.37 } 1.38 - 1.39 + if ((retAddr != NULL) && UseNUMAInterleaving) { 1.40 + numa_make_global(retAddr, size); 1.41 + } 1.42 return retAddr; 1.43 } 1.44