equal
deleted
inserted
replaced
2775 } |
2775 } |
2776 |
2776 |
2777 bool os::commit_memory(char* addr, size_t bytes, bool exec) { |
2777 bool os::commit_memory(char* addr, size_t bytes, bool exec) { |
2778 int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE; |
2778 int prot = exec ? PROT_READ|PROT_WRITE|PROT_EXEC : PROT_READ|PROT_WRITE; |
2779 size_t size = bytes; |
2779 size_t size = bytes; |
2780 return |
2780 char *res = Solaris::mmap_chunk(addr, size, MAP_PRIVATE|MAP_FIXED, prot); |
2781 NULL != Solaris::mmap_chunk(addr, size, MAP_PRIVATE|MAP_FIXED, prot); |
2781 if (res != NULL) { |
|
2782 if (UseNUMAInterleaving) { |
|
2783 numa_make_global(addr, bytes); |
|
2784 } |
|
2785 return true; |
|
2786 } |
|
2787 return false; |
2782 } |
2788 } |
2783 |
2789 |
2784 bool os::commit_memory(char* addr, size_t bytes, size_t alignment_hint, |
2790 bool os::commit_memory(char* addr, size_t bytes, size_t alignment_hint, |
2785 bool exec) { |
2791 bool exec) { |
2786 if (commit_memory(addr, bytes, exec)) { |
2792 if (commit_memory(addr, bytes, exec)) { |
3387 return false; |
3393 return false; |
3388 } |
3394 } |
3389 return true; |
3395 return true; |
3390 } |
3396 } |
3391 |
3397 |
3392 char* os::reserve_memory_special(size_t bytes, char* addr, bool exec) { |
3398 char* os::reserve_memory_special(size_t size, char* addr, bool exec) { |
3393 // "exec" is passed in but not used. Creating the shared image for |
3399 // "exec" is passed in but not used. Creating the shared image for |
3394 // the code cache doesn't have an SHM_X executable permission to check. |
3400 // the code cache doesn't have an SHM_X executable permission to check. |
3395 assert(UseLargePages && UseISM, "only for ISM large pages"); |
3401 assert(UseLargePages && UseISM, "only for ISM large pages"); |
3396 |
3402 |
3397 size_t size = bytes; |
|
3398 char* retAddr = NULL; |
3403 char* retAddr = NULL; |
3399 int shmid; |
3404 int shmid; |
3400 key_t ismKey; |
3405 key_t ismKey; |
3401 |
3406 |
3402 bool warn_on_failure = UseISM && |
3407 bool warn_on_failure = UseISM && |
3434 jio_snprintf(msg, sizeof(msg), "Failed to attach shared memory (errno = %d).", err); |
3439 jio_snprintf(msg, sizeof(msg), "Failed to attach shared memory (errno = %d).", err); |
3435 warning(msg); |
3440 warning(msg); |
3436 } |
3441 } |
3437 return NULL; |
3442 return NULL; |
3438 } |
3443 } |
3439 |
3444 if ((retAddr != NULL) && UseNUMAInterleaving) { |
|
3445 numa_make_global(retAddr, size); |
|
3446 } |
3440 return retAddr; |
3447 return retAddr; |
3441 } |
3448 } |
3442 |
3449 |
3443 bool os::release_memory_special(char* base, size_t bytes) { |
3450 bool os::release_memory_special(char* base, size_t bytes) { |
3444 // detaching the SHM segment will also delete it, see reserve_memory_special() |
3451 // detaching the SHM segment will also delete it, see reserve_memory_special() |