Linux PARISC architecture development
 help / color / mirror / Atom feed
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(-)
>


      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