RFR: 8369622: GlobalChunkPoolMutex needs to be recursive [v2]
Coleen Phillimore
coleenp at openjdk.org
Wed Oct 15 20:51:47 UTC 2025
On Wed, 15 Oct 2025 17:05:41 GMT, Johan Sjölen <jsjolen at openjdk.org> wrote:
>> The GlobalChunkPoolMutex replaced ThreadCritical in [JDK-8356173](https://bugs.openjdk.org/browse/JDK-8356173). In NMT, we can unfortunately reach a recursive locking situation in situations when the VM is crashing and NMT attempts to perform a error report. I suggest that we make this particular mutex recursive, until we can resolve the design issues that causes this.
>>
>> This PR also replaces the static initialization with `DeferredStatic`, and fixes the indentation of access modifiers to be consistently 0-indented.
>>
>> Please note that we do not take the lock in NMT in order to allocate memory, but in order to have a "static picture" of the arena counters.
>
> Johan Sjölen has updated the pull request incrementally with one additional commit since the last revision:
>
> Recur again!
I still think it can use RecursiveMutex if you allow RecursiveMutex to have a null Thread*.
src/hotspot/share/memory/arena.cpp line 54:
> 52:
> 53: void lock() {
> 54: intx current = os::current_thread_id();
So this is okay but not Thread::current() ?
-------------
Changes requested by coleenp (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/27759#pullrequestreview-3342036013
PR Review Comment: https://git.openjdk.org/jdk/pull/27759#discussion_r2433793862
More information about the hotspot-runtime-dev
mailing list