RFR: 8354887: Preserve runtime blobs in AOT code cache [v2]
Vladimir Kozlov
kvn at openjdk.org
Wed May 7 22:32:54 UTC 2025
On Mon, 5 May 2025 21:13:24 GMT, Ashutosh Mehra <asmehra at openjdk.org> wrote:
>> [8350209](https://bugs.openjdk.org/browse/JDK-8350209) introduced the framework for storing code in aot code cache and used it for caching i2c/c2i adapters.
>> This PR extends the `AOTCodeCache` infrastructure and stores various runtime blobs (shared blobs, C1 and C2 runtime blobs) in the AOT code cache. It adds a new diagnostic flag `AOTStubCaching` to enable/disable the caching of these blobs.
>> `AOTCodeFlags.java` test is extended to cover `AOTStubCaching`.
>
> Ashutosh Mehra has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 11 commits:
>
> - Merge branch 'master' into preserve-runtime-blobs-master
> - Address Vladimir's comments
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - Remove irrelevant comment
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - Fix win64 compile failures
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - Fix AOTCodeFlags.java test
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - Fix compile failure in minimal config
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - Revert back changes that added AOTRuntimeConstants.
> Ensure CompressedOops::base and CompressedKlssPointers::base does not
> change in production run
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - Fix merge conflicts
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - Store/load AsmRemarks and DbgStrings in aot code cache
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - Add missing external address in aarch64
>
> Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
> - ... and 1 more: https://git.openjdk.org/jdk/compare/2a4f37cc...ba612dab
I also hit failure in `premain` testing in runtime/cds/appcds/leyden/LeydenHello.java#aot test on Windows-x64 due to wrong Compress Class encoding due to different base:
[0.031s][info][cds] The current max heap size = 1024M, G1HeapRegion::GrainBytes = 1048576
[0.031s][info][cds] narrow_klass_base = 0x0000015298000000, arrow_klass_pointer_bits = 32, narrow_klass_shift = 0
AOT code uses 0x800000000 instead :
88: 8b 78 08 mov edi,DWORD PTR [rax+0x8]
8b: 49 ba 00 00 00 00 08 movabs r10,0x800000000
92: 00 00 00
95: 49 03 fa add rdi,r10
98: 48 3b 5f 38 cmp rbx,QWORD PTR [rdi+0x38]
So we need the relocation fix from current changes in `premain` branch too.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/25019#issuecomment-2860595058
More information about the hotspot-runtime-dev
mailing list