Integrated: 8250989: Consolidate buffer allocation code for CDS static/dynamic dumping

Ioi Lam iklam at openjdk.java.net
Sun Feb 7 07:13:45 UTC 2021


On Thu, 28 Jan 2021 18:14:14 GMT, Ioi Lam <iklam at openjdk.org> wrote:

> 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

This pull request has now been integrated.

Changeset: c5ff4544
Author:    Ioi Lam <iklam at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/c5ff4544
Stats:     1395 lines in 42 files changed: 477 ins; 694 del; 224 mod

8250989: Consolidate buffer allocation code for CDS static/dynamic dumping

Reviewed-by: ccheung, coleenp

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

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


More information about the hotspot-runtime-dev mailing list