RFR: 8293650: Shenandoah: Support archived heap objects [v2]
    Aleksey Shipilev 
    shade at openjdk.org
       
    Mon Aug  5 17:13:06 UTC 2024
    
    
  
> 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
>  - [ ] Linux AArch64 server fastdebug, `all` with `-XX:+UseShenandoahGC -XX:+ShenandoahVerify`
>  - [ ] Same as above, but `MIN_GC_REGION_ALIGNMENT` manually dropped to 256K
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
-------------
Changes:
  - all: https://git.openjdk.org/jdk/pull/20468/files
  - new: https://git.openjdk.org/jdk/pull/20468/files/a86686f7..3a8fa655
Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=20468&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=20468&range=00-01
  Stats: 17 lines in 2 files changed: 9 ins; 6 del; 2 mod
  Patch: https://git.openjdk.org/jdk/pull/20468.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20468/head:pull/20468
PR: https://git.openjdk.org/jdk/pull/20468
    
    
More information about the hotspot-dev
mailing list