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