RFR: 8364929: Assign unique id to each AdapterBlob stored in AOTCodeCache

Vladimir Kozlov kvn at openjdk.org
Tue Sep 30 18:05:45 UTC 2025


On Mon, 29 Sep 2025 16:22:45 GMT, Ashutosh Mehra <asmehra at openjdk.org> wrote:

> This patch assigns unique id to each AdapterHandlerEntry so as to avoid using hash computed from AdapterFingerPrint which may not be unique. Unique id allows AOTCodeCache to locate the AdapterBlob being requested to be loaded.
> 
> Testing:
> Before this patch `runtime/cds/appcds/aotClassLinking/StringConcatStress.java` emits warning messages in the production run:
> 
> [0.009s][warning][aot,codecache,stubs] Saved blob's name 'LIIDIIIDL' is different from the expected name 'LIIDIIDL'
> [0.009s][warning][aot                ] Failed to link AdapterHandlerEntry (fp=LIIDIIDL) to its code in the AOT code cache
> [0.009s][warning][aot,codecache,stubs] Saved blob's name 'IILLLLIIIIII' is different from the expected name 'IILLLLLILIII'
> [0.009s][warning][aot                ] Failed to link AdapterHandlerEntry (fp=IILLLLLILIII) to its code in the AOT code cache
> 
> With this patch, such warnings are not seen at all

src/hotspot/share/runtime/sharedRuntime.cpp line 3008:

> 3006:   });
> 3007:   // Set adapter id to the maximum id found in the AOTCache
> 3008:   _id_counter = max_id;

Is this number the same as number of AOT adapter entries in AdapterHandlerEntry? Do we need `max_id`? In which case they could be different?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/27553#discussion_r2392423283


More information about the hotspot-dev mailing list