RFR: 8250989: Consolidate buffer allocation code for CDS static/dynamic dumping [v2]

Ioi Lam iklam at openjdk.java.net
Tue Feb 2 00:13:59 UTC 2021


> Before this PR, when a static CDS archive is dumped, we would unconditionally allocate a 4GB ReservedSpace and use that as the buffer for writing the archive content. We usually don't need such a big ReservedSpace. this also unnecessarily complicates Metaspace::global_initialize().
> 
> After this PR, both we first load all the classes and then allocate a buffer with an appropriate size.
> 
> I also simplified the pointer relocation code that prepares the archive to be mapped at the "requested location" (usually 0x800000000), and improved the comments.
> 
> We used to have lots of special cases for adjusting pointers during dynamic dump. All of those are removed.
> 
> Reviewers, please start with
> - Header comments in archiveBuilder.hpp that describe the overall process of archive dumping
> - `MetaspaceShared::initialize_for_static_dump()`
> - `ArchiveBuilder::reserve_buffer()`
> - Comments around `RelocateBufferToRequested` in archiveBuilder.cpp

Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:

  @calvinccheung and @tstuefe comments

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/2296/files
  - new: https://git.openjdk.java.net/jdk/pull/2296/files/8d01b809..eac50351

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

  Stats: 7 lines in 3 files changed: 2 ins; 2 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2296.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2296/head:pull/2296

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


More information about the hotspot-runtime-dev mailing list