Integrated: 8296344: Remove dependency on G1 for writing the CDS archive heap

Ioi Lam iklam at openjdk.org
Wed Feb 15 05:15:55 UTC 2023


On Tue, 31 Jan 2023 05:34:20 GMT, Ioi Lam <iklam at openjdk.org> wrote:

> Goals
> 
> - Simplify the writing of the CDS archive heap
>     - We no longer need to allocate special "archive regions" during CDS dump time. See all the removed G1 code. 
> - Make it possible to (in a future RFE) write the CDS archive heap using any garbage collector
> 
> Implementation - the following runs inside a safepoint so heap objects aren't moving
> 
> - Find all the objects that should be archived
> - Allocate buffer using a GrowableArray
>     - Copy all "open" objects into the buffer
>     - Copy all "closed" objects into the buffer
> - Make sure the heap image can be mapped with all possible G1 region sizes: 
>     - While copying, add fillers to make sure no object spans across 1MB boundary (minimal G1 region size)
>     - Align the bottom of the "open" and "closed" objects at 1MB boundary
> - Write the buffer to disk as the image for the archive heap
> 
> Testing: tiers 1 ~ 5

This pull request has now been integrated.

Changeset: bdcbafb2
Author:    Ioi Lam <iklam at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/bdcbafb2196f0360466ee789b969f2db954ca85f
Stats:     1928 lines in 26 files changed: 915 ins; 859 del; 154 mod

8296344: Remove dependency on G1 for writing the CDS archive heap

Reviewed-by: ayang, tschatzl, ccheung

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

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


More information about the hotspot-dev mailing list