qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/14] target/i386: Use atomic operations for pte updates
@ 2022-08-22 23:57 Richard Henderson
  2022-08-22 23:57 ` [PATCH 01/14] accel/tcg: Rename CPUIOTLBEntry to CPUTLBEntryFull Richard Henderson
                   ` (14 more replies)
  0 siblings, 15 replies; 19+ messages in thread
From: Richard Henderson @ 2022-08-22 23:57 UTC (permalink / raw)
  To: qemu-devel; +Cc: pbonzini, eduardo

This patch set does two things:

(1) Remove assert(!probe) from the x86 tlb_fill

    It turns out that this is a prerequisite for
    [PATCH v6 00/21] linux-user: Fix siginfo_t contents when jumping
    to non-readable pages

    because of a new use of probe_access(..., nonfault)
    when comparing TBs that cross a page boundary.

    Patches 7-10 are sufficient to fix this.

    After auditing all of the targets, Sparc has a similar assert,
    and AVR simply doesn't check probe at all.  Both will need fixing.

(2) Use atomic operations for pte updates, which is a long-standing
    bug since our conversion to MTTCG.

For simplicity, patches 1-6 are from the middle of 
("[PATCH v2 00/66] target/arm: Implement FEAT_HAFDBS")


r~


Richard Henderson (14):
  accel/tcg: Rename CPUIOTLBEntry to CPUTLBEntryFull
  accel/tcg: Drop addr member from SavedIOTLB
  accel/tcg: Suppress auto-invalidate in probe_access_internal
  accel/tcg: Introduce probe_access_full
  accel/tcg: Introduce tlb_set_page_full
  include/exec: Introduce TARGET_PAGE_ENTRY_EXTRA
  target/i386: Use MMUAccessType across excp_helper.c
  target/i386: Direct call get_hphys from mmu_translate
  target/i386: Introduce structures for mmu_translate
  target/i386: Reorg GET_HPHYS
  target/i386: Add MMU_PHYS_IDX and MMU_NESTED_IDX
  target/i386: Use MMU_NESTED_IDX for vmload/vmsave
  target/i386: Combine 5 sets of variables in mmu_translate
  target/i386: Use atomic operations for pte updates

 include/exec/cpu-defs.h              |  45 +-
 include/exec/exec-all.h              |  33 ++
 include/hw/core/cpu.h                |   1 -
 target/i386/cpu-param.h              |   2 +-
 target/i386/cpu.h                    |   5 +-
 accel/tcg/cputlb.c                   | 215 +++++----
 target/arm/mte_helper.c              |  14 +-
 target/arm/sve_helper.c              |   4 +-
 target/arm/translate-a64.c           |   2 +-
 target/i386/tcg/sysemu/excp_helper.c | 692 +++++++++++++++++----------
 target/i386/tcg/sysemu/svm_helper.c  | 234 +++++----
 target/s390x/tcg/mem_helper.c        |   4 -
 12 files changed, 772 insertions(+), 479 deletions(-)

-- 
2.34.1



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

end of thread, other threads:[~2022-08-23 16:23 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-22 23:57 [PATCH 00/14] target/i386: Use atomic operations for pte updates Richard Henderson
2022-08-22 23:57 ` [PATCH 01/14] accel/tcg: Rename CPUIOTLBEntry to CPUTLBEntryFull Richard Henderson
2022-08-22 23:57 ` [PATCH 02/14] accel/tcg: Drop addr member from SavedIOTLB Richard Henderson
2022-08-22 23:57 ` [PATCH 03/14] accel/tcg: Suppress auto-invalidate in probe_access_internal Richard Henderson
2022-08-23  9:19   ` David Hildenbrand
2022-08-23 15:19     ` Richard Henderson
2022-08-23 16:09       ` Richard Henderson
2022-08-22 23:57 ` [PATCH 04/14] accel/tcg: Introduce probe_access_full Richard Henderson
2022-08-22 23:57 ` [PATCH 05/14] accel/tcg: Introduce tlb_set_page_full Richard Henderson
2022-08-22 23:57 ` [PATCH 06/14] include/exec: Introduce TARGET_PAGE_ENTRY_EXTRA Richard Henderson
2022-08-22 23:57 ` [PATCH 07/14] target/i386: Use MMUAccessType across excp_helper.c Richard Henderson
2022-08-22 23:57 ` [PATCH 08/14] target/i386: Direct call get_hphys from mmu_translate Richard Henderson
2022-08-22 23:57 ` [PATCH 09/14] target/i386: Introduce structures for mmu_translate Richard Henderson
2022-08-22 23:57 ` [PATCH 10/14] target/i386: Reorg GET_HPHYS Richard Henderson
2022-08-22 23:58 ` [PATCH 11/14] target/i386: Add MMU_PHYS_IDX and MMU_NESTED_IDX Richard Henderson
2022-08-22 23:58 ` [PATCH 12/14] target/i386: Use MMU_NESTED_IDX for vmload/vmsave Richard Henderson
2022-08-22 23:58 ` [PATCH 13/14] target/i386: Combine 5 sets of variables in mmu_translate Richard Henderson
2022-08-22 23:58 ` [PATCH 14/14] target/i386: Use atomic operations for pte updates Richard Henderson
2022-08-23  2:05 ` [PATCH 00/14] " 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).