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