repeatedly deoptimization(InvalidateReprofile, UnreachedCode) @ AbstractQueuedSynchronizer.await*
Yudi Zheng
yudi.zheng at usi.ch
Fri Oct 7 10:20:46 UTC 2016
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