RFR: 8350209: Preserve adapters in AOT cache [v12]

Vladimir Kozlov kvn at openjdk.org
Thu May 1 00:26:47 UTC 2025


On Wed, 30 Apr 2025 22:59:03 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> Vladimir Kozlov has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   address Ioi's comments
>
> src/hotspot/share/runtime/sharedRuntime.cpp line 2852:
> 
>> 2850:     entry_offset[2] = handler->get_c2i_unverified_entry() - i2c_entry;
>> 2851:     entry_offset[3] = handler->get_c2i_no_clinit_check_entry() - i2c_entry;
>> 2852:     AOTCodeCache::store_code_blob(*adapter_blob, AOTCodeEntry::Adapter, id, name, AdapterHandlerEntry::ENTRIES_COUNT, entry_offset);
> 
> What the intended behavior here when `AOTCodeCache::store_code_blob` fails?

If something happened when we tried to store blob (adapter in this case) into buffer (for example, if reserved for AOT code buffer is too small) the next will be called:

    set_failed();
    exit_vm_on_store_failure();

So we either abort VM based on the flag or issue warning (as you suggested) and continue execution.

`set_failed()` will prevent following attempts to cache blobs and prevent final dump any cached code into AOT cache:

 bool for_dump() const { return _for_dump && !_failed; }

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24740#discussion_r2069703345


More information about the hotspot-runtime-dev mailing list