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

David Holmes dholmes at openjdk.org
Tue May 16 04:41:55 UTC 2023


On Mon, 15 May 2023 23:12:52 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.
>
> Paul Hohensee has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 26 additional commits since the last revision:
> 
>  - 8304704: _exited_allocated_bytes increment does not have to be atomic
>  - Merge branch 'master' into 8304074
>  - 8304704: _exited_allocated_bytes increment does not have to be atomic
>  - 8304704: In getTotalThreadAllocatedBytes javadoc, 'launched' -> 'started'
>  - 8304704: Typos
>  - 8304074: fetch_then_add, not fetch_and_add
>  - 8304074: Assign to _add_long_func in add_long_bootstrap
>  - Merge branch 'master' into 8304074
>  - 8304074: Define FULL_MEM_BARRIER for linux_arm
>  - 8304074: set _atomic_add_long_entry = ShouldNotCallThisStub()
>  - ... and 16 more: https://git.openjdk.org/jdk/compare/f5da892e...effdefc6

Changes requested by dholmes (Reviewer).

src/hotspot/share/services/threadService.hpp line 113:

> 111:     // No need for atomicity, method is called under the Threads_lock
> 112:     _exited_allocated_bytes += size;
> 113:   }

As there is a lock-free read however you need to use Atomic::load and Atomic::store - especially for 32-bit systems.

test/jdk/com/sun/management/ThreadMXBean/ThreadAllocatedMemory.java line 228:

> 226: 
> 227:         // start threads
> 228:         done = false; done1 = false;

Nit: separate lines please

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

PR Review: https://git.openjdk.org/jdk/pull/13814#pullrequestreview-1427697736
PR Review Comment: https://git.openjdk.org/jdk/pull/13814#discussion_r1194595159
PR Review Comment: https://git.openjdk.org/jdk/pull/13814#discussion_r1194595657


More information about the serviceability-dev mailing list