RFR(XL): 8185640: Thread-local handshakes

Doerr, Martin martin.doerr at sap.com
Wed Oct 25 19:38:02 UTC 2017

Hi Andrew,

I think you're right.

A Java program could have a goto in one of the cases of any switch which gets optimized out (by javac) replacing the branch target of the case.

So I think we need safepoint polls in all switch templates, too.

Best regards,

-----Original Message-----
From: Andrew Haley [mailto:aph at redhat.com] 
Sent: Mittwoch, 25. Oktober 2017 17:17
To: Robbin Ehn <robbin.ehn at oracle.com>; Karen Kinnear <karen.kinnear at oracle.com>; Doerr, Martin <martin.doerr at sap.com>
Cc: hotspot-dev developers <hotspot-dev at openjdk.java.net>
Subject: Re: RFR(XL): 8185640: Thread-local handshakes

On 24/10/17 15:54, Robbin Ehn wrote:

> I did a fix for the interpreter performance regression, it's plain and simple, I 
> kept the polling code inside dispatch_base but made it optional as the verify oop.
> Incremental:
> http://cr.openjdk.java.net/~rehn/8185640/v5/Interpreter-Poll-7/webrev/index.html
> Manual tested with jstack and it passes: hotspot_tier1, hotspot_handshake
> It reduces the polling cost of 80%, sensitive benchmarks shows -0.44% regression 
> vs TLH off. More insensitive benchmark show no regression.

I think it's not quite right: you're missing a check in tableswitch
and fast_linearswitch.  These can be used to construct loops.

Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671

More information about the hotspot-dev mailing list