RFR: 8293650: Shenandoah: Support archived heap objects [v7]
Aleksey Shipilev
shade at openjdk.org
Thu Aug 15 20:54:58 UTC 2024
On Thu, 15 Aug 2024 17:27:23 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 with a new target base due to a merge or a rebase. The pull request now contains ten commits:
>
> - Merge branch 'master' into JDK-8293650-shenandoah-archives
> - More review comments
> - Wrap the whole thing in CDS define
> - Work around 32-bit build failure
> - Review comments
> - Merge branch 'master' into JDK-8293650-shenandoah-archives
> - Move constant to separate class to unbreak Windows builds
> - Touchups in test
> - Basic implementation, works well, passes tests
Thank you!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20468#issuecomment-2292214646
More information about the shenandoah-dev
mailing list