> 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:

  Sort forward declarations in collectedHeap.hpp

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/25214/files
  - new: https://git.openjdk.org/jdk/pull/25214/files/b54ebc02..cd326c2a

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=25214&range=06
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25214&range=05-06

  Stats: 6 lines in 1 file changed: 3 ins; 3 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

Reply via email to