qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 00/20] accel/tcg: Introduce tlb_fill_align hook
@ 2024-10-09  0:04 Richard Henderson
  2024-10-09  0:04 ` [PATCH v3 01/20] accel/tcg: Assert noreturn from write-only page for atomics Richard Henderson
                   ` (19 more replies)
  0 siblings, 20 replies; 33+ messages in thread
From: Richard Henderson @ 2024-10-09  0:04 UTC (permalink / raw)
  To: qemu-devel; +Cc: deller, peter.maydell, alex.bennee, linux-parisc, qemu-arm

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.

This should fix the documented error in the Arm alignment
fault due to memory type.

Changes for v3:
  - Change the tlb_fill_hook to return data into provided
    CPUTLBEntryFull, instead of calling tlb_set_page*.
  - I have dropped some r-b, correspondingly.

Patches needing review:
  05-accel-tcg-Add-TCGCPUOps.tlb_fill_align.patch
  06-accel-tcg-Use-the-alignment-test-in-tlb_fill_alig.patch
  11-target-hppa-Implement-TCGCPUOps.tlb_fill_align.patch
  19-target-arm-Implement-TCGCPUOps.tlb_fill_align.patch


r~


Richard Henderson (20):
  accel/tcg: Assert noreturn from write-only page for atomics
  include/exec/memop: Move get_alignment_bits from tcg.h
  include/exec/memop: Rename get_alignment_bits
  include/exec/memop: Introduce memop_atomicity_bits
  accel/tcg: Add TCGCPUOps.tlb_fill_align
  accel/tcg: Use the alignment test in tlb_fill_align
  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: Implement TCGCPUOps.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: Implement TCGCPUOps.tlb_fill_align
  target/arm: Fix alignment fault priority in get_phys_addr_lpae

 include/exec/memop.h           |  47 ++++++++++
 include/hw/core/cpu.h          |   4 +-
 include/hw/core/tcg-cpu-ops.h  |  26 ++++++
 include/qemu/typedefs.h        |   1 +
 include/tcg/tcg.h              |  23 -----
 target/arm/internals.h         |  12 +--
 target/hppa/cpu.h              |   8 +-
 accel/tcg/cputlb.c             | 160 +++++++++++++++++----------------
 accel/tcg/user-exec.c          |   4 +-
 target/arm/cpu.c               |   2 +-
 target/arm/helper.c            |   9 +-
 target/arm/ptw.c               | 141 ++++++++++++++++-------------
 target/arm/tcg/cpu-v7m.c       |   2 +-
 target/arm/tcg/m_helper.c      |   8 +-
 target/arm/tcg/tlb_helper.c    |  49 ++++------
 target/arm/tcg/translate-a64.c |   4 +-
 target/hppa/cpu.c              |   2 +-
 target/hppa/int_helper.c       |   2 +-
 target/hppa/mem_helper.c       |  55 +++++++-----
 target/hppa/op_helper.c        |   2 +-
 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 +-
 25 files changed, 326 insertions(+), 251 deletions(-)

-- 
2.43.0



^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2024-10-14 20:18 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-09  0:04 [PATCH v3 00/20] accel/tcg: Introduce tlb_fill_align hook Richard Henderson
2024-10-09  0:04 ` [PATCH v3 01/20] accel/tcg: Assert noreturn from write-only page for atomics Richard Henderson
2024-10-09  0:04 ` [PATCH v3 02/20] include/exec/memop: Move get_alignment_bits from tcg.h Richard Henderson
2024-10-09  0:04 ` [PATCH v3 03/20] include/exec/memop: Rename get_alignment_bits Richard Henderson
2024-10-09  0:04 ` [PATCH v3 04/20] include/exec/memop: Introduce memop_atomicity_bits Richard Henderson
2024-10-09 18:55   ` Philippe Mathieu-Daudé
2024-10-09  0:04 ` [PATCH v3 05/20] accel/tcg: Add TCGCPUOps.tlb_fill_align Richard Henderson
2024-10-09 19:46   ` Helge Deller
2024-10-10 10:31   ` Peter Maydell
2024-10-09  0:04 ` [PATCH v3 06/20] accel/tcg: Use the alignment test in tlb_fill_align Richard Henderson
2024-10-09 21:29   ` Helge Deller
2024-10-10 10:44   ` Peter Maydell
2024-10-11 15:22     ` Richard Henderson
2024-10-11 15:36       ` Peter Maydell
2024-10-09  0:04 ` [PATCH v3 07/20] target/hppa: Add MemOp argument to hppa_get_physical_address Richard Henderson
2024-10-09  0:04 ` [PATCH v3 08/20] target/hppa: Perform access rights before protection id check Richard Henderson
2024-10-09  0:04 ` [PATCH v3 09/20] target/hppa: Fix priority of T, D, and B page faults Richard Henderson
2024-10-14 18:02   ` Michael Tokarev
2024-10-14 19:31     ` Richard Henderson
2024-10-14 20:17       ` Michael Tokarev
2024-10-09  0:04 ` [PATCH v3 10/20] target/hppa: Handle alignment faults in hppa_get_physical_address Richard Henderson
2024-10-09  0:04 ` [PATCH v3 11/20] target/hppa: Implement TCGCPUOps.tlb_fill_align Richard Henderson
2024-10-09 21:33   ` Helge Deller
2024-10-09  0:04 ` [PATCH v3 12/20] target/arm: Pass MemOp to get_phys_addr Richard Henderson
2024-10-09  0:04 ` [PATCH v3 13/20] target/arm: Pass MemOp to get_phys_addr_with_space_nogpc Richard Henderson
2024-10-09  0:04 ` [PATCH v3 14/20] target/arm: Pass MemOp to get_phys_addr_gpc Richard Henderson
2024-10-09  0:04 ` [PATCH v3 15/20] target/arm: Pass MemOp to get_phys_addr_nogpc Richard Henderson
2024-10-09  0:04 ` [PATCH v3 16/20] target/arm: Pass MemOp through get_phys_addr_twostage Richard Henderson
2024-10-09  0:04 ` [PATCH v3 17/20] target/arm: Pass MemOp to get_phys_addr_lpae Richard Henderson
2024-10-09  0:04 ` [PATCH v3 18/20] target/arm: Move device detection earlier in get_phys_addr_lpae Richard Henderson
2024-10-09  0:04 ` [PATCH v3 19/20] target/arm: Implement TCGCPUOps.tlb_fill_align Richard Henderson
2024-10-10 11:54   ` Peter Maydell
2024-10-09  0:04 ` [PATCH v3 20/20] target/arm: Fix alignment fault priority in get_phys_addr_lpae Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).