RFR: 8369622: GlobalChunkPoolMutex needs to be recursive

Zhengyu Gu zgu at openjdk.org
Tue Oct 14 08:01:05 UTC 2025


On Sun, 12 Oct 2025 12:55:53 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.

What about using `os::current_thread_id()` for lock owner? it avoids the dependence on the existing of `Thread*`  and more semantically close to the original `ThreadCritical`.

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

PR Comment: https://git.openjdk.org/jdk/pull/27759#issuecomment-3400562014


More information about the hotspot-runtime-dev mailing list