RFR: 8317368: [JVMCI] SIGSEGV in JVMCIEnv::initialize_installed_code on libgraal [v4]
Tom Rodriguez
never at openjdk.org
Mon Apr 15 19:30:30 UTC 2024
On Mon, 15 Apr 2024 17:55:54 GMT, Tom Rodriguez <never at openjdk.org> wrote:
>> This fixes some lurking issues with JVMCI and nmethod related both BarrierSetNMethod and the garbage collection of nmethods. In particular the stack walking in c2v_iterateFrames visits many frames and needs a KeepStackGCProcessedMark for safety. Additionally, JVMCI interacts with nmethods in complex ways and needs some sort of strong root during these interactions. A new JavaThread field has been added that mirrors the way JVMTI keeps nmethods alive.
>
> Tom Rodriguez has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains five commits:
>
> - Merge branch 'master' into tkr-nmethod-keep-alive
> - Comment updates
> - Merge branch 'master' into tkr-nmethod-keep-alive
> - Move BarrierSetNMethod call into JVMCINMethodHandle::set_nmethod
> - 8317368: [JVMCI] SIGSEGV in JVMCIEnv::initialize_installed_code on libgraal
Regarding the comment about the special state, the problem is that the nmethod must be visited by the GC while it's alive and the only way to ensure that for it to be explicitly visited during GC. There's no way to fixup the nmethod after the fact.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/17714#issuecomment-2057648517
More information about the graal-dev
mailing list