RFR: 8157023: Integrate NMT with JFR [v3]
Stefan Johansson
sjohanss at openjdk.org
Tue Dec 6 12:01:18 UTC 2022
On Tue, 6 Dec 2022 11:54:37 GMT, Stefan Johansson <sjohanss at openjdk.org> wrote:
>> Please review this enhancement to include NMT information in JFR recordings.
>>
>> **Summary**
>> Native Memory Tracking summary information can be obtained from a running VM using `jcmd` if started with `-XX:NativeMemoryTracking=summary/detail`. Using `jcmd` requires you to run a separate process and to parse the output to get the needed information. This change adds JFR events for NMT information to enable additional ways to consume the NMT data.
>>
>> There are two new events added:
>> * _NativeMemoryUsage_ - The total native memory usage.
>> * _NativeMemoryUsagePart_ - The native memory usage for each component.
>>
>> These events are sent periodically and by default the interval is 1s. This can of course be discussed, but that is the staring point. When NMT is not enabled on events will be sent.
>>
>> **Testing**
>> * Added a simple test to verify that the events are sent as expected depending on if NMT is enabled or not.
>> * Mach5 sanity testing
>
> Stefan Johansson has updated the pull request incrementally with one additional commit since the last revision:
>
> Special snapshot for NMT events in JFR
Updated the change as discussed above. Summary of the changes:
* New `MemSnapshot` class that can be configured to not walk the thread stacks
* Using this for JFR events (thread stacks are not walked)
* Skipping `mtNone` when sending events
* Not grouping `mtThread` and `mtThreadStack` as text report is doing, they are reported as individual events.
* Handling `mtChunk` as MemBaseline to avoid double counting, which leads to keeping a `ThreadCritical` for over the "malloc snapshot" to make sure we have consistent values.
I'm not totally sure I think there need to be options to skip malloc and vm snapshot, but I included it since it was proposed and discussed. I have no strong opinion, but I think they could be always included.
-------------
PR: https://git.openjdk.org/jdk/pull/11449
More information about the hotspot-dev
mailing list