RFR: 8214338: Move IC stub refilling out of IC cache transitions

Erik Österlund erik.osterlund at oracle.com
Tue Nov 27 13:00:15 UTC 2018


Hi,

IC stub refilling currently requires a safepoint operation. When done 
right at the point where an CompiledIC is about to get patched to a 
transitional state using an IC stub, locks may already be held, causing 
a bunch of locking issues - especially for concurrent class unloading. 
Therefore, the IC stub refilling ought to be moved out so that IC cache 
cleaning and transitioning may be done without any safepoints, and the 
locks in the path ought to not perform safepoint checking.

This is implemented by allowing IC transitions to fail when they require 
IC stubs, and we run out of them. This propages back to a higher level 
where IC stubs are refilled after having released the IC locker.

Webrev:
http://cr.openjdk.java.net/~eosterlund/8214338/webrev.00/

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

Thanks,
/Erik


More information about the hotspot-dev mailing list