[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] qemu-arm-static, multiprocess, atomic
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] qemu-arm-static, multiprocess, atomic |
Date: |
Thu, 26 May 2016 17:16:00 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 |
On 26/05/2016 14:53, Sergey Fedorov wrote:
>>> I'm afraid even our recent efforts in
>>> multi-threaded TCG won't change the situation. The problem is that it
>>> would require to translate somehow ARM's exclusive access monitor to x86
>>> model.
>>>
>> The cmpxchg-based variant would work. It doesn't implement LL/SC
>> exactly, but it works fine if the program is written against GCC atomic
>> builtins.
>
> I'm afraid, GCC can still generate ldrex/strex pair for
> __atomic_compare_exchange():
>
I mean the version of mttcg that uses cmpxchg to implement ldrex/strex
(save the value on ldrex, do a cmpxchg on strex).
Thanks,
Paolo