RFR: 8167353: [JVMCI] JVMCI re-initialization check is in the wrong location

Christian Thalinger cthalinger at twitter.com
Fri Oct 7 22:33:24 UTC 2016


> On Oct 7, 2016, at 11:30 AM, Doug Simon <doug.simon at oracle.com> wrote:
> 
> 
>> On 07 Oct 2016, at 19:27, Christian Thalinger <cthalinger at twitter.com> wrote:
>> 
>> I’m confused.  Why don’t you need this check anymore?
>> void JVMCIRuntime::initialize_HotSpotJVMCIRuntime(TRAPS) {
>> 
>> -  if (JNIHandles::resolve(_HotSpotJVMCIRuntime_instance) == NULL) {
>> Is this because of a change in Graal? 
> 
> No, it’s because this method this is called exactly once, along this call chain:
> 
> JVMCI.<clinit>
> JVMCI.initializeRuntime
>  JVM_GetJVMCIRuntime  
>   JVMCIRuntime::initialize_HotSpotJVMCIRuntime
> 
> This probably wasn’t true at one point in time.

Oh, ok.  Looks good then.

> 
> 
>> 
>>> On Oct 7, 2016, at 5:17 AM, Doug Simon <doug.simon at oracle.com> wrote:
>>> 
>>> Please review this change that move a guard against JVMCI re-initialization to the right location. The chance of a race causing the check to fail when in the current/wrong location increased recently due to a change in Graal[1] which causes more JVMCI code to be run on application threads.
>>> 
>>> The webrev puts the check in the right place and also converts an assertion to a guarantee for a related check.
>>> 
>>> https://bugs.openjdk.java.net/browse/JDK-8167353
>>> http://cr.openjdk.java.net/~dnsimon/8167353/
>>> 
>>> -Doug
>> 
> 



More information about the hotspot-compiler-dev mailing list