RFR 8240918: [REDO] Allow direct handshakes without VMThread intervention

Patricio Chilano patricio.chilano.mateo at oracle.com
Wed Apr 1 17:45:21 UTC 2020


Hi all,

Please review this redo for 8230594. Since the reason behind the Windows 
timeouts turned out to be 8240902, this patch is almost identical to the 
reverse of the backout modulo the rebase.

There is only one small fix for an issue not identified in the original 
patch which I explained in the comments. To avoid this possible issue of 
deleting a JavaThread that called Thread::destroy_vm() while there are 
handshakers blocked in the handshake_turn_sem semaphore, I added a check 
to verify the JavaThread in question is not protected by some 
ThreadsList reference before attempting the delete it. In case it is 
protected, we need to at least clear the value for _thread_key to avoid 
possible infinite loops at thread exit (this can happen in Solaris).

The only other change is that I removed the check for local polls in 
Handshake::execute_direct() since after the backout, thread-local 
handshakes was implemented for arm32 which was the only remaining platform.

I tested it several times in mach5 tiers 1-6 and once in t7 and saw no 
failures.

Bug:
    https://bugs.openjdk.java.net/browse/JDK-8240918

Webrev:
    http://cr.openjdk.java.net/~pchilanomate/8240918/v1/webrev/


Thanks,
Patricio


More information about the hotspot-runtime-dev mailing list