RFR (XL) 8031320: Use Intel RTM instructions for locks

Vladimir Kozlov vladimir.kozlov at oracle.com
Thu Mar 20 15:58:12 UTC 2014


Thank you, Roland

I will add comment for xabort instructions in sharedRuntime_*.cpp

Thanks,
Vladimir

On 3/20/14 4:16 AM, Roland Westrelin wrote:
> Hi Vladimir,
>
>>> src/cpu/x86/vm/macroAssembler_x86.cpp
>>>
>>> 1440   movptr(tmpReg, Address(boxReg, ObjectMonitor::owner_offset_in_bytes()-2)) ;
>>>
>>> Why -2?
>>
>> -2 removes a bit to get correct pointer.
>> For inflated locks the bit 1 is set in markword:
>> monitor_value            = 2
>>
>> I modified code to use next:
>>
>>   // Clean monitor_value bit to get valid pointer
>>   int owner_offset = ObjectMonitor::owner_offset_in_bytes() - markOopDesc::monitor_value;
>
> Thanks.
>
>>
>>> In MacroAssembler::fast_lock(), Moving code starting at:
>>> 1608     if (UseRTMForStackLocks && use_rtm) {
>>> and
>>> 1715     if (use_rtm) {
>>>
>>> to their own methods would be nice.
>>
>> Done.
>
> Thanks.
>
>>> src/cpu/x86/vm/sharedRuntime_x86_32.cpp
>>> src/cpu/x86/vm/sharedRuntime_x86_64.cpp
>>>
>>> Comments why you need xabort would be helpful
>>
>> I think to be safe. We go into runtime/native code at those points.
>
> I meant actual comments in the code.
>
> http://cr.openjdk.java.net/~kvn/8031320_9/webrev.01
>
> looks good to me.
>
> Roland.
>


More information about the hotspot-dev mailing list