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