RFR: 8296344: Remove dependency on G1 for writing the CDS archive heap [v4]
Ioi Lam
iklam at openjdk.org
Fri Feb 3 05:23:26 UTC 2023
> 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
Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:
Simplified relocation by using buffered address instead of requested address
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/12304/files
- new: https://git.openjdk.org/jdk/pull/12304/files/2b814bdd..00dcedd7
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=12304&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=12304&range=02-03
Stats: 34 lines in 3 files changed: 5 ins; 7 del; 22 mod
Patch: https://git.openjdk.org/jdk/pull/12304.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12304/head:pull/12304
PR: https://git.openjdk.org/jdk/pull/12304
More information about the hotspot-dev
mailing list