RFR: 8304074: [JMX] Add an approximation of total bytes allocated on the Java heap by the JVM

Volker Simonis simonis at openjdk.org
Fri May 5 17:16:16 UTC 2023


On Thu, 4 May 2023 19:54:57 GMT, Paul Hohensee <phh at openjdk.org> wrote:

> Please review this addition to com.sun.management.ThreadMXBean that returns the total number of bytes allocated on the Java heap since JVM launch by both terminated and live threads.
> 
> Because this PR adds a new interface method, I've updated the JMM_VERSION to 4, but would be happy to update it to 3_1 instead.

Looks good in general. Please find my comments inline.

src/hotspot/share/include/jmm.h line 55:

> 53:   JMM_VERSION_2   = 0x20020000, // JDK 10
> 54:   JMM_VERSION_3   = 0x20030000, // JDK 14
> 55:   JMM_VERSION_3_0 = 0x20030000,

Why do we need `JMM_VERSION_3_0`? We haven't defined `JMM_VERSION_2_0` either.

src/hotspot/share/include/jmm.h line 321:

> 319:                                                   jstring flag_name,
> 320:                                                   jvalue  new_value);
> 321:   jlong        (JNICALL *GetAllThreadAllocatedMemory)

I'm not sure here, but I think there's no need to "overwrite" a *reserved* slot if you add this functionality to a new major release as you do. You also haven't done it when you've added `GetOneThreadAllocatedMemory()` with [JDK-8231209](https://bugs.openjdk.org/browse/JDK-8231209).

I think we should keep these *reserved* slots for the case when we eventually have to downport new functionality from a later release.

src/hotspot/share/services/management.cpp line 2282:

> 2280:   jmm_FindDeadlockedThreads,
> 2281:   jmm_SetVMGlobal,
> 2282:   jmm_GetAllThreadAllocatedMemory,

See comment on overwriting the `reserved6` slot above.

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

PR Review: https://git.openjdk.org/jdk/pull/13814#pullrequestreview-1414984240
PR Review Comment: https://git.openjdk.org/jdk/pull/13814#discussion_r1186213343
PR Review Comment: https://git.openjdk.org/jdk/pull/13814#discussion_r1186224124
PR Review Comment: https://git.openjdk.org/jdk/pull/13814#discussion_r1186301611


More information about the serviceability-dev mailing list