RFR: 8346123: [REDO] NMT should not use ThreadCritical [v3]

Robert Toyonaga duke at openjdk.org
Wed Dec 18 14:40:55 UTC 2024


On Wed, 18 Dec 2024 04:24:51 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> Robert Toyonaga has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   updates tests and remove old class
>
> src/hotspot/os/windows/os_windows.cpp line 3624:
> 
>> 3622: #ifdef ASSERT
>> 3623:       fileStream fs(stdout);
>> 3624:       os::print_memory_mappings((char*)start, bytes, &fs);
> 
> Why was this change made? tty could be stdout or stderr depending on VM flag settings.

This change was decided on in the original PR after it was discovered that calling [os::print_memory_mappings](https://github.com/openjdk/jdk/blob/jdk-25%2B2/src/hotspot/os/windows/os_windows.cpp#L3623) from the windows implementation of `os::pd_release_memory` causes a rank conflict between `tty_lock` and `NmtVirtualMemory_lock`. This is getting called from `os::release_memory` [after we've already acquired the lock for NMT](https://github.com/openjdk/jdk/blob/jdk-25%2B2/src/hotspot/share/runtime/os.cpp#L2202-L2203).

Original discussion here https://github.com/openjdk/jdk/pull/20852#issuecomment-2350882050.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/22745#discussion_r1890345578


More information about the serviceability-dev mailing list