RFR: 8293650: Shenandoah: Support archived heap objects [v2]

Roman Kennke rkennke at openjdk.org
Tue Aug 13 17:48:54 UTC 2024


On Mon, 5 Aug 2024 17:13:06 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> This implements CDS Java heap loading for Shenandoah. There are peculiarities with how CDS loads objects: it basically asks for a contiguous block of memory, fills it out, potentially relocating the objects. This gets interesting when a single Shenandoah region cannot contain the entirety of the load. See the implementation for gory details.
>> 
>> Current implementation would work well only with Shenandoah heap regions >= 1M, in other words, with the heaps >=2G. It would be better if we trim down the min alignment, thus unblocking smaller heaps. It is not necessary to do so in this PR,  so I track that work separately: [JDK-8337828](https://bugs.openjdk.org/browse/JDK-8337828).
>> 
>> Additional testing:
>>  - [x] New test
>>  - [x] Linux AArch64 server fastdebug, `all` with `-XX:+UseShenandoahGC -XX:+ShenandoahVerify`
>>  - [x] Same as above, but `MIN_GC_REGION_ALIGNMENT` manually dropped to 256K (mimics [JDK-8337828](https://bugs.openjdk.org/browse/JDK-8337828))
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Move constant to separate class to unbreak Windows builds

Nice work! Only a minor nit/question.

src/hotspot/share/cds/archiveHeapWriter.hpp line 126:

> 124:   // depends on -Xmx, but can never be smaller than 1 * M.
> 125:   // (TODO: Perhaps change to 256K to be compatible with Shenandoah)
> 126:   static constexpr int MIN_GC_REGION_ALIGNMENT = 1 * M;

Couldn't you just move up the constant to the public section?
Also, I'm not sure what's the point of it being constexpr (rather that just const), but that is pre-existing.

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

Changes requested by rkennke (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/20468#pullrequestreview-2236189386
PR Review Comment: https://git.openjdk.org/jdk/pull/20468#discussion_r1715688606


More information about the shenandoah-dev mailing list