RFR: 8212681: Refactor IC locking to use a fine grained CompiledICLocker

Robbin Ehn robbin.ehn at oracle.com
Tue Oct 23 12:50:52 UTC 2018


Hi Erik,

Looks better than before :), don't forget copyright years before push.

/Robbin

On 10/22/18 12:59 PM, Erik Österlund wrote:
> Hi,
> 
> Today, one must acquire the global CompiledIC_lock to have permission to perform 
> certain IC updating activities. The lock is used outside of safepoints, but for 
> example during nmethod unloading due to GC, lock free IC cache cleaning is 
> performed, which is safe due to being in a safepoint.
> 
> With concurrent class unloading introduced, the global lock is too coarse 
> grained, and a per-nmethod mechanism is needed instead. In order to allow this, 
> an abstract CompiledICLocker class could help ensuring the safety of IC caches, 
> and allow both the fine grained (but density costly) approach for users of 
> concurrent class unloading, and resort to the default global locking approach 
> otherwise.
> 
> The idea is to retain the coarse grained implementation of the synchronization 
> when concurrent class unloading is not being used, as supporting fine grained 
> locking could be more costly in memory, and there does not seem to be any use in 
> doing this unless concurrent class unloading is being used.
> 
> Webrev:
> http://cr.openjdk.java.net/~eosterlund/8212681/webrev.00/
> 
> Bug:
> https://bugs.openjdk.java.net/browse/JDK-8212681
> 
> Thanks,
> /Erik


More information about the hotspot-dev mailing list