All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/25] system/memory: Clean ups around address_space_ldst() endian variants
@ 2025-12-24 15:21 Philippe Mathieu-Daudé
  2025-12-24 15:21 ` [PATCH v3 01/25] system/physmem: Inline and remove leul_to_cpu() Philippe Mathieu-Daudé
                   ` (24 more replies)
  0 siblings, 25 replies; 62+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-12-24 15:21 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Pierrick Bouvier, Peter Xu, Richard Henderson,
	Manos Pitsidianakis, Anton Johansson, Philippe Mathieu-Daudé

Since v2:
- Changed opt-out to opt-in approach (Pierrick)
- Split big patches in smaller ones
- Mark ioport little-endian

tag: https://gitlab.com/philmd/qemu/-/tags/sysmem_ldst_endian-v3
CI: https://gitlab.com/philmd/qemu/-/pipelines/2231223066

Philippe Mathieu-Daudé (25):
  system/physmem: Inline and remove leul_to_cpu()
  system/physmem: Convert DEBUG_SUBPAGE printf() to trace events
  system/physmem: Use explicit endianness in subpage_ops::read/write()
  system/memory: Split MemoryRegionCache API to 'memory_cached.h'
  system/memory: Move *ldst* headers from exec/ to system/ namespace
  system/memory: Inline address_space_stq_internal()
  system/memory: Define address_space_ldst[W] endian variants via
    template
  system/memory: Define address_space_ldst[L] endian variants via
    template
  system/memory: Define address_space_ldst[Q] endian variants via
    template
  system/memory: Factor address_space_ldst[M]_internal() helper out
  system/memory: Pass device_endian argument as MemOp bit
  system/memory: Directly call address_space_ldst[M]_internal() helper
  system/memory: Introduce LD/ST helpers with @n suffix (variable size)
  system/memory: Use explicit endianness in ram_device::read/write()
  system: Allow restricting the legacy ld/st_phys() 'native-endian' API
  system: Allow restricting the legacy ld/st_he() 'native-endian' API
  system: Allow restricting legacy address_space_ldst() native-endian
    API
  system: Allow restricting the legacy cpu_ld/st() 'native-endian' API
  system: Allow restricting the legacy translator_ld() 'native-endian'
    API
  system: Allow restricting the legacy tswap() 'native-endian' API
  system: Allow restricting the legacy MO_TE* 'native-endian'
    definitions
  system: Allow restricting the legacy DEVICE_NATIVE_ENDIAN definition
  tests/qtest: Remove unnecessary 'qemu/bswap.h' include
  system/ioport: Declare x86-specific I/O port in little-endian order
  system/ioport: Do not open-code address_space_ld/st_le() methods

 MAINTAINERS                                   |   4 +
 docs/devel/loads-stores.rst                   |  10 +-
 include/accel/tcg/cpu-ldst.h                  |   2 +
 include/exec/cpu-common.h                     |   2 +
 include/exec/memop.h                          |   4 +
 include/exec/translator.h                     |   5 +-
 include/exec/tswap.h                          |   3 +
 include/hw/virtio/virtio-access.h             |   1 +
 include/qemu/bswap.h                          |  16 +-
 include/system/memory.h                       | 189 +-------
 include/system/memory_cached.h                | 209 ++++++++
 system/memory-internal.h                      |   2 +
 tests/qtest/pnv-xive2-common.h                |   1 -
 include/exec/memory_ldst.h.inc                |  65 ---
 include/exec/memory_ldst_phys.h.inc           | 144 ------
 include/system/memory_ldst.h.inc              |  41 ++
 .../{exec => system}/memory_ldst_cached.h.inc |   0
 include/system/memory_ldst_endian.h.inc       |  37 ++
 include/system/memory_ldst_phys.h.inc         |  47 ++
 include/system/memory_ldst_phys_endian.h.inc  |  57 +++
 system/ioport.c                               |  34 +-
 system/memory.c                               |  68 ++-
 system/physmem.c                              | 111 +++--
 tests/qtest/aspeed_smc-test.c                 |   1 -
 tests/qtest/ast2700-smc-test.c                |   1 -
 tests/qtest/endianness-test.c                 |  10 +-
 tests/qtest/libqos/fw_cfg.c                   |   1 -
 tests/qtest/libqos/i2c-omap.c                 |   1 -
 tests/qtest/libqtest.c                        |  13 +-
 tests/qtest/pnv-spi-seeprom-test.c            |   1 -
 tests/qtest/vmcoreinfo-test.c                 |   1 -
 system/memory_ldst.c.inc                      | 449 ++----------------
 system/memory_ldst_endian.c.inc               |  84 ++++
 scripts/make-config-poison.sh                 |   1 +
 system/trace-events                           |   6 +
 35 files changed, 708 insertions(+), 913 deletions(-)
 create mode 100644 include/system/memory_cached.h
 delete mode 100644 include/exec/memory_ldst.h.inc
 delete mode 100644 include/exec/memory_ldst_phys.h.inc
 create mode 100644 include/system/memory_ldst.h.inc
 rename include/{exec => system}/memory_ldst_cached.h.inc (100%)
 create mode 100644 include/system/memory_ldst_endian.h.inc
 create mode 100644 include/system/memory_ldst_phys.h.inc
 create mode 100644 include/system/memory_ldst_phys_endian.h.inc
 create mode 100644 system/memory_ldst_endian.c.inc

-- 
2.52.0



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

end of thread, other threads:[~2025-12-29  1:21 UTC | newest]

Thread overview: 62+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-24 15:21 [PATCH v3 00/25] system/memory: Clean ups around address_space_ldst() endian variants Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 01/25] system/physmem: Inline and remove leul_to_cpu() Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 02/25] system/physmem: Convert DEBUG_SUBPAGE printf() to trace events Philippe Mathieu-Daudé
2025-12-24 19:02   ` Manos Pitsidianakis
2025-12-29  0:47   ` Richard Henderson
2025-12-24 15:21 ` [PATCH v3 03/25] system/physmem: Use explicit endianness in subpage_ops::read/write() Philippe Mathieu-Daudé
2025-12-28 10:54   ` Paolo Bonzini
2025-12-28 16:00     ` Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 04/25] system/memory: Split MemoryRegionCache API to 'memory_cached.h' Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 05/25] system/memory: Move *ldst* headers from exec/ to system/ namespace Philippe Mathieu-Daudé
2025-12-24 19:04   ` Manos Pitsidianakis
2025-12-29  0:51   ` Richard Henderson
2025-12-24 15:21 ` [PATCH v3 06/25] system/memory: Inline address_space_stq_internal() Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 07/25] system/memory: Define address_space_ldst[W] endian variants via template Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 08/25] system/memory: Define address_space_ldst[L] " Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 09/25] system/memory: Define address_space_ldst[Q] " Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 10/25] system/memory: Factor address_space_ldst[M]_internal() helper out Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 11/25] system/memory: Pass device_endian argument as MemOp bit Philippe Mathieu-Daudé
2025-12-28 11:08   ` Paolo Bonzini
2025-12-24 15:21 ` [PATCH v3 12/25] system/memory: Directly call address_space_ldst[M]_internal() helper Philippe Mathieu-Daudé
2025-12-29  0:54   ` Richard Henderson
2025-12-24 15:21 ` [PATCH v3 13/25] system/memory: Introduce LD/ST helpers with @n suffix (variable size) Philippe Mathieu-Daudé
2025-12-28 11:16   ` Paolo Bonzini
2025-12-24 15:21 ` [PATCH v3 14/25] system/memory: Use explicit endianness in ram_device::read/write() Philippe Mathieu-Daudé
2025-12-28 11:12   ` Paolo Bonzini
2025-12-28 16:01     ` Philippe Mathieu-Daudé
2025-12-24 15:21 ` [PATCH v3 15/25] system: Allow restricting the legacy ld/st_phys() 'native-endian' API Philippe Mathieu-Daudé
2025-12-24 19:11   ` Manos Pitsidianakis
2025-12-29  0:58   ` Richard Henderson
2025-12-24 15:21 ` [PATCH v3 16/25] system: Allow restricting the legacy ld/st_he() " Philippe Mathieu-Daudé
2025-12-27  8:56   ` Paolo Bonzini
2025-12-27 15:51     ` Philippe Mathieu-Daudé
2025-12-27 20:34       ` Philippe Mathieu-Daudé
2025-12-28 10:44         ` Paolo Bonzini
2025-12-28 15:14           ` Philippe Mathieu-Daudé
2025-12-28 15:38             ` Paolo Bonzini
2025-12-28 16:00               ` Philippe Mathieu-Daudé
2025-12-28 16:20                 ` Paolo Bonzini
2025-12-28 16:24                   ` Philippe Mathieu-Daudé
2025-12-28 17:19                   ` Peter Maydell
2025-12-28 20:15                     ` Paolo Bonzini
2025-12-24 15:22 ` [PATCH v3 17/25] system: Allow restricting legacy address_space_ldst() native-endian API Philippe Mathieu-Daudé
2025-12-29  1:05   ` Richard Henderson
2025-12-24 15:22 ` [PATCH v3 18/25] system: Allow restricting the legacy cpu_ld/st() 'native-endian' API Philippe Mathieu-Daudé
2025-12-29  1:06   ` Richard Henderson
2025-12-24 15:22 ` [PATCH v3 19/25] system: Allow restricting the legacy translator_ld() " Philippe Mathieu-Daudé
2025-12-29  1:07   ` Richard Henderson
2025-12-24 15:22 ` [PATCH v3 20/25] system: Allow restricting the legacy tswap() " Philippe Mathieu-Daudé
2025-12-29  1:10   ` Richard Henderson
2025-12-24 15:22 ` [PATCH v3 21/25] system: Allow restricting the legacy MO_TE* 'native-endian' definitions Philippe Mathieu-Daudé
2025-12-29  1:12   ` Richard Henderson
2025-12-24 15:22 ` [PATCH v3 22/25] system: Allow restricting the legacy DEVICE_NATIVE_ENDIAN definition Philippe Mathieu-Daudé
2025-12-29  1:14   ` Richard Henderson
2025-12-24 15:22 ` [PATCH v3 23/25] tests/qtest: Remove unnecessary 'qemu/bswap.h' include Philippe Mathieu-Daudé
2025-12-24 15:55   ` Cédric Le Goater
2025-12-24 19:11   ` Manos Pitsidianakis
2025-12-29  1:15   ` Richard Henderson
2025-12-24 15:22 ` [PATCH v3 24/25] system/ioport: Declare x86-specific I/O port in little-endian order Philippe Mathieu-Daudé
2025-12-26 20:43   ` Fabiano Rosas
2025-12-29  1:16   ` Richard Henderson
2025-12-24 15:22 ` [PATCH v3 25/25] system/ioport: Do not open-code address_space_ld/st_le() methods Philippe Mathieu-Daudé
2025-12-29  1:17   ` Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.