From: Helge Deller <deller@gmx.de>
To: Richard Henderson <richard.henderson@linaro.org>, qemu-devel@nongnu.org
Cc: deller@kernel.org, peter.maydell@linaro.org,
alex.bennee@linaro.org, linux-parisc@vger.kernel.org,
qemu-arm@nongnu.org
Subject: Re: [PATCH v2 00/21] accel/tcg: Introduce tlb_fill_align hook
Date: Mon, 7 Oct 2024 22:55:22 +0200 [thread overview]
Message-ID: <7ea84509-eac2-40c4-be85-21a44120a87f@gmx.de> (raw)
In-Reply-To: <20241005200600.493604-1-richard.henderson@linaro.org>
On 10/5/24 22:05, Richard Henderson wrote:
> This new hook will allow targets to recognize an alignment
> fault with the correct priority with respect to other faults
> that can be raised by paging.
>
> This should fix several hppa fault priority issues, most
> importantly that access permissions come before alignment.
I can confirm that this patchset fixes the access permissions
before the alignment checks on hppa.
I used the testcase from the description of this bug report:
https://bugzilla.kernel.org/show_bug.cgi?id=219339#c0
Maybe you could add a reference to this BZ in your commit message?
> [ Helge, I find that my old hppa system images would not boot,
> and a scratch re-install of debian 12 failed (networking error?).
A new debian-sid qemu image is here:
http://www.dellerweb.de/qemu/debian-sid-hdd-2024.img.bz2
> Would you please test? It would be nice to have a self-contained
> regression test for this, using a port of the multiarch/system
> minilib, but that's a larger job.]
I think the C example from the BZ might help for such a testcase.
Helge
> This should fix the documented error in the Arm alignment
> fault due to memory type.
>
> [ Also untested. I should be possible to leverate aarch64/system/boot.S
> to manage this, but it's still tricky. ]
>
> Changes for v2:
> - Include the arm_cpu_tlb_fill_align patch. Oops!
> - Improve some commentary in target/arm/ptw.c.
>
>
> r~
>
>
> Richard Henderson (21):
> accel/tcg: Assert noreturn from write-only page for atomics
> accel/tcg: Expand tlb_fill for 3 callers
> include/exec/memop: Move get_alignment_bits from tcg.h
> include/exec/memop: Rename get_alignment_bits
> include/exec/memop: Introduce memop_atomicity_bits
> hw/core/tcg-cpu-ops: Introduce tlb_fill_align hook
> accel/tcg: Use the tlb_fill_align hook
> target/hppa: Add MemOp argument to hppa_get_physical_address
> target/hppa: Perform access rights before protection id check
> target/hppa: Fix priority of T, D, and B page faults
> target/hppa: Handle alignment faults in hppa_get_physical_address
> target/hppa: Add hppa_cpu_tlb_fill_align
> target/arm: Pass MemOp to get_phys_addr
> target/arm: Pass MemOp to get_phys_addr_with_space_nogpc
> target/arm: Pass MemOp to get_phys_addr_gpc
> target/arm: Pass MemOp to get_phys_addr_nogpc
> target/arm: Pass MemOp through get_phys_addr_twostage
> target/arm: Pass MemOp to get_phys_addr_lpae
> target/arm: Move device detection earlier in get_phys_addr_lpae
> target/arm: Add arm_cpu_tlb_fill_align
> target/arm: Fix alignment fault priority in get_phys_addr_lpae
>
> include/exec/memop.h | 47 +++++++++++
> include/hw/core/tcg-cpu-ops.h | 25 ++++++
> include/tcg/tcg.h | 23 ------
> target/arm/internals.h | 9 ++-
> target/hppa/cpu.h | 5 +-
> accel/tcg/cputlb.c | 142 +++++++++++++++++----------------
> accel/tcg/user-exec.c | 4 +-
> target/alpha/cpu.c | 1 +
> target/arm/cpu.c | 1 +
> target/arm/helper.c | 4 +-
> target/arm/ptw.c | 141 ++++++++++++++++++--------------
> target/arm/tcg/cpu-v7m.c | 1 +
> target/arm/tcg/m_helper.c | 8 +-
> target/arm/tcg/tlb_helper.c | 27 ++++++-
> target/arm/tcg/translate-a64.c | 4 +-
> target/avr/cpu.c | 1 +
> target/hppa/cpu.c | 1 +
> target/hppa/int_helper.c | 2 +-
> target/hppa/mem_helper.c | 50 ++++++++----
> target/hppa/op_helper.c | 2 +-
> target/i386/tcg/tcg-cpu.c | 1 +
> target/loongarch/cpu.c | 1 +
> target/m68k/cpu.c | 1 +
> target/microblaze/cpu.c | 1 +
> target/mips/cpu.c | 1 +
> target/openrisc/cpu.c | 1 +
> target/ppc/cpu_init.c | 1 +
> target/riscv/tcg/tcg-cpu.c | 1 +
> target/rx/cpu.c | 1 +
> target/s390x/cpu.c | 1 +
> target/sh4/cpu.c | 1 +
> target/sparc/cpu.c | 1 +
> target/tricore/cpu.c | 1 +
> target/xtensa/cpu.c | 1 +
> target/xtensa/translate.c | 2 +-
> tcg/tcg-op-ldst.c | 6 +-
> tcg/tcg.c | 2 +-
> tcg/arm/tcg-target.c.inc | 4 +-
> tcg/sparc64/tcg-target.c.inc | 2 +-
> 39 files changed, 329 insertions(+), 199 deletions(-)
>
prev parent reply other threads:[~2024-10-07 20:55 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-05 20:05 [PATCH v2 00/21] accel/tcg: Introduce tlb_fill_align hook Richard Henderson
2024-10-05 20:05 ` [PATCH v2 01/21] accel/tcg: Assert noreturn from write-only page for atomics Richard Henderson
2024-10-07 20:58 ` Helge Deller
2024-10-08 14:04 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 02/21] accel/tcg: Expand tlb_fill for 3 callers Richard Henderson
2024-10-07 21:01 ` Helge Deller
2024-10-08 14:04 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 03/21] include/exec/memop: Move get_alignment_bits from tcg.h Richard Henderson
2024-10-07 21:02 ` Helge Deller
2024-10-08 14:04 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 04/21] include/exec/memop: Rename get_alignment_bits Richard Henderson
2024-10-07 21:03 ` Helge Deller
2024-10-08 14:05 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 05/21] include/exec/memop: Introduce memop_atomicity_bits Richard Henderson
2024-10-07 21:04 ` Helge Deller
2024-10-08 14:05 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 06/21] hw/core/tcg-cpu-ops: Introduce tlb_fill_align hook Richard Henderson
2024-10-07 21:09 ` Helge Deller
2024-10-08 14:12 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 07/21] accel/tcg: Use the " Richard Henderson
2024-10-07 21:13 ` Helge Deller
2024-10-08 14:12 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 08/21] target/hppa: Add MemOp argument to hppa_get_physical_address Richard Henderson
2024-10-07 21:14 ` Helge Deller
2024-10-05 20:05 ` [PATCH v2 09/21] target/hppa: Perform access rights before protection id check Richard Henderson
2024-10-07 21:15 ` Helge Deller
2024-10-05 20:05 ` [PATCH v2 10/21] target/hppa: Fix priority of T, D, and B page faults Richard Henderson
2024-10-07 21:16 ` Helge Deller
2024-10-05 20:05 ` [PATCH v2 11/21] target/hppa: Handle alignment faults in hppa_get_physical_address Richard Henderson
2024-10-07 21:18 ` Helge Deller
2024-10-05 20:05 ` [PATCH v2 12/21] target/hppa: Add hppa_cpu_tlb_fill_align Richard Henderson
2024-10-07 21:19 ` Helge Deller
2024-10-05 20:05 ` [PATCH v2 13/21] target/arm: Pass MemOp to get_phys_addr Richard Henderson
2024-10-07 21:20 ` Helge Deller
2024-10-08 14:45 ` Peter Maydell
2024-10-08 17:32 ` Richard Henderson
2024-10-09 13:59 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 14/21] target/arm: Pass MemOp to get_phys_addr_with_space_nogpc Richard Henderson
2024-10-07 21:21 ` Helge Deller
2024-10-08 14:35 ` Peter Maydell
2024-10-08 17:50 ` Richard Henderson
2024-10-05 20:05 ` [PATCH v2 15/21] target/arm: Pass MemOp to get_phys_addr_gpc Richard Henderson
2024-10-07 21:21 ` Helge Deller
2024-10-08 14:26 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 16/21] target/arm: Pass MemOp to get_phys_addr_nogpc Richard Henderson
2024-10-07 21:22 ` Helge Deller
2024-10-08 14:25 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 17/21] target/arm: Pass MemOp through get_phys_addr_twostage Richard Henderson
2024-10-07 21:22 ` Helge Deller
2024-10-08 14:24 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 18/21] target/arm: Pass MemOp to get_phys_addr_lpae Richard Henderson
2024-10-07 21:23 ` Helge Deller
2024-10-08 14:24 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 19/21] target/arm: Move device detection earlier in get_phys_addr_lpae Richard Henderson
2024-10-07 21:25 ` Helge Deller
2024-10-08 14:22 ` Peter Maydell
2024-10-05 20:05 ` [PATCH v2 20/21] target/arm: Add arm_cpu_tlb_fill_align Richard Henderson
2024-10-07 21:26 ` Helge Deller
2024-10-08 14:22 ` Peter Maydell
2024-10-05 20:06 ` [PATCH v2 21/21] target/arm: Fix alignment fault priority in get_phys_addr_lpae Richard Henderson
2024-10-08 14:23 ` Peter Maydell
2024-10-07 20:55 ` Helge Deller [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7ea84509-eac2-40c4-be85-21a44120a87f@gmx.de \
--to=deller@gmx.de \
--cc=alex.bennee@linaro.org \
--cc=deller@kernel.org \
--cc=linux-parisc@vger.kernel.org \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=richard.henderson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox