RFR: 8346123: [REDO] NMT should not use ThreadCritical [v5]
Robert Toyonaga
duke at openjdk.org
Thu Dec 19 21:04:53 UTC 2024
On Wed, 18 Dec 2024 23:01:38 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> Robert Toyonaga has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains seven commits:
>>
>> - Merge master
>> - move MemTracker::set_done_bootstrap()
>> - Update src/hotspot/share/utilities/vmError.cpp
>>
>> Co-authored-by: David Holmes <62092539+dholmes-ora at users.noreply.github.com>
>> - updates tests and remove old class
>> - use ConditionalMutexLocker directly
>> - Fix concurrency issue. Add assertions. Update tests.
>> - Revert "8343726: [BACKOUT] NMT should not use ThreadCritical"
>>
>> This reverts commit c3df050b88ecef123199a4e96f6d9884d064ae45.
>
> Oh yes, now I see, sorry I did repeat Kim's suggestion.
Thank you @coleenp and @kimbarrett for the advice on the best way to use `ConditionalMutexLocker` without subclassing it. I've adopted your suggestions.
> src/hotspot/share/runtime/mutexLocker.cpp line 292:
>
>> 290: MUTEX_DEFN(NMTQuery_lock , PaddedMutex , safepoint);
>> 291: MUTEX_DEFN(NMTCompilationCostHistory_lock , PaddedMutex , nosafepoint);
>> 292: MUTEX_DEFN(NmtVirtualMemory_lock , PaddedMutex , service-4);
>
> Why is this service-4? Does it depend on being a rank lower than another lock? If so, this and the SharedDecoder_lock should be declared below as MUTEX_DEFL and call out that lock.
Yes, it must have a lower rank than "G1Mapper_lock" which is in `G1RegionsSmallerThanCommitSizeMapper`, not in `mutexLocker.cpp`. I've moved `SharedDecoder_lock` down below as `MUTEX_DEFL` and I've left a comment beside `MUTEX_DEFN(NmtVirtualMemory_lock, PaddedMutex , service-4);` to explain the rank. Would this be enough?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22745#issuecomment-2555767690
PR Review Comment: https://git.openjdk.org/jdk/pull/22745#discussion_r1893136241
More information about the serviceability-dev
mailing list