RFR: 8304074: [JMX] Add an approximation of total bytes allocated on the Java heap by the JVM [v19]
Paul Hohensee
phh at openjdk.org
Thu May 18 13:58:58 UTC 2023
On Thu, 18 May 2023 12:41:49 GMT, Paul Hohensee <phh at openjdk.org> wrote:
>> 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.
>
> Changed. Not sure atomic load is needed.
Even though this version passed the pre-submit tests, which include the new versions of ThreadAllocatedBytes.java, running it more often on a host with many hardware threads resulted in failures where getTotalAllocatedBytes did not monotonically increase. I believe what happened was that without an acquire/release, the hardware can float earlier stores to _exited_allocated_bytes above later ones. Adding acquire/release fixed the issue.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13814#discussion_r1197862479
More information about the serviceability-dev
mailing list