Integrated: 8368811: [Leyden] Use AOTRuntimeConstants table for card_table::_byte_map_base
Vladimir Kozlov
kvn at openjdk.org
Fri Oct 3 01:33:20 UTC 2025
On Sat, 27 Sep 2025 23:55:51 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:
> Currently we use `Relocation` info to patch `card_table::_byte_map_base` referenced in compiled code. This is not completely correct since this is not address. We currently have special check in `AOTCodeCache::init2()` to skip AOT code generation and usage if `byte_map_base` is not relocatable [aotCodeCache.cpp#L341](https://github.com/openjdk/leyden/blob/premain/src/hotspot/share/code/aotCodeCache.cpp#L341)
>
> To avoid this we should use existing `AOTRuntimeConstants` table to load `byte_map_base` from it.
>
> I also added few missing loads `card_shift` from `AOTRuntimeConstants` table. Actually I am not sure why we have it in `AOTRuntimeConstants` table. From what I see, it is based on `GCCardSizeInBytes` flag [cardTable.cpp#L46](https://github.com/openjdk/leyden/blob/premain/src/hotspot/share/gc/shared/cardTable.cpp#L46) and never modified. The flags is not adjusted ergonomically. So we can simple record the flag in AOT code configuration and verify it when loading AOT code.
>
> @adinn what do you think about `card_shift` in `AOTRuntimeConstants` table? You added it there.
>
> Changes were testing tier1-5.
This pull request has now been integrated.
Changeset: f155270f
Author: Vladimir Kozlov <kvn at openjdk.org>
URL: https://git.openjdk.org/leyden/commit/f155270fc4a1852c50c732f45d8c80f417a11bde
Stats: 232 lines in 17 files changed: 72 ins; 120 del; 40 mod
8368811: [Leyden] Use AOTRuntimeConstants table for card_table::_byte_map_base
Reviewed-by: adinn
-------------
PR: https://git.openjdk.org/leyden/pull/102
More information about the leyden-dev
mailing list