RFR: JDK-8301749: Tracking malloc pooled memory size [v4]

David Holmes dholmes at openjdk.org
Wed Feb 15 04:28:46 UTC 2023


On Tue, 14 Feb 2023 13:23:21 GMT, Johan Sjölen <jsjolen at openjdk.org> wrote:

>> 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.
>
> Johan Sjölen has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Use cr instead of \n
>  - Update man/jcmd.1

src/jdk.jcmd/share/man/jcmd.1 line 38:

> 36: . ftr VBI CBI
> 37: .\}
> 38: .TH "JCMD" "1" "2023" "JDK 21-ea" "JDK Commands"

Sorry my bad I gave you the wrong command to use to generate this. It should have been VERSION_SHORT=21-ea

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

PR: https://git.openjdk.org/jdk/pull/12455


More information about the hotspot-runtime-dev mailing list