RFR: 8260262: Use common code in function unmap_shared() in perfMemory_posix.cpp

Thomas Stuefe stuefe at openjdk.java.net
Mon Aug 9 20:16:32 UTC 2021

On Mon, 9 Aug 2021 19:43:45 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> I'm not sure I understand what you are proposing.
>> The old code was incorrect since it used raw `::mmap()` to map perf memory, but used `os::release_memory()` to release it. This was asymmetric and assumed the underlying implementation for os::reserve/release... uses mmap, which is not always true. The patch corrects this by coupling raw ::mmap with raw ::munmap, and do NMT tracking accordingly.
>> Arguably, one could factor out mmap+NMT and munmap+NMT in os_posix.cpp. We probably have a number of places where this would be needed. E.g. polling pages and such. But I guess that was out of scope for this issue.
> I see, reading the code more ... The code to create the perf memory if PerfDisableSharedMemory=0 used mmap directly so it makes sense to use munmap directly too.  This is definitely better.
> Aside: This definition is the same on all the posix platforms so could be moved.  Not with this RFE but definitely a trivial one.
> bool os::pd_unmap_memory(char* addr, size_t bytes) {

I agree.


PR: https://git.openjdk.java.net/jdk/pull/4995

More information about the hotspot-runtime-dev mailing list