Skip to content

Commit 4036d7d

Browse files
author
Afshin Zafari
committedMay 2, 2024
8330076: NMT: add/make a mandatory MEMFLAGS argument to family of os::reserve/commit/uncommit memory API
Reviewed-by: stefank, jsjolen, stuefe
1 parent 9108091 commit 4036d7d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+398
-420
lines changed
 

‎src/hotspot/cpu/aarch64/compressedKlass_aarch64.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ static char* reserve_at_eor_compatible_address(size_t size, bool aslr) {
6969
const uint64_t immediate = ((uint64_t)immediates[index]) << 32;
7070
assert(immediate > 0 && Assembler::operand_valid_for_logical_immediate(/*is32*/false, immediate),
7171
"Invalid immediate %d " UINT64_FORMAT, index, immediate);
72-
result = os::attempt_reserve_memory_at((char*)immediate, size, false);
72+
result = os::attempt_reserve_memory_at((char*)immediate, size, !ExecMem, mtClass);
7373
if (result == nullptr) {
7474
log_trace(metaspace, map)("Failed to attach at " UINT64_FORMAT_X, immediate);
7575
}
@@ -112,7 +112,7 @@ char* CompressedKlassPointers::reserve_address_space_for_compressed_classes(size
112112
if (result == nullptr) {
113113
constexpr size_t alignment = nth_bit(32);
114114
log_debug(metaspace, map)("Trying to reserve at a 32-bit-aligned address");
115-
result = os::reserve_memory_aligned(size, alignment, false);
115+
result = os::reserve_memory_aligned(size, alignment, !ExecMem, mtClass);
116116
}
117117

118118
return result;

‎src/hotspot/os/aix/os_aix.cpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -1805,7 +1805,7 @@ bool os::remove_stack_guard_pages(char* addr, size_t size) {
18051805
void os::pd_realign_memory(char *addr, size_t bytes, size_t alignment_hint) {
18061806
}
18071807

1808-
void os::pd_free_memory(char *addr, size_t bytes, size_t alignment_hint) {
1808+
void os::pd_free_memory(char *addr, size_t bytes, size_t alignment_hint, MEMFLAGS flag) {
18091809
}
18101810

18111811
size_t os::pd_pretouch_memory(void* first, void* last, size_t page_size) {
@@ -1847,7 +1847,7 @@ bool os::numa_get_group_ids_for_range(const void** addresses, int* lgrp_ids, siz
18471847
}
18481848

18491849
// Reserves and attaches a shared memory segment.
1850-
char* os::pd_reserve_memory(size_t bytes, bool exec) {
1850+
char* os::pd_reserve_memory(size_t bytes, bool exec, MEMFLAGS flag) {
18511851
// Always round to os::vm_page_size(), which may be larger than 4K.
18521852
bytes = align_up(bytes, os::vm_page_size());
18531853

@@ -1996,7 +1996,7 @@ void os::large_page_init() {
19961996
return; // Nothing to do. See query_multipage_support and friends.
19971997
}
19981998

1999-
char* os::pd_reserve_memory_special(size_t bytes, size_t alignment, size_t page_size, char* req_addr, bool exec) {
1999+
char* os::pd_reserve_memory_special(size_t bytes, size_t alignment, size_t page_size, char* req_addr, bool exec, MEMFLAGS flag) {
20002000
fatal("os::reserve_memory_special should not be called on AIX.");
20012001
return nullptr;
20022002
}
@@ -2015,7 +2015,7 @@ bool os::can_commit_large_page_memory() {
20152015
return false;
20162016
}
20172017

2018-
char* os::pd_attempt_map_memory_to_file_at(char* requested_addr, size_t bytes, int file_desc) {
2018+
char* os::pd_attempt_map_memory_to_file_at(char* requested_addr, size_t bytes, int file_desc, MEMFLAGS flag) {
20192019
assert(file_desc >= 0, "file_desc is not valid");
20202020
char* result = nullptr;
20212021

@@ -2033,7 +2033,7 @@ char* os::pd_attempt_map_memory_to_file_at(char* requested_addr, size_t bytes, i
20332033

20342034
// Reserve memory at an arbitrary address, only if that area is
20352035
// available (and not reserved for something else).
2036-
char* os::pd_attempt_reserve_memory_at(char* requested_addr, size_t bytes, bool exec) {
2036+
char* os::pd_attempt_reserve_memory_at(char* requested_addr, size_t bytes, bool exec, MEMFLAGS flag) {
20372037
char* addr = nullptr;
20382038

20392039
// Always round to os::vm_page_size(), which may be larger than 4K.

0 commit comments

Comments
 (0)