Skip to content

Commit 2b05fae

Browse files
author
Harold Seigel
committedAug 10, 2021
8260262: Use common code in function unmap_shared() in perfMemory_posix.cpp
Reviewed-by: stuefe, coleenp
1 parent f2599ad commit 2b05fae

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed
 

‎src/hotspot/os/posix/perfMemory_posix.cpp

+14-9
Original file line numberDiff line numberDiff line change
@@ -1023,18 +1023,23 @@ static char* mmap_create_shared(size_t size) {
10231023
return mapAddress;
10241024
}
10251025

1026-
// release a named shared memory region
1026+
// release a named shared memory region that was mmap-ed.
10271027
//
10281028
static void unmap_shared(char* addr, size_t bytes) {
1029-
#if defined(_AIX)
1030-
// Do not rely on os::reserve_memory/os::release_memory to use mmap.
1031-
// Use os::reserve_memory/os::release_memory for PerfDisableSharedMem=1, mmap/munmap for PerfDisableSharedMem=0
1032-
if (::munmap(addr, bytes) == -1) {
1033-
warning("perfmemory: munmap failed (%d)\n", errno);
1029+
int res;
1030+
if (MemTracker::tracking_level() > NMT_minimal) {
1031+
// Note: Tracker contains a ThreadCritical.
1032+
Tracker tkr(Tracker::release);
1033+
res = ::munmap(addr, bytes);
1034+
if (res == 0) {
1035+
tkr.record((address)addr, bytes);
1036+
}
1037+
} else {
1038+
res = ::munmap(addr, bytes);
1039+
}
1040+
if (res != 0) {
1041+
log_info(os)("os::release_memory failed (" PTR_FORMAT ", " SIZE_FORMAT ")", p2i(addr), bytes);
10341042
}
1035-
#else
1036-
os::release_memory(addr, bytes);
1037-
#endif
10381043
}
10391044

10401045
// create the PerfData memory region in shared memory.

0 commit comments

Comments
 (0)
Please sign in to comment.