Integrated: 8293650: Shenandoah: Support archived heap objects

Aleksey Shipilev shade at openjdk.org
Thu Aug 15 20:54:59 UTC 2024


On Mon, 5 Aug 2024 16:32:09 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))

This pull request has now been integrated.

Changeset: d86e99c3
Author:    Aleksey Shipilev <shade at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/d86e99c3ca94ee8705e44fe2830edd3ceb0a7f64
Stats:     201 lines in 7 files changed: 189 ins; 6 del; 6 mod

8293650: Shenandoah: Support archived heap objects

Reviewed-by: rkennke, wkemper, iklam

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

PR: https://git.openjdk.org/jdk/pull/20468


More information about the shenandoah-dev mailing list