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 18:42:35 UTC 2020


Hi Martin,

Thank you for testing this, the correction, and the code review.

Coleen

On 4/13/20 2:32 PM, Doerr, Martin wrote:
> 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-bounces at openjdk.java.net> On Behalf Of
>> coleen.phillimore at oracle.com
>> Sent: Montag, 13. April 2020 16:34
>> To: hotspot-dev developers <hotspot-dev at openjdk.java.net>;
>> serviceability-dev at 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



More information about the serviceability-dev mailing list