From a9d21c61fb12a11e18c6bb8aa903e5a8e42473f1 Mon Sep 17 00:00:00 2001 From: Paul Hohensee Date: Wed, 26 Jul 2023 19:30:21 +0000 Subject: [PATCH] 8313081: MonitoringSupport_lock should be unconditionally initialized after 8304074 Reviewed-by: dholmes, sspitsyn, shade --- src/hotspot/share/runtime/mutexLocker.cpp | 4 ++-- src/hotspot/share/services/management.cpp | 1 + .../ThreadMXBean/ThreadAllocatedMemory.java | 15 ++++++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/hotspot/share/runtime/mutexLocker.cpp b/src/hotspot/share/runtime/mutexLocker.cpp index a94061c5d8c57..ea46300d14521 100644 --- a/src/hotspot/share/runtime/mutexLocker.cpp +++ b/src/hotspot/share/runtime/mutexLocker.cpp @@ -224,9 +224,9 @@ void mutex_init() { MUTEX_DEFN(MarkStackFreeList_lock , PaddedMutex , nosafepoint); MUTEX_DEFN(MarkStackChunkList_lock , PaddedMutex , nosafepoint); - - MUTEX_DEFN(MonitoringSupport_lock , PaddedMutex , service-1); // used for serviceability monitoring support } + MUTEX_DEFN(MonitoringSupport_lock , PaddedMutex , service-1); // used for serviceability monitoring support + MUTEX_DEFN(StringDedup_lock , PaddedMonitor, nosafepoint); MUTEX_DEFN(StringDedupIntern_lock , PaddedMutex , nosafepoint); MUTEX_DEFN(RawMonitor_lock , PaddedMutex , nosafepoint-1); diff --git a/src/hotspot/share/services/management.cpp b/src/hotspot/share/services/management.cpp index b8674d1ca45fb..a9c50a8bf06df 100644 --- a/src/hotspot/share/services/management.cpp +++ b/src/hotspot/share/services/management.cpp @@ -2116,6 +2116,7 @@ JVM_ENTRY(jlong, jmm_GetTotalThreadAllocatedMemory(JNIEnv *env)) } { + assert(MonitoringSupport_lock != nullptr, "Must be"); MutexLocker ml(MonitoringSupport_lock, Mutex::_no_safepoint_check_flag); if (result < high_water_result) { // Encountered (2) above, or result wrapped to a negative value. In diff --git a/test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java b/test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java index d54bb06b58765..3ff2a3baf1725 100644 --- a/test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java +++ b/test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java @@ -22,10 +22,19 @@ */ /* - * @test - * @bug 6173675 8231209 8304074 + * @test id=G1 + * @bug 6173675 8231209 8304074 8313081 * @summary Basic test of ThreadMXBean.getThreadAllocatedBytes - * @author Paul Hohensee + * @requires vm.gc.G1 + * @run main/othervm -XX:+UseG1GC ThreadAllocatedMemory + */ + +/* + * @test id=Serial + * @bug 6173675 8231209 8304074 8313081 + * @summary Basic test of ThreadMXBean.getThreadAllocatedBytes + * @requires vm.gc.Serial + * @run main/othervm -XX:+UseSerialGC ThreadAllocatedMemory */ import java.lang.management.*;