RFR: 8316694: Implement relocation of nmethod within CodeCache [v34]
Evgeny Astigeevich
eastigeevich at openjdk.org
Tue Jul 8 15:40:53 UTC 2025
On Wed, 2 Jul 2025 22:24:07 GMT, Chad Rakoczy <duke at openjdk.org> wrote:
>> This PR introduces a new function to replace nmethods, addressing [JDK-8316694](https://bugs.openjdk.org/browse/JDK-8316694). It enables the creation of new nmethods from existing ones, allowing method relocation in the code heap and supporting [JDK-8328186](https://bugs.openjdk.org/browse/JDK-8328186).
>>
>> When an nmethod is replaced, a deep copy is performed. The corresponding Java method is updated to reference the new nmethod, while the old one is marked as unused. The garbage collector handles final cleanup and deallocation.
>>
>> This change only slightly modifies existing code paths and therefore does not benefit much from existing tests. New tests were created to test the new functionality
>>
>> Additional Testing:
>> - [ ] Linux x64 fastdebug all
>> - [ ] Linux aarch64 fastdebug all
>> - [ ] ...
>
> Chad Rakoczy has updated the pull request incrementally with one additional commit since the last revision:
>
> Update justification for skipping CallRelocation
src/hotspot/share/code/nmethod.cpp line 1549:
> 1547: #ifdef USE_TRAMPOLINE_STUB_FIX_OWNER
> 1548: // Direct calls may no longer be in range and the use of a trampoline may now be required.
> 1549: // Instead allow the trapoline relocations to update their owner and perform the necessary checks.
> ... trapoline
trampoline
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/23573#discussion_r2192857245
More information about the hotspot-compiler-dev
mailing list