src/os/solaris/vm/os_solaris.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8007074 Cdiff src/os/solaris/vm/os_solaris.cpp

src/os/solaris/vm/os_solaris.cpp

Print this page

        

*** 3503,3517 **** return false; } return true; } ! char* os::reserve_memory_special(size_t size, char* addr, bool exec) { // "exec" is passed in but not used. Creating the shared image for // the code cache doesn't have an SHM_X executable permission to check. assert(UseLargePages && UseISM, "only for ISM large pages"); char* retAddr = NULL; int shmid; key_t ismKey; bool warn_on_failure = UseISM && --- 3503,3521 ---- return false; } return true; } ! char* os::reserve_memory_special(size_t size, size_t alignment, char* addr, bool exec) { // "exec" is passed in but not used. Creating the shared image for // the code cache doesn't have an SHM_X executable permission to check. assert(UseLargePages && UseISM, "only for ISM large pages"); + if (!is_size_aligned(size, os::large_page_size()) || alignment > os::large_page_size()) { + return NULL; // Fallback to small pages. + } + char* retAddr = NULL; int shmid; key_t ismKey; bool warn_on_failure = UseISM &&
*** 6839,6843 **** --- 6843,6853 ---- return 0; } return strlen(buffer); } + + #ifndef PRODUCT + void TestReserveMemorySpecial_test() { + // No tests available for this platform + } + #endif
src/os/solaris/vm/os_solaris.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File