repeatedly deoptimization(InvalidateReprofile, UnreachedCode) @ AbstractQueuedSynchronizer.await*
Doug Simon
doug.simon at oracle.com
Fri Oct 7 11:49:17 UTC 2016
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