RFR: 8338912: CDS: Segmented roots array [v8]
Aleksey Shipilev
shade at openjdk.org
Wed Sep 11 09:10:06 UTC 2024
On Tue, 10 Sep 2024 09:59:37 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> Attempt to drop the min region alignment with [JDK-8337828](https://bugs.openjdk.org/browse/JDK-8337828) highlights an interesting trouble. The roots array we are creating during the dump time can easily be larger than the min region alignment. We are currently "lucky" none of our tests hit this limit. AFAICS, about 128K classes would be enough to hit the current 1M min region alignment. Dropping the min region alignment to 256K starts to fail the test with "only" 30K classes, [JDK-8338856](https://bugs.openjdk.org/browse/JDK-8338856).
>>
>> We can slice that heap root array, and thus untie the roots count from the min region alignment. I am submitting something that works, but this might not be the final form for it. I would like @iklam to poke holes in this approach :)
>>
>> Additional testing:
>> - [x] macos-aarch64-server-fastdebug, `runtime/cds`
>> - [ ] linux-aarch64-server-fastdebug, `all`
>> - [ ] linux-x86_64-server-fastdebug, `all`
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>
> Make sure HeapRootSegments representation does not hold garbage
Our testing passes here as well. I also changed `MIN_GC_REGION_ALIGNMENT = 256K` locally, and ran `runtime/cds` tests wirth `-XX:-UseCompressedOops`, which was one of the scenarios that used to run into problems. These pass as well.
I think we are done here. We need a second Reviewer, maybe @calvinccheung?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20858#issuecomment-2343077284
More information about the hotspot-runtime-dev
mailing list