RFR: 8250989: Consolidate buffer allocation code for CDS static/dynamic dumping [v3]
Coleen Phillimore
coleenp at openjdk.java.net
Sat Feb 6 14:41:54 UTC 2021
On Sat, 6 Feb 2021 07:42:13 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
>
> Ioi Lam has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
>
> - @coleenp and @tstuefe comments
> - Merge branch 'master' into 8250989-consolidate-dump-buffer-alloc
> - @calvinccheung and @tstuefe comments
> - fixed whitespace
> - clean up and comments
> - move remaining functions to archiveBuilder.cpp
> - renamed "default" to "requested"
> - started
src/hotspot/share/memory/archiveBuilder.hpp line 353:
> 351:
> 352: static ArchiveBuilder* current() {
> 353: assert_is_vm_thread();
Ok, thank you!
-------------
PR: https://git.openjdk.java.net/jdk/pull/2296
More information about the hotspot-runtime-dev
mailing list