[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-arm] [PATCH for-2.8] target-arm/translate-a64: fix gen_load_ex
Re: [Qemu-arm] [PATCH for-2.8] target-arm/translate-a64: fix gen_load_exclusive
Mon, 5 Dec 2016 07:42:50 -0800
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.4.0
On 12/05/2016 03:09 AM, Alex Bennée wrote:
> Alex Bennée <address@hidden> writes:
>> While testing rth's latest TCG patches with risu I found ldaxp was
>> broken. Investigating further I found it was broken by 1dd089d0 when
>> the cmpxchg atomic work was merged.
> CC'ing Paolo/Richard
> Do you guys have any final TCG fixes planned for 2.8 that can take this
> fix for the ldaxp regression?
I don't have any pending patchs for 2.8, no.
>> As part of that change the code
>> attempted to be clever by doing a single 64 bit load and then shuffle
>> the data around to set the two 32 bit registers.
It's not trying to be "clever", it's trying to be correct, giving an atomic
The fact that we didn't attempt an atomic 128-bit load here for the 64-bit pair
is a bug. We have support for that in helper_atomic_ldo_le_mmu; I'm not sure
why I didn't use that here.
>> As I couldn't quite follow the endian magic I've simply partially
>> reverted the change to the original code gen_load_exclusive code. This
>> doesn't affect the cmpxchg functionality as that is all done on in
>> gen_store_exclusive part which is untouched.
We'll have to fix it properly eventually. But perhaps 2.9 is soon enough,
since that's when mttcg will go in.