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

Thomas Stuefe stuefe at openjdk.java.net
Mon Nov 22 08:16:32 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.

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

Commit messages:
 - JDK-8277383-VM-metaspace-optionally-show-chunk-freelist-details

Changes: https://git.openjdk.java.net/jdk/pull/6452/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6452&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8277383
  Stats: 48 lines in 5 files changed: 47 ins; 0 del; 1 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