RFR (S) 8074292: nsk/jdb/kill/kill001: generateOopMap.cpp assert(bb->is_reachable()) failed
coleen.phillimore at oracle.com
coleen.phillimore at oracle.com
Mon Apr 13 14:34:01 UTC 2020
Summary: Do not install async exceptions at_safepoint for each bytecode.
See CR for a lot more details. This change calls a new
InterpreterRuntime::at_safepoint_async_safe() which installs the async
exception in the interpreter at backward branches and returns. This
uses safepoint polling code in the interpreter for each platform. These
changes (cross) compile on platforms that Oracle doesn't support but I
don't know if they work.
I'm not convinced the platform specific changes are necessary, because
calls to the runtime from many bytecodes will install the async
exception, so it's essentially installed "enough" for this deprecated
feature. I tested the changes with *and* without the platform specific
changes with no failure, which included the jdb, jdi and jvmti
serviceability tests.
This change also makes InterpreterRuntime::monitorexit a JRT_LEAF
bytecode. The code to check for exceptions is outside the runtime call.
I ran the JCK vm and lang tests on this change with no failure.
Tested with tier1-6.
open webrev at http://cr.openjdk.java.net/~coleenp/2020/8074292.01/webrev
bug link https://bugs.openjdk.java.net/browse/JDK-8074292
Thanks,
Coleen
More information about the serviceability-dev
mailing list