repeatedly deoptimization(InvalidateReprofile, UnreachedCode) @ AbstractQueuedSynchronizer.await*
Doug Simon
doug.simon at oracle.com
Fri Oct 7 12:06:02 UTC 2016
Yudi,
Alternatively, can you please send me the IGV graph? You can serialize IGV graphs to a file either by exporting it to XML from within IGV or by using the -Dgraal.PrintIdealGraphFile=true option.
-Doug
> On 07 Oct 2016, at 13:49, Doug Simon <doug.simon at oracle.com> wrote:
>
> Hi Yudi,
>
> Thanks for the report. Is it possible to boil this behavior down to a small test program?
>
> -Doug
>
>> On 07 Oct 2016, at 12:20, Yudi Zheng <yudi.zheng at usi.ch> wrote:
>>
>> Hi,
>>
>> As titled, I observe in Dacapo tomcat, ScalaBench actor, and SPECjbb repeatedly (more than 50) deoptimization at
>>
>> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2033)
>> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2066)
>>
>> Both cases are on the following condition:
>>
>> if (Thread.interrupted())
>> throw new InterruptedException();
>>
>> where igv shows that the BytecodeParser generates a FixedGuard with action being InvalidateReprofile, reason being UnreachedCode.
>> The resulted DeoptimizeNode is associated with a FrameState pointing to the last bytecode of Thread.interrupted().
>>
>> Any idea what went wrong?
>>
>> I collected the number by inserting DynamicCounterNode preceding each DeoptimizeNode before emitting LIR.
>> The option OptDeoptimizationGrouping is turned off.
>>
>> Thanks,
>> Yudi
>
More information about the graal-dev
mailing list