RFR: JDK-8301749: Tracking malloc pooled memory size
Johan Sjölen
jsjolen at openjdk.org
Tue Feb 7 15:11:42 UTC 2023
This PR implements `os::malloc_info` by calling into glibc's `malloc_info` and provides a JCmd for asking the JVM to call `malloc_info` and print out the results. The user can make an informed decision regarding heap trimming by parsing the output of the JCmd. I wanted to avoid parsing the XML inside of the JVM , as this functionality may turn out to be "good enough". A future enhancement would be for the JVM to make this informed decision by parsing the output. Another may be to present this with other data, for example in NMT.
@tstuefe, I think you'd be interested in this PR as it builds upon your `trim_native_heap` functionality.
I'm using weak symbols (as per ELF) in order to compile this for both GLibc and Musl.
The original bug description is this:
>Memory not allocated via NMT and uncommitted memory contributes to a discrepancy between NMT and RSS.
It can be hard to distinguish between these cases.
If the VM can determine the amount of pooled memory by malloc it would help with both determining if a trim_native_memory is needed, or there are some allocations happening outside of NMT.
>
>It would be good if the VM can summarize the malloc pooled memory by using e.g. malloc_info(3).
>
>We can thus more precise account for RSS value.
-------------
Commit messages:
- Implement malloc_info jcmd
Changes: https://git.openjdk.org/jdk/pull/12455/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12455&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8301749
Stats: 115 lines in 5 files changed: 115 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/12455.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12455/head:pull/12455
PR: https://git.openjdk.org/jdk/pull/12455
More information about the hotspot-runtime-dev
mailing list