> Hello, > > The goal of this RFE is to separate Metaspace printing from GC printing. The > main reason Metaspace and GC printing is coupled the way it is right now is > because historically, the permanent generation (PermGen), which was replaced > by Metaspace, was part of the GC heap. Hence, it made sense to also print > info about the PermGen when printing the GC heap. > > With Metaspace replacing the PermGen, which uses memory that is separate from > the GC heap, the coupling has become more loose, raising the question if > Metaspace should be printed somewhere else (maybe when printing *other* > Metaspace stuff?). A reason to still print Metaspace when printing the heap > is that the GC is responsible for unloading classes and nmethods, which means > it makes sense to print Metaspace information in connection to when a GC is > performed. > > To better reflect the current state of the JVM, I propse we make the > following changes to separate Metaspace from GC printing: > * Move Metaspace printing from HeapInfoDCmd to MetaspaceDCmd. > * Move Metaspace printing from the "Heap:" section to "Metaspace:" section in > vmError.cpp (hs_err files, the VM.info jcmd and -XX:+PrintVMInfoAtExit). > * Use gc+exit instead of gc+heap+exit as tags for the LogTarget during exit > printing to reflect that it's not only the heap being printed. > * And the largest change in terms of LOC, separate Metaspace and GC Heap > prints in the before/after GC invocation(s) printing. This is also recorded > in a ring buffer, which is printed in vmError.cpp. > > Testing: > * GHA, Oracle's tier 1-4 > * Manuel inspection of printed content
Joel Sikström has updated the pull request incrementally with one additional commit since the last revision: Add back MetaspaceUtils::print_on() in Metaspace jcmd ------------- Changes: - all: https://git.openjdk.org/jdk/pull/25214/files - new: https://git.openjdk.org/jdk/pull/25214/files/60c5b606..b54ebc02 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=25214&range=05 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25214&range=04-05 Stats: 2 lines in 1 file changed: 2 ins; 0 del; 0 mod Patch: https://git.openjdk.org/jdk/pull/25214.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/25214/head:pull/25214 PR: https://git.openjdk.org/jdk/pull/25214