RFR(L) 8227745: Enable Escape Analysis for Better Performance in the Presence of JVMTI Agents

Reingruber, Richard richard.reingruber at sap.com
Mon Dec 23 09:40:52 UTC 2019


Hi,

webrev.3 didn't apply anymore after 8236000 [1]. I've rebased and updated in place:

http://cr.openjdk.java.net/~rrich/webrevs/2019/8227745/webrev.3/

The change was minimal.

Cheers, Richard.

[1] JDK-8236000: VM build without C2 fails

-----Original Message-----
From: Reingruber, Richard 
Sent: Dienstag, 10. Dezember 2019 22:45
To: serviceability-dev at openjdk.java.net; hotspot-compiler-dev at openjdk.java.net; hotspot-runtime-dev at openjdk.java.net
Subject: RFR(L) 8227745: Enable Escape Analysis for Better Performance in the Presence of JVMTI Agents

Hi,

I would like to get reviews please for

http://cr.openjdk.java.net/~rrich/webrevs/2019/8227745/webrev.3/

Corresponding RFE:
https://bugs.openjdk.java.net/browse/JDK-8227745

Fixes also https://bugs.openjdk.java.net/browse/JDK-8233915
And potentially https://bugs.openjdk.java.net/browse/JDK-8214584 [1]

Vladimir Kozlov kindly put webrev.3 through tier1-8 testing without issues (thanks!). In addition the
change is being tested at SAP since I posted the first RFR some months ago.

The intention of this enhancement is to benefit performance wise from escape analysis even if JVMTI
agents request capabilities that allow them to access local variable values. E.g. if you start-up
with -agentlib:jdwp=transport=dt_socket,server=y,suspend=n, then escape analysis is disabled right
from the beginning, well before a debugger attaches -- if ever one should do so. With the
enhancement, escape analysis will remain enabled until and after a debugger attaches. EA based
optimizations are reverted just before an agent acquires the reference to an object. In the JBS item
you'll find more details.

Thanks,
Richard.

[1] Experimental fix for JDK-8214584 based on JDK-8227745
    http://cr.openjdk.java.net/~rrich/webrevs/2019/8214584/experiment_v1.patch


More information about the serviceability-dev mailing list