Hi Coleen, thanks for implementing it for all platforms.
PPC64: looks good. s390: The tm instruction produces a special condition code. z_brnaz should be used (please don't omit the 'a'). Tested interpreter safepoint polling by: jdk/bin/java -Xint -XX:-UseBiasedLocking -XX:+SafepointTimeout -XX:+SafepointALot -XX:+AbortVMOnSafepointTimeout -XX:SafepointTimeoutDelay=300 -XX:GuaranteedSafepointInterval=300 TestLoop (With some long running TestLoop.) This test crashed with z_brnz as expected, but worked with z_brnaz. Thanks and best regards, Martin > -----Original Message----- > From: hotspot-dev <hotspot-dev-boun...@openjdk.java.net> On Behalf Of > coleen.phillim...@oracle.com > Sent: Montag, 13. April 2020 16:34 > To: hotspot-dev developers <hotspot-...@openjdk.java.net>; > serviceability-dev@openjdk.java.net > Subject: RFR (S) 8074292: nsk/jdb/kill/kill001: generateOopMap.cpp > assert(bb->is_reachable()) failed > > 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