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

Erik Österlund erik.osterlund at oracle.com
Tue Oct 23 13:03:15 UTC 2018


Hi Robbin,

Thanks for the review.

/Erik

On 2018-10-23 14:50, Robbin Ehn wrote:
> 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