RFR: 8340733: Add scope for relaxing constraint on JavaCalls from CompilerThread [v3]
Benoit Daloze
duke at openjdk.org
Tue Nov 5 12:08:36 UTC 2024
On Wed, 25 Sep 2024 06:05:15 GMT, Doug Simon <dnsimon at openjdk.org> wrote:
>> [JDK-8318694](https://bugs.openjdk.org/browse/JDK-8318694) limited the ability for JVMCI CompilerThreads to make Java upcalls. This is to mitigate against deadlock when an upcall does class loading. Class loading can easily create deadlock situations in `-Xcomp` or `-Xbatch` mode.
>>
>> However, for Truffle, upcalls are unavoidable if Truffle partial evaluation occurs as part of JIT compilation inlining. This occurs when the Graal inliner sees a constant Truffle AST node which allows a Truffle-specific inlining extension to perform Truffle partial evaluation (PE) on the constant. Such PE involves upcalls to the Truffle runtime (running in Java).
>>
>> This PR provides the escape hatch such that Truffle specific logic can put a compiler thread into "allow Java upcall" mode during the scope of the Truffle logic.
>
> Doug Simon has updated the pull request incrementally with one additional commit since the last revision:
>
> rename changeCompilerThreadCanCallJava to updateCompilerThreadCanCallJava
Link: https://github.com/openjdk/jdk/pull/21285
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21171#issuecomment-2456996412
More information about the hotspot-compiler-dev
mailing list