RFR(s): 8189864: Provide an ascii map to visualize metaspace fragmentation
Thomas Stüfe
thomas.stuefe at gmail.com
Wed Oct 25 04:51:46 UTC 2017
Hi all,
could I please have your thoughts and reviews for this enhancement:
Issue: https://bugs.openjdk.java.net/browse/JDK-8189864
Webrev: http://cr.openjdk.java.net/~stuefe/webrevs/8189864-
metaspace-map/webrev.00/webrev/
At SAP, we added a something we call a metaspace map to the metaspace
analysis functions. This is a very simple ASCII print of the metaspace
layout. It shows the composition of the VirtualSpaceNodes on a chunk basis.
It facilitates examining fragmentation and has been proven useful when
experimenting with the metaspace allocator.
This change adds the map printing code and invokes it if a Metaspace OOM
occurs and -Xlog:gc+metaspace+freelist=debug is active (in this case, we
already print out a bunch of things). We also may consider adding this to
NMT or as a jcmd addition, but I did not want to overload the patch.
Example output looks like this (mind that this will only make sense with a
monospaced font). Dots indicate starts of chunks. Letters indicate chunk
type - (H)umongous, (M)edium, (S)mall (X)specialized - with lower case
letters indicating
a free chunk, upper case letters indicating a chunk in use.
0x0000000100000000: ......
xxxxxxHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
0x0000000100020000:
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
0x0000000100040000:
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
0x0000000100060000: . . . . . . . . . . . . . .
SSSSSSSSSSSSMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMSSSSSSSSMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
0x0000000100080000: . . . .
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
0x00000001000a0000: . . . .
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
0x00000001000c0000: . . . .
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
0x00000001000e0000: . . . .
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
0x0000000100100000: . . . . . . . . . . . . . . . . . . . . . . . .
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
MMMMMMMMMMMMMMMMMMMMMMSSSSMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
0x0000000100120000: . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
Thank you!
Thomas
More information about the hotspot-runtime-dev
mailing list