[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.8] target-arm/translate-a64: fix gen_load_
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH for-2.8] target-arm/translate-a64: fix gen_load_exclusive |
Date: |
Mon, 5 Dec 2016 07:42:50 -0800 |
User-agent: |
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
64-bit load.
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.
r~