From: Pierrick Bouvier <pierrick.bouvier@linaro.org>
To: qemu-devel@nongnu.org
Cc: qemu-ppc@nongnu.org,
"Alistair Francis" <alistair.francis@wdc.com>,
"Richard Henderson" <richard.henderson@linaro.org>,
"Harsh Prateek Bora" <harshpb@linux.ibm.com>,
alex.bennee@linaro.org, "Palmer Dabbelt" <palmer@dabbelt.com>,
"Daniel Henrique Barboza" <danielhb413@gmail.com>,
kvm@vger.kernel.org, "Peter Xu" <peterx@redhat.com>,
"Nicholas Piggin" <npiggin@gmail.com>,
"Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
"David Hildenbrand" <david@redhat.com>,
"Weiwei Li" <liwei1518@gmail.com>, "Paul Durrant" <paul@xen.org>,
"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Anthony PERARD" <anthony@xenproject.org>,
"Yoshinori Sato" <ysato@users.sourceforge.jp>,
manos.pitsidianakis@linaro.org, qemu-riscv@nongnu.org,
"Paolo Bonzini" <pbonzini@redhat.com>,
xen-devel@lists.xenproject.org,
"Stefano Stabellini" <sstabellini@kernel.org>,
"Pierrick Bouvier" <pierrick.bouvier@linaro.org>
Subject: [PATCH 00/16] make system memory API available for common code
Date: Sun, 9 Mar 2025 21:58:26 -0700 [thread overview]
Message-ID: <20250310045842.2650784-1-pierrick.bouvier@linaro.org> (raw)
The main goal of this series is to be able to call any memory ld/st function
from code that is *not* target dependent. As a positive side effect, we can
turn related system compilation units into common code.
The first 6 patches remove dependency of memory API to cpu headers and remove
dependency to target specific code. This could be a series on its own, but it's
great to be able to turn system memory compilation units into common code to
make sure it can't regress, and prove it achieves the desired result.
The next patches remove more dependencies on cpu headers (exec-all,
memory-internal, ram_addr).
Then, we add access to a needed function from kvm, some xen stubs, and we
finally can turn our compilation units into common code.
Every commit was tested to build correctly for all targets (on windows, linux,
macos), and the series was fully tested by running all tests we have (linux,
x86_64 host).
Pierrick Bouvier (16):
exec/memory_ldst: extract memory_ldst declarations from cpu-all.h
exec/memory_ldst_phys: extract memory_ldst_phys declarations from
cpu-all.h
include: move target_words_bigendian() from tswap to bswap
exec/memory.h: make devend_memop target agnostic
qemu/bswap: implement {ld,st}.*_p as functions
exec/cpu-all.h: we can now remove ld/st macros
codebase: prepare to remove cpu.h from exec/exec-all.h
exec/exec-all: remove dependency on cpu.h
exec/memory-internal: remove dependency on cpu.h
exec/ram_addr: remove dependency on cpu.h
system/kvm: make kvm_flush_coalesced_mmio_buffer() accessible for
common code
exec/ram_addr: call xen_hvm_modified_memory only if xen is enabled
hw/xen: add stubs for various functions
system/physmem: compilation unit is now common to all targets
system/memory: make compilation unit common
system/ioport: make compilation unit common
include/exec/cpu-all.h | 52 ------------------
include/exec/exec-all.h | 1 -
include/exec/memory-internal.h | 2 -
include/exec/memory.h | 48 ++++++++++++++---
include/exec/ram_addr.h | 11 ++--
include/exec/tswap.h | 11 ----
include/qemu/bswap.h | 82 +++++++++++++++++++++++++++++
include/system/kvm.h | 6 +--
include/tcg/tcg-op.h | 1 +
target/ppc/helper_regs.h | 2 +
include/exec/memory_ldst.h.inc | 13 ++---
include/exec/memory_ldst_phys.h.inc | 5 +-
hw/ppc/spapr_nested.c | 1 +
hw/sh4/sh7750.c | 1 +
hw/xen/xen_stubs.c | 56 ++++++++++++++++++++
page-vary-target.c | 3 +-
system/ioport.c | 1 -
system/memory.c | 22 +++++---
target/riscv/bitmanip_helper.c | 1 +
hw/xen/meson.build | 3 ++
system/meson.build | 6 +--
21 files changed, 225 insertions(+), 103 deletions(-)
create mode 100644 hw/xen/xen_stubs.c
--
2.39.5
next reply other threads:[~2025-03-10 5:03 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 4:58 Pierrick Bouvier [this message]
2025-03-10 4:58 ` [PATCH 01/16] exec/memory_ldst: extract memory_ldst declarations from cpu-all.h Pierrick Bouvier
2025-03-10 15:17 ` Richard Henderson
2025-03-10 16:03 ` Pierrick Bouvier
2025-03-11 0:04 ` Pierrick Bouvier
2025-03-11 14:40 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 02/16] exec/memory_ldst_phys: extract memory_ldst_phys " Pierrick Bouvier
2025-03-11 0:08 ` Pierrick Bouvier
2025-03-10 4:58 ` [PATCH 03/16] include: move target_words_bigendian() from tswap to bswap Pierrick Bouvier
2025-03-10 15:21 ` Richard Henderson
2025-03-10 16:05 ` Pierrick Bouvier
2025-03-10 4:58 ` [PATCH 04/16] exec/memory.h: make devend_memop target agnostic Pierrick Bouvier
2025-03-10 15:25 ` Richard Henderson
2025-03-10 16:04 ` Pierrick Bouvier
2025-03-10 16:30 ` Richard Henderson
2025-03-10 16:38 ` Pierrick Bouvier
2025-03-10 4:58 ` [PATCH 05/16] qemu/bswap: implement {ld,st}.*_p as functions Pierrick Bouvier
2025-03-10 16:08 ` Richard Henderson
2025-03-10 16:14 ` Pierrick Bouvier
2025-03-10 16:37 ` Richard Henderson
2025-03-10 16:43 ` Pierrick Bouvier
2025-03-10 16:53 ` Richard Henderson
2025-03-10 17:09 ` Pierrick Bouvier
2025-03-10 20:17 ` BALATON Zoltan
2025-03-10 20:31 ` Pierrick Bouvier
2025-03-10 4:58 ` [PATCH 06/16] exec/cpu-all.h: we can now remove ld/st macros Pierrick Bouvier
2025-03-10 16:39 ` Richard Henderson
2025-03-10 16:45 ` Pierrick Bouvier
2025-03-10 4:58 ` [PATCH 07/16] codebase: prepare to remove cpu.h from exec/exec-all.h Pierrick Bouvier
2025-03-10 17:22 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 08/16] exec/exec-all: remove dependency on cpu.h Pierrick Bouvier
2025-03-10 17:29 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 09/16] exec/memory-internal: " Pierrick Bouvier
2025-03-10 17:29 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 10/16] exec/ram_addr: " Pierrick Bouvier
2025-03-10 17:29 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 11/16] system/kvm: make kvm_flush_coalesced_mmio_buffer() accessible for common code Pierrick Bouvier
2025-03-10 17:30 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 12/16] exec/ram_addr: call xen_hvm_modified_memory only if xen is enabled Pierrick Bouvier
2025-03-10 17:30 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 13/16] hw/xen: add stubs for various functions Pierrick Bouvier
2025-03-10 17:32 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 14/16] system/physmem: compilation unit is now common to all targets Pierrick Bouvier
2025-03-10 17:32 ` Richard Henderson
2025-03-10 4:58 ` [PATCH 15/16] system/memory: make compilation unit common Pierrick Bouvier
2025-03-10 17:43 ` Richard Henderson
2025-03-10 17:47 ` Pierrick Bouvier
2025-03-10 17:58 ` Richard Henderson
2025-03-10 18:04 ` Pierrick Bouvier
2025-03-10 18:10 ` Richard Henderson
2025-03-10 18:25 ` Pierrick Bouvier
2025-03-10 18:27 ` Philippe Mathieu-Daudé
2025-03-10 18:38 ` Pierrick Bouvier
2025-03-10 4:58 ` [PATCH 16/16] system/ioport: " Pierrick Bouvier
2025-03-10 17:43 ` Richard Henderson
2025-03-10 13:23 ` [PATCH 00/16] make system memory API available for common code BALATON Zoltan
2025-03-10 16:28 ` Pierrick Bouvier
2025-03-10 16:56 ` Pierrick Bouvier
2025-03-10 19:40 ` BALATON Zoltan
2025-03-10 20:26 ` Pierrick Bouvier
2025-03-10 21:02 ` BALATON Zoltan
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=20250310045842.2650784-1-pierrick.bouvier@linaro.org \
--to=pierrick.bouvier@linaro.org \
--cc=alex.bennee@linaro.org \
--cc=alistair.francis@wdc.com \
--cc=anthony@xenproject.org \
--cc=danielhb413@gmail.com \
--cc=david@redhat.com \
--cc=edgar.iglesias@gmail.com \
--cc=harshpb@linux.ibm.com \
--cc=kvm@vger.kernel.org \
--cc=liwei1518@gmail.com \
--cc=manos.pitsidianakis@linaro.org \
--cc=npiggin@gmail.com \
--cc=palmer@dabbelt.com \
--cc=paul@xen.org \
--cc=pbonzini@redhat.com \
--cc=peterx@redhat.com \
--cc=philmd@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=sstabellini@kernel.org \
--cc=xen-devel@lists.xenproject.org \
--cc=ysato@users.sourceforge.jp \
--cc=zhiwei_liu@linux.alibaba.com \
/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;
as well as URLs for NNTP newsgroup(s).