[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-ris
From: |
Richard Henderson |
Subject: |
Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64 |
Date: |
Wed, 26 Jun 2019 09:48:51 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0 |
On 6/26/19 8:07 AM, Palmer Dabbelt wrote:
> On Tue, 25 Jun 2019 08:36:28 PDT (-0700), address@hidden wrote:
>> On 6/24/19 8:08 PM, Joel Sing wrote:
>>> Regarding the alignment for reservations, the
>>> specification does require this, although I do not recall seeing any
>>> enforcement
>>> of this by qemu itself.
>>
>> Ah, I see it now. Enforcement begins here:
>>
>> static bool trans_lr_w(DisasContext *ctx, arg_lr_w *a)
>> {
>> REQUIRE_EXT(ctx, RVA);
>> return gen_lr(ctx, a, (MO_ALIGN | MO_TESL));
>> ^^^^^^^^
>>
>> This will force softmmu (but notably not linux-user; a design limitation) to
>> generate an alignment fault for an unaligned address.
>
> That was probably correct at the time the code went in, as the ISA used to
> allow these to succeed but not be atomic. No implementations did this, so as
> part of the ratification process we just mandated that unaligned atomics
> always
> trap.
>
> Is there a better way to fix this than just doing the alignment check
> explicitly?
You misunderstand. The code is exactly correct as-is. The alignment check
happens implicitly as a part of the softmmu tlb resolution.
r~
- [Qemu-riscv] [PATCH] atomic failures on qemu-system-riscv64, Joel Sing, 2019/06/16
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, no-reply, 2019/06/16
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Richard Henderson, 2019/06/17
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Palmer Dabbelt, 2019/06/24
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Joel Sing, 2019/06/24
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Richard Henderson, 2019/06/25
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Palmer Dabbelt, 2019/06/26
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64,
Richard Henderson <=
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Palmer Dabbelt, 2019/06/26
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Richard Henderson, 2019/06/26
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Palmer Dabbelt, 2019/06/26
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Richard Henderson, 2019/06/25
- Re: [Qemu-riscv] [Qemu-devel] [PATCH] atomic failures on qemu-system-riscv64, Palmer Dabbelt, 2019/06/26