RFR: JDK-8277383: VM.metaspace optionally show chunk freelist details [v2]

Thomas Stuefe stuefe at openjdk.java.net
Fri Nov 26 14:41:47 UTC 2021


> A tiny patch to add an optional suboption to print out chunk freelist details with VM.metaspace; this is a followup from analyzing https://bugs.openjdk.java.net/browse/JDK-8277092.
> 
> -----
> 
> Tested: GHA, SAP nightlies, manual on x64, x86 Linux
> Failing compiler test on x86-32 (compiler/c2/irTests/TestUnsignedComparison.java) unrelated, see JDK-8277324
> "C2 compilation fails with "bad AD file" on x86-32 after JDK-8276162 due to missing match rule"
> 
> -----
> 
> Example use:
> 
> 
> jcmd  HelloWorld VM.metaspace chunkfreelist
> 
>  ...
>  
> Chunk freelist details:
>    Non-Class:
> cm non-class-space: 7 chunks, total word size: 326144.
> -- List[lv00]: empty
> -- List[lv01]:  - <Chunk @0x00007f50d8122db0, state f, base 0x00007f5084600000, level lv01 (262144 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv02]: empty
> -- List[lv03]: empty
> -- List[lv04]:  - <Chunk @0x00007f50d8122e88, state f, base 0x00007f5084540000, level lv04 (32768 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv05]:  - <Chunk @0x00007f50d8122ed0, state f, base 0x00007f5084520000, level lv05 (16384 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv06]:  - <Chunk @0x00007f50d8122f18, state f, base 0x00007f5084510000, level lv06 (8192 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv07]:  - <Chunk @0x00007f50d8122f60, state f, base 0x00007f5084508000, level lv07 (4096 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv08]:  - <Chunk @0x00007f50d8122fa8, state f, base 0x00007f5084504000, level lv08 (2048 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv09]: empty
> -- List[lv10]:  - <Chunk @0x00007f50d8123038, state f, base 0x00007f5084503000, level lv10 (512 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv11]: empty
> -- List[lv12]: empty
> total chunks: 7, total word size: 326144.
> 
>        Class:
> cm class-space: 6 chunks, total word size: 465920.
> -- List[lv00]: empty
> -- List[lv01]:  - <Chunk @0x00007f50d81229c0, state f, base 0x00000007c0200000, level lv01 (262144 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv02]:  - <Chunk @0x00007f50d8122a08, state f, base 0x00000007c0100000, level lv02 (131072 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv03]:  - <Chunk @0x00007f50d8122a50, state f, base 0x00000007c0080000, level lv03 (65536 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv04]: empty
> -- List[lv05]: empty
> -- List[lv06]: empty
> -- List[lv07]:  - <Chunk @0x00007f50d8122b70, state f, base 0x00000007c0008000, level lv07 (4096 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv08]:  - <Chunk @0x00007f50d8122bb8, state f, base 0x00000007c0004000, level lv08 (2048 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv09]:  - <Chunk @0x00007f50d8122c00, state f, base 0x00000007c0002000, level lv09 (1024 words), used 0 words, committed 0 words.> - total : 1 chunks.
> -- List[lv10]: empty
> -- List[lv11]: empty
> -- List[lv12]: empty
> total chunks: 6, total word size: 465920.

Thomas Stuefe has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains one additional commit since the last revision:

  JDK-8277383-VM-metaspace-optionally-show-chunk-freelist-details

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/6452/files
  - new: https://git.openjdk.java.net/jdk/pull/6452/files/9870321b..442d9c07

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=6452&range=01
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=6452&range=00-01

  Stats: 30069 lines in 686 files changed: 19187 ins; 6524 del; 4358 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6452.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6452/head:pull/6452

PR: https://git.openjdk.java.net/jdk/pull/6452


More information about the hotspot-runtime-dev mailing list