On Fri, 27 Oct 2023 12:28:51 GMT, Thomas Stuefe <stu...@openjdk.org> wrote:

>> Analysts and supporters often use /proc/xx/maps to make sense of the memory 
>> footprint of a process.
>> 
>> Interpreting the memory map correctly can help when used as a complement to 
>> other tools (e.g. NMT). There even exist tools out there that attempt to 
>> annotate the process memory map with JVM information.
>> 
>> That, however, can be more accurately done from within the JVM, at least for 
>> mappings originating from hotspot. After all, we can correlate the mapping 
>> information in NMT with the VMA map.
>> 
>> Example output (from a spring petstore run):
>> 
>> [example_system_map.txt](https://github.com/openjdk/jdk/files/13179054/example_system_map.txt)
>> 
>> This patch adds the VM annotations for VMAs that are *mmaped*. I also have 
>> an experimental patch that works with malloc'ed memory, but it is not ready 
>> yet for consumption and I leave that part of for now.
>
> Thomas Stuefe has updated the pull request incrementally with three 
> additional commits since the last revision:
> 
>  - Fix spelling
>  - timeout fuse
>  - Feedback Johan

I really like this feature, hope the other platforms can be done as well. (I am 
also really looking forward to seeing how you did the "malloc" version)

I think we should set the user expectations correctly and say somewhere that 
these mappings are only for mmaped memory, ex change:

`Memory mappings:`

to

`Memory mappings (mmaped):`

or something like that.

These lines look akward next to each other:


0x000000070a400000 - 0x0000000800000000  4123000832  ---p 00000000    JAVAHEAP  
                    
0x00007f4e747dd000 - 0x00007f4e747e1000       16384  ---p 00000000    
STACK(72821 "AWT-EventQueue-0") 
0x0000563e6decb000 - 0x0000563e6decc000        4096  r--p 00000000              
                    
/home/gerard/Desktop/Work/8318636/jdk/build/linux-x86_64-server-fastdebug/images/jdk/bin/java
0x00007f4e26000000 - 0x00007f4e26d3b000    13873152  rw-p 00001000    CDS       
                    
/home/gerard/Desktop/Work/8318636/jdk/build/linux-x86_64-server-fastdebug/images/jdk/lib/server/classes.jsa


in my opinion. The majority of entries either have the component or path in the 
**info** field (except CDS). Could we print it simply as:


0x000000070a400000 - 0x0000000800000000  4123000832  ---p 00000000    JAVAHEAP  
                    
0x00007f4e747dd000 - 0x00007f4e747e1000       16384  ---p 00000000    
STACK(72821 "AWT-EventQueue-0") 
0x0000563e6decb000 - 0x0000563e6decc000        4096  r--p 00000000    
/home/gerard/Desktop/Work/8318636/jdk/build/linux-x86_64-server-fastdebug/images/jdk/bin/java
0x00007f4e26000000 - 0x00007f4e26d3b000    13873152  rw-p 00001000    
CDS=/home/gerard/Desktop/Work/8318636/jdk/build/linux-x86_64-server-fastdebug/images/jdk/lib/server/classes.jsa


I find the compact way more aesthetically pleasing and easier to read.

Next I'm going to start looking into the implementation...

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

Changes requested by gziemski (Committer).

PR Review: https://git.openjdk.org/jdk/pull/16301#pullrequestreview-1702252387

Reply via email to