RFR: 8338011: CDS archived heap object support for 64-bit Windows

Ioi Lam iklam at openjdk.org
Sun Aug 11 21:05:34 UTC 2024


On Fri, 9 Aug 2024 18:14:58 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:

>> We didn't support CDS archived heap object on Windows because
>> 
>> - The Windows implementation of `os::map_memory()` cannot map the contents of a file into a region that's already reserved by the garbage collector.
>> - We had a high failure rate for mapping the CDS archive on Windows due to ASLR, sometimes as high as 50%. So it didn't seem worth the effort (mainly testing) to support archived heap objects on Windows.
>> 
>> Both of the above issues were fixed in [JDK-8231610](https://bugs.openjdk.org/browse/JDK-8231610), so we should add the support to Windows now.
>> 
>> (Tested on Oracle CI tiers 1-7)
>
> src/hotspot/share/cds/heapShared.cpp line 1557:
> 
>> 1555:   //     At runtime, these classes are initialized before X's archived fields
>> 1556:   //     are restored by HeapShared::initialize_from_archived_subgraph().
>> 1557:   int i;
> 
> This cleanup seems unrelated to the fix but I think it's fine to include it.

This is necessary for the Windows build, which would fail because the `i` variable declared on this line is never used.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20514#discussion_r1713058088


More information about the hotspot-dev mailing list