qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Subject: [PULL 056/148] include/exec: Split out icount.h
Date: Wed, 23 Apr 2025 17:48:01 -0700	[thread overview]
Message-ID: <20250424004934.598783-57-richard.henderson@linaro.org> (raw)
In-Reply-To: <20250424004934.598783-1-richard.henderson@linaro.org>

Split icount stuff from system/cpu-timers.h.
There are 17 files which only require icount.h, 7 that only
require cpu-timers.h, and 7 that require both.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 include/exec/icount.h            | 68 ++++++++++++++++++++++++++++++++
 include/system/cpu-timers.h      | 58 ---------------------------
 accel/tcg/cpu-exec.c             |  2 +-
 accel/tcg/icount-common.c        |  2 +-
 accel/tcg/monitor.c              |  1 +
 accel/tcg/tcg-accel-ops-icount.c |  2 +-
 accel/tcg/tcg-accel-ops-mttcg.c  |  2 +-
 accel/tcg/tcg-accel-ops-rr.c     |  2 +-
 accel/tcg/tcg-accel-ops.c        |  2 +-
 accel/tcg/tcg-all.c              |  2 +-
 accel/tcg/translate-all.c        |  2 +-
 hw/core/ptimer.c                 |  2 +-
 replay/replay.c                  |  2 +-
 stubs/icount.c                   |  2 +-
 system/cpu-timers.c              |  1 +
 system/dma-helpers.c             |  2 +-
 system/vl.c                      |  1 +
 target/arm/helper.c              |  1 +
 target/riscv/cpu_helper.c        |  2 +-
 target/riscv/csr.c               |  2 +-
 target/riscv/debug.c             |  1 +
 target/riscv/machine.c           |  2 +-
 target/riscv/pmu.c               |  2 +-
 util/async.c                     |  2 +-
 util/main-loop.c                 |  1 +
 util/qemu-timer.c                |  1 +
 26 files changed, 92 insertions(+), 75 deletions(-)
 create mode 100644 include/exec/icount.h

diff --git a/include/exec/icount.h b/include/exec/icount.h
new file mode 100644
index 0000000000..4964987ae4
--- /dev/null
+++ b/include/exec/icount.h
@@ -0,0 +1,68 @@
+/*
+ * icount - Instruction Counter API
+ * CPU timers state API
+ *
+ * Copyright 2020 SUSE LLC
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+
+#ifndef EXEC_ICOUNT_H
+#define EXEC_ICOUNT_H
+
+/**
+ * ICountMode: icount enablement state:
+ *
+ * @ICOUNT_DISABLED: Disabled - Do not count executed instructions.
+ * @ICOUNT_PRECISE: Enabled - Fixed conversion of insn to ns via "shift" option
+ * @ICOUNT_ADAPTATIVE: Enabled - Runtime adaptive algorithm to compute shift
+ */
+typedef enum {
+    ICOUNT_DISABLED = 0,
+    ICOUNT_PRECISE,
+    ICOUNT_ADAPTATIVE,
+} ICountMode;
+
+#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY)
+extern ICountMode use_icount;
+#define icount_enabled() (use_icount)
+#else
+#define icount_enabled() ICOUNT_DISABLED
+#endif
+
+/*
+ * Update the icount with the executed instructions. Called by
+ * cpus-tcg vCPU thread so the main-loop can see time has moved forward.
+ */
+void icount_update(CPUState *cpu);
+
+/* get raw icount value */
+int64_t icount_get_raw(void);
+
+/* return the virtual CPU time in ns, based on the instruction counter. */
+int64_t icount_get(void);
+/*
+ * convert an instruction counter value to ns, based on the icount shift.
+ * This shift is set as a fixed value with the icount "shift" option
+ * (precise mode), or it is constantly approximated and corrected at
+ * runtime in adaptive mode.
+ */
+int64_t icount_to_ns(int64_t icount);
+
+/**
+ * icount_configure: configure the icount options, including "shift"
+ * @opts: Options to parse
+ * @errp: pointer to a NULL-initialized error object
+ *
+ * Return: true on success, else false setting @errp with error
+ */
+bool icount_configure(QemuOpts *opts, Error **errp);
+
+/* used by tcg vcpu thread to calc icount budget */
+int64_t icount_round(int64_t count);
+
+/* if the CPUs are idle, start accounting real time to virtual clock. */
+void icount_start_warp_timer(void);
+void icount_account_warp_timer(void);
+void icount_notify_exit(void);
+
+#endif /* EXEC_ICOUNT_H */
diff --git a/include/system/cpu-timers.h b/include/system/cpu-timers.h
index 64ae54f6d6..a1abed0d7a 100644
--- a/include/system/cpu-timers.h
+++ b/include/system/cpu-timers.h
@@ -15,64 +15,6 @@
 /* init the whole cpu timers API, including icount, ticks, and cpu_throttle */
 void cpu_timers_init(void);
 
-/* icount - Instruction Counter API */
-
-/**
- * ICountMode: icount enablement state:
- *
- * @ICOUNT_DISABLED: Disabled - Do not count executed instructions.
- * @ICOUNT_PRECISE: Enabled - Fixed conversion of insn to ns via "shift" option
- * @ICOUNT_ADAPTATIVE: Enabled - Runtime adaptive algorithm to compute shift
- */
-typedef enum {
-    ICOUNT_DISABLED = 0,
-    ICOUNT_PRECISE,
-    ICOUNT_ADAPTATIVE,
-} ICountMode;
-
-#if defined(CONFIG_TCG) && !defined(CONFIG_USER_ONLY)
-extern ICountMode use_icount;
-#define icount_enabled() (use_icount)
-#else
-#define icount_enabled() ICOUNT_DISABLED
-#endif
-
-/*
- * Update the icount with the executed instructions. Called by
- * cpus-tcg vCPU thread so the main-loop can see time has moved forward.
- */
-void icount_update(CPUState *cpu);
-
-/* get raw icount value */
-int64_t icount_get_raw(void);
-
-/* return the virtual CPU time in ns, based on the instruction counter. */
-int64_t icount_get(void);
-/*
- * convert an instruction counter value to ns, based on the icount shift.
- * This shift is set as a fixed value with the icount "shift" option
- * (precise mode), or it is constantly approximated and corrected at
- * runtime in adaptive mode.
- */
-int64_t icount_to_ns(int64_t icount);
-
-/**
- * icount_configure: configure the icount options, including "shift"
- * @opts: Options to parse
- * @errp: pointer to a NULL-initialized error object
- *
- * Return: true on success, else false setting @errp with error
- */
-bool icount_configure(QemuOpts *opts, Error **errp);
-
-/* used by tcg vcpu thread to calc icount budget */
-int64_t icount_round(int64_t count);
-
-/* if the CPUs are idle, start accounting real time to virtual clock. */
-void icount_start_warp_timer(void);
-void icount_account_warp_timer(void);
-void icount_notify_exit(void);
-
 /*
  * CPU Ticks and Clock
  */
diff --git a/accel/tcg/cpu-exec.c b/accel/tcg/cpu-exec.c
index 372b876604..034c2ded6b 100644
--- a/accel/tcg/cpu-exec.c
+++ b/accel/tcg/cpu-exec.c
@@ -35,7 +35,7 @@
 #include "exec/log.h"
 #include "qemu/main-loop.h"
 #include "exec/cpu-all.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "exec/replay-core.h"
 #include "system/tcg.h"
 #include "exec/helper-proto-common.h"
diff --git a/accel/tcg/icount-common.c b/accel/tcg/icount-common.c
index 402d3e3f4e..d6471174a3 100644
--- a/accel/tcg/icount-common.c
+++ b/accel/tcg/icount-common.c
@@ -35,7 +35,7 @@
 #include "system/replay.h"
 #include "system/runstate.h"
 #include "hw/core/cpu.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/cpu-timers-internal.h"
 
 /*
diff --git a/accel/tcg/monitor.c b/accel/tcg/monitor.c
index eeb38a4d9c..1c182b6bfb 100644
--- a/accel/tcg/monitor.c
+++ b/accel/tcg/monitor.c
@@ -14,6 +14,7 @@
 #include "qapi/qapi-commands-machine.h"
 #include "monitor/monitor.h"
 #include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/tcg.h"
 #include "tcg/tcg.h"
 #include "internal-common.h"
diff --git a/accel/tcg/tcg-accel-ops-icount.c b/accel/tcg/tcg-accel-ops-icount.c
index 27cf1044c7..d0f7b410fa 100644
--- a/accel/tcg/tcg-accel-ops-icount.c
+++ b/accel/tcg/tcg-accel-ops-icount.c
@@ -25,7 +25,7 @@
 
 #include "qemu/osdep.h"
 #include "system/replay.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "qemu/main-loop.h"
 #include "qemu/guest-random.h"
 #include "hw/core/cpu.h"
diff --git a/accel/tcg/tcg-accel-ops-mttcg.c b/accel/tcg/tcg-accel-ops-mttcg.c
index bdcc385ae9..dfcee30947 100644
--- a/accel/tcg/tcg-accel-ops-mttcg.c
+++ b/accel/tcg/tcg-accel-ops-mttcg.c
@@ -26,7 +26,7 @@
 #include "qemu/osdep.h"
 #include "system/tcg.h"
 #include "system/replay.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "qemu/main-loop.h"
 #include "qemu/notify.h"
 #include "qemu/guest-random.h"
diff --git a/accel/tcg/tcg-accel-ops-rr.c b/accel/tcg/tcg-accel-ops-rr.c
index f62cf24e1d..6eec5c9eee 100644
--- a/accel/tcg/tcg-accel-ops-rr.c
+++ b/accel/tcg/tcg-accel-ops-rr.c
@@ -27,7 +27,7 @@
 #include "qemu/lockable.h"
 #include "system/tcg.h"
 #include "system/replay.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "qemu/main-loop.h"
 #include "qemu/notify.h"
 #include "qemu/guest-random.h"
diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c
index 5c88056157..ccdb781eef 100644
--- a/accel/tcg/tcg-accel-ops.c
+++ b/accel/tcg/tcg-accel-ops.c
@@ -29,7 +29,7 @@
 #include "system/accel-ops.h"
 #include "system/tcg.h"
 #include "system/replay.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "qemu/main-loop.h"
 #include "qemu/guest-random.h"
 #include "qemu/timer.h"
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index c1a30b0121..7a5b810b88 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -26,7 +26,7 @@
 #include "qemu/osdep.h"
 #include "system/tcg.h"
 #include "exec/replay-core.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "tcg/startup.h"
 #include "qapi/error.h"
 #include "qemu/error-report.h"
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 167535bcb1..bb161ae61a 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -55,7 +55,7 @@
 #include "qemu/cacheinfo.h"
 #include "qemu/timer.h"
 #include "exec/log.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/tcg.h"
 #include "qapi/error.h"
 #include "accel/tcg/cpu-ops.h"
diff --git a/hw/core/ptimer.c b/hw/core/ptimer.c
index 7f63d17ca1..0aeb10fb53 100644
--- a/hw/core/ptimer.c
+++ b/hw/core/ptimer.c
@@ -11,7 +11,7 @@
 #include "migration/vmstate.h"
 #include "qemu/host-utils.h"
 #include "exec/replay-core.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/qtest.h"
 #include "block/aio.h"
 #include "hw/clock.h"
diff --git a/replay/replay.c b/replay/replay.c
index 3adc387b3d..a3e24c967a 100644
--- a/replay/replay.c
+++ b/replay/replay.c
@@ -11,7 +11,7 @@
 
 #include "qemu/osdep.h"
 #include "qapi/error.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/replay.h"
 #include "system/runstate.h"
 #include "replay-internal.h"
diff --git a/stubs/icount.c b/stubs/icount.c
index edbf60cbfa..ceb73b4fc2 100644
--- a/stubs/icount.c
+++ b/stubs/icount.c
@@ -1,6 +1,6 @@
 #include "qemu/osdep.h"
 #include "qapi/error.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 
 /* icount - Instruction Counter API */
 
diff --git a/system/cpu-timers.c b/system/cpu-timers.c
index 23dd82b465..cb35fa62b8 100644
--- a/system/cpu-timers.c
+++ b/system/cpu-timers.c
@@ -36,6 +36,7 @@
 #include "hw/core/cpu.h"
 #include "system/cpu-timers.h"
 #include "system/cpu-timers-internal.h"
+#include "exec/icount.h"
 
 /* clock and ticks */
 
diff --git a/system/dma-helpers.c b/system/dma-helpers.c
index 6bad75876f..0d592f6468 100644
--- a/system/dma-helpers.c
+++ b/system/dma-helpers.c
@@ -13,7 +13,7 @@
 #include "trace.h"
 #include "qemu/thread.h"
 #include "qemu/main-loop.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "qemu/range.h"
 
 /* #define DEBUG_IOMMU */
diff --git a/system/vl.c b/system/vl.c
index ec93988a03..c17945c493 100644
--- a/system/vl.c
+++ b/system/vl.c
@@ -89,6 +89,7 @@
 #include "audio/audio.h"
 #include "system/cpus.h"
 #include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "migration/colo.h"
 #include "migration/postcopy-ram.h"
 #include "system/kvm.h"
diff --git a/target/arm/helper.c b/target/arm/helper.c
index 0454b06a6c..becbbbd0d8 100644
--- a/target/arm/helper.c
+++ b/target/arm/helper.c
@@ -24,6 +24,7 @@
 #include "exec/translation-block.h"
 #include "hw/irq.h"
 #include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/kvm.h"
 #include "system/tcg.h"
 #include "qapi/error.h"
diff --git a/target/riscv/cpu_helper.c b/target/riscv/cpu_helper.c
index 6c4391d96b..0dd8645994 100644
--- a/target/riscv/cpu_helper.c
+++ b/target/riscv/cpu_helper.c
@@ -31,7 +31,7 @@
 #include "accel/tcg/cpu-ops.h"
 #include "trace.h"
 #include "semihosting/common-semi.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "cpu_bits.h"
 #include "debug.h"
 #include "pmp.h"
diff --git a/target/riscv/csr.c b/target/riscv/csr.c
index 7948188356..c52c87faae 100644
--- a/target/riscv/csr.c
+++ b/target/riscv/csr.c
@@ -27,7 +27,7 @@
 #include "exec/exec-all.h"
 #include "exec/cputlb.h"
 #include "exec/tb-flush.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "qemu/guest-random.h"
 #include "qapi/error.h"
 #include <stdbool.h>
diff --git a/target/riscv/debug.c b/target/riscv/debug.c
index fea989afe9..7fc9e121e1 100644
--- a/target/riscv/debug.c
+++ b/target/riscv/debug.c
@@ -32,6 +32,7 @@
 #include "exec/helper-proto.h"
 #include "exec/watchpoint.h"
 #include "system/cpu-timers.h"
+#include "exec/icount.h"
 
 /*
  * The following M-mode trigger CSRs are implemented:
diff --git a/target/riscv/machine.c b/target/riscv/machine.c
index 889e2b6570..a1f70cc955 100644
--- a/target/riscv/machine.c
+++ b/target/riscv/machine.c
@@ -21,7 +21,7 @@
 #include "qemu/error-report.h"
 #include "system/kvm.h"
 #include "migration/cpu.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "debug.h"
 
 static bool pmp_needed(void *opaque)
diff --git a/target/riscv/pmu.c b/target/riscv/pmu.c
index 0408f96e6a..a68809eef3 100644
--- a/target/riscv/pmu.c
+++ b/target/riscv/pmu.c
@@ -22,7 +22,7 @@
 #include "qemu/timer.h"
 #include "cpu.h"
 #include "pmu.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/device_tree.h"
 
 #define RISCV_TIMEBASE_FREQ 1000000000 /* 1Ghz */
diff --git a/util/async.c b/util/async.c
index 863416dee9..2719c629ae 100644
--- a/util/async.c
+++ b/util/async.c
@@ -35,7 +35,7 @@
 #include "block/raw-aio.h"
 #include "qemu/coroutine_int.h"
 #include "qemu/coroutine-tls.h"
-#include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "trace.h"
 
 /***********************************************************/
diff --git a/util/main-loop.c b/util/main-loop.c
index acad8c2e6c..42bd75c193 100644
--- a/util/main-loop.c
+++ b/util/main-loop.c
@@ -27,6 +27,7 @@
 #include "qemu/cutils.h"
 #include "qemu/timer.h"
 #include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/replay.h"
 #include "qemu/main-loop.h"
 #include "block/aio.h"
diff --git a/util/qemu-timer.c b/util/qemu-timer.c
index 788466fe22..1fb48be281 100644
--- a/util/qemu-timer.c
+++ b/util/qemu-timer.c
@@ -27,6 +27,7 @@
 #include "qemu/timer.h"
 #include "qemu/lockable.h"
 #include "system/cpu-timers.h"
+#include "exec/icount.h"
 #include "system/replay.h"
 #include "system/cpus.h"
 
-- 
2.43.0



  parent reply	other threads:[~2025-04-24  0:56 UTC|newest]

Thread overview: 150+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-24  0:47 [PULL 000/148] single-binary patch queue Richard Henderson
2025-04-24  0:47 ` [PULL 001/148] exec/tswap: target code can use TARGET_BIG_ENDIAN instead of target_words_bigendian() Richard Henderson
2025-04-24  0:47 ` [PULL 002/148] exec/tswap: implement {ld, st}.*_p as functions instead of macros Richard Henderson
2025-04-24  0:47 ` [PULL 003/148] exec/memory_ldst: extract memory_ldst declarations from cpu-all.h Richard Henderson
2025-04-24  0:47 ` [PULL 004/148] exec/memory_ldst_phys: extract memory_ldst_phys " Richard Henderson
2025-04-24  0:47 ` [PULL 005/148] exec/memory.h: make devend_memop "target defines" agnostic Richard Henderson
2025-04-24  0:47 ` [PULL 006/148] codebase: prepare to remove cpu.h from exec/exec-all.h Richard Henderson
2025-04-24  0:47 ` [PULL 007/148] exec/exec-all: remove dependency on cpu.h Richard Henderson
2025-04-24  0:47 ` [PULL 008/148] exec/memory-internal: " Richard Henderson
2025-04-24  0:47 ` [PULL 009/148] exec/ram_addr: " Richard Henderson
2025-04-24  0:47 ` [PULL 010/148] system/kvm: make kvm_flush_coalesced_mmio_buffer() accessible for common code Richard Henderson
2025-04-24  0:47 ` [PULL 011/148] exec/ram_addr: call xen_hvm_modified_memory only if xen is enabled Richard Henderson
2025-04-24  0:47 ` [PULL 012/148] hw/xen: add stubs for various functions Richard Henderson
2025-04-24  0:47 ` [PULL 013/148] system/xen: remove inline stubs Richard Henderson
2025-04-24  0:47 ` [PULL 014/148] system/physmem: compilation unit is now common to all targets Richard Henderson
2025-04-24  0:47 ` [PULL 015/148] include/exec/memory: extract devend_big_endian from devend_memop Richard Henderson
2025-04-24  0:47 ` [PULL 016/148] include/exec/memory: move devend functions to memory-internal.h Richard Henderson
2025-04-24  0:47 ` [PULL 017/148] system/memory: make compilation unit common Richard Henderson
2025-04-24  0:47 ` [PULL 018/148] system/ioport: " Richard Henderson
2025-04-24  0:47 ` [PULL 019/148] accel/tcg: Build user-exec-stub.c once Richard Henderson
2025-04-24  0:47 ` [PULL 020/148] accel/tcg: Build plugin-gen.c once Richard Henderson
2025-04-24  0:47 ` [PULL 021/148] accel/tcg: Fix cpu_ld*_code_mmu for user mode Richard Henderson
2025-04-24  0:47 ` [PULL 022/148] include/exec: Use vaddr for *_mmu guest memory access routines Richard Henderson
2025-04-24  0:47 ` [PULL 023/148] include/exec: Split out cpu-ldst-common.h Richard Henderson
2025-04-24  0:47 ` [PULL 024/148] include/exec: Split out accel/tcg/cpu-mmu-index.h Richard Henderson
2025-04-24  0:47 ` [PULL 025/148] include/exec: Inline *_mmuidx_ra memory operations Richard Henderson
2025-04-24  0:47 ` [PULL 026/148] include/exec: Inline *_data_ra " Richard Henderson
2025-04-24  0:47 ` [PULL 027/148] include/exec: Inline *_data " Richard Henderson
2025-04-24  0:47 ` [PULL 028/148] include/exec: Inline *_code " Richard Henderson
2025-04-24  0:47 ` [PULL 029/148] accel/tcg: Perform aligned atomic reads in translator_ld Richard Henderson
2025-04-24  0:47 ` [PULL 030/148] accel/tcg: Use cpu_ld*_code_mmu in translator.c Richard Henderson
2025-04-24  0:47 ` [PULL 031/148] accel/tcg: Implement translator_ld*_end Richard Henderson
2025-04-24  0:47 ` [PULL 032/148] accel/tcg: Remove mmap_lock/unlock from watchpoint.c Richard Henderson
2025-04-24  0:47 ` [PULL 033/148] include/exec: Split out mmap-lock.h Richard Henderson
2025-04-24  0:47 ` [PULL 034/148] include/system: Move exec/memory.h to system/memory.h Richard Henderson
2025-04-24  0:47 ` [PULL 035/148] include/system: Move exec/address-spaces.h to system/address-spaces.h Richard Henderson
2025-04-24  0:47 ` [PULL 036/148] include/system: Move exec/ioport.h to system/ioport.h Richard Henderson
2025-04-24  0:47 ` [PULL 037/148] include/system: Move exec/ram_addr.h to system/ram_addr.h Richard Henderson
2025-04-24  0:47 ` [PULL 038/148] include/system: Move exec/ramblock.h to system/ramblock.h Richard Henderson
2025-04-24  0:47 ` [PULL 039/148] accel/tcg: Remove unnecesary inclusion of memory-internal.h in cputlb.c Richard Henderson
2025-04-24  0:47 ` [PULL 040/148] exec: Restrict memory-internal.h to system/ Richard Henderson
2025-04-24  0:47 ` [PULL 041/148] meson: Introduce top-level libuser_ss and libsystem_ss Richard Henderson
2025-04-24  0:47 ` [PULL 042/148] gdbstub: Move syscalls.c out of common_ss Richard Henderson
2025-04-24  0:47 ` [PULL 043/148] accel/tcg: Use libuser_ss and libsystem_ss Richard Henderson
2025-04-24  0:47 ` [PULL 044/148] target/mips: Restrict semihosting tests to system mode Richard Henderson
2025-04-24  0:47 ` [PULL 045/148] target/xtensa: " Richard Henderson
2025-04-24  0:47 ` [PULL 046/148] semihosting: Move user-only implementation out-of-line Richard Henderson
2025-04-24  0:47 ` [PULL 047/148] semihosting: Assert is_user in user-only semihosting_enabled Richard Henderson
2025-04-24  0:47 ` [PULL 048/148] include/exec: Split out watchpoint.h Richard Henderson
2025-04-24  0:47 ` [PULL 049/148] hw/core: Move unconditional files to libsystem_ss, libuser_ss Richard Henderson
2025-04-24  0:47 ` [PULL 050/148] system: Move most files to libsystem_ss Richard Henderson
2025-04-24  0:47 ` [PULL 051/148] plugins: Move api.c, core.c to libuser_ss, libsystem_ss Richard Henderson
2025-04-24  0:47 ` [PULL 052/148] include/exec: Drop ifndef CONFIG_USER_ONLY from cpu-common.h Richard Henderson
2025-04-24  0:47 ` [PULL 053/148] include/hw/core: Drop ifndef CONFIG_USER_ONLY from cpu.h Richard Henderson
2025-04-24  0:47 ` [PULL 054/148] include/hw/intc: Remove ifndef CONFIG_USER_ONLY from armv7m_nvic.h Richard Henderson
2025-04-24  0:48 ` [PULL 055/148] include/hw/s390x: Remove ifndef CONFIG_USER_ONLY in css.h Richard Henderson
2025-04-24  0:48 ` Richard Henderson [this message]
2025-04-24  0:48 ` [PULL 057/148] include/exec: Protect icount_enabled from poisoned symbols Richard Henderson
2025-04-24  0:48 ` [PULL 058/148] include/system: Remove ifndef CONFIG_USER_ONLY in qtest.h Richard Henderson
2025-04-24  0:48 ` [PULL 059/148] include/qemu: Remove ifndef CONFIG_USER_ONLY from accel.h Richard Henderson
2025-04-24  0:48 ` [PULL 060/148] target/riscv: Remove ifndef CONFIG_USER_ONLY from cpu_cfg.h Richard Henderson
2025-04-24  0:48 ` [PULL 061/148] meson: Only allow CONFIG_USER_ONLY from certain source sets Richard Henderson
2025-04-24  0:48 ` [PULL 062/148] exec/cpu-all: extract tlb flags defines to exec/tlb-flags.h Richard Henderson
2025-04-24  0:48 ` [PULL 063/148] accel/tcg: Fix argument types of tlb_reset_dirty Richard Henderson
2025-04-24  0:48 ` [PULL 064/148] accel/tcg: Pass CPUTLBEntryFull to tlb_reset_dirty_range_locked Richard Henderson
2025-04-24  0:48 ` [PULL 065/148] accel/tcg: Rebuild full flags in tlb_reset_dirty_range_locked Richard Henderson
2025-04-24  0:48 ` [PULL 066/148] include/exec: Move TLB_MMIO, TLB_DISCARD_WRITE to slow flags Richard Henderson
2025-04-24  0:48 ` [PULL 067/148] include/exec: Move tb_{, set_}page_addr[01] to translation-block.h Richard Henderson
2025-04-24  0:48 ` [PULL 068/148] accel/tcg: Move get_page_addr_code* declarations Richard Henderson
2025-04-24  0:48 ` [PULL 069/148] accel/tcg: Remove page_protect Richard Henderson
2025-04-24  0:48 ` [PULL 070/148] accel/tcg: Remove cpu-all.h, exec-all.h from tb-internal.h Richard Henderson
2025-04-24  0:48 ` [PULL 071/148] target/rx: Fix copy/paste typo (riscv -> rx) Richard Henderson
2025-04-24  0:48 ` [PULL 072/148] hw/core/cpu: Update CPUClass::mmu_index docstring Richard Henderson
2025-04-24  0:48 ` [PULL 073/148] accel/tcg: Introduce TCGCPUOps::mmu_index() callback Richard Henderson
2025-04-24  0:48 ` [PULL 074/148] target/alpha: Restrict SoftMMU mmu_index() to TCG Richard Henderson
2025-04-24  0:48 ` [PULL 075/148] target/arm: " Richard Henderson
2025-04-24  0:48 ` [PULL 076/148] target/avr: " Richard Henderson
2025-04-24  0:48 ` [PULL 077/148] target/hppa: " Richard Henderson
2025-04-24  0:48 ` [PULL 078/148] target/i386: Remove unused cpu_(ldub, stb)_kernel macros Richard Henderson
2025-04-24  0:48 ` [PULL 079/148] target/i386: Restrict cpu_mmu_index_kernel() to TCG Richard Henderson
2025-04-24  0:48 ` [PULL 080/148] target/i386: Restrict SoftMMU mmu_index() " Richard Henderson
2025-04-24  0:48 ` [PULL 081/148] target/loongarch: " Richard Henderson
2025-04-24  0:48 ` [PULL 082/148] target/m68k: " Richard Henderson
2025-04-24  0:48 ` [PULL 083/148] target/microblaze: " Richard Henderson
2025-04-24  0:48 ` [PULL 084/148] target/mips: " Richard Henderson
2025-04-24  0:48 ` [PULL 085/148] target/openrisc: " Richard Henderson
2025-04-24  0:48 ` [PULL 086/148] target/ppc: " Richard Henderson
2025-04-24  0:48 ` [PULL 087/148] target/riscv: " Richard Henderson
2025-04-24  0:48 ` [PULL 088/148] target/rx: " Richard Henderson
2025-04-24  0:48 ` [PULL 089/148] target/s390x: " Richard Henderson
2025-04-24  0:48 ` [PULL 090/148] target/sh4: " Richard Henderson
2025-04-24  0:48 ` [PULL 091/148] target/sparc: " Richard Henderson
2025-04-24  0:48 ` [PULL 092/148] target/tricore: " Richard Henderson
2025-04-24  0:48 ` [PULL 093/148] target/xtensa: " Richard Henderson
2025-04-24  0:48 ` [PULL 094/148] target/hexagon: Implement TCGCPUOps.mmu_index Richard Henderson
2025-04-24  0:48 ` [PULL 095/148] hw/core/cpu: Remove CPUClass::mmu_index() Richard Henderson
2025-04-24  0:48 ` [PULL 096/148] accel/tcg: Build translator.c twice Richard Henderson
2025-04-24  0:48 ` [PULL 097/148] accel/tcg: Split out tlb-bounds.h Richard Henderson
2025-04-24  0:48 ` [PULL 098/148] include/exec: Redefine tlb-flags with absolute values Richard Henderson
2025-04-24  0:48 ` [PULL 099/148] page-vary: Move and rename qemu_target_page_bits_min Richard Henderson
2025-04-24  0:48 ` [PULL 100/148] page-vary: Restrict scope of TARGET_PAGE_BITS_MIN Richard Henderson
2025-04-24  0:48 ` [PULL 101/148] exec/cpu-all: move cpu_copy to linux-user/qemu.h Richard Henderson
2025-04-24  0:48 ` [PULL 102/148] include/exec/cpu-all: move compile time check for CPUArchState to cpu-target.c Richard Henderson
2025-04-24  0:48 ` [PULL 103/148] exec/cpu-all: remove system/memory include Richard Henderson
2025-04-24  0:48 ` [PULL 104/148] exec/cpu-all: remove exec/page-protection include Richard Henderson
2025-04-24  0:48 ` [PULL 105/148] exec/cpu-all: remove tswap include Richard Henderson
2025-04-24  0:48 ` [PULL 106/148] exec/cpu-all: remove exec/cpu-interrupt include Richard Henderson
2025-04-24  0:48 ` [PULL 107/148] accel/tcg: fix missing includes for TCG_GUEST_DEFAULT_MO Richard Henderson
2025-04-24  0:48 ` [PULL 108/148] accel/tcg: fix missing includes for TARGET_HAS_PRECISE_SMC Richard Henderson
2025-04-24  0:48 ` [PULL 109/148] exec/cpu-all: remove cpu include Richard Henderson
2025-04-24  0:48 ` [PULL 110/148] exec/cpu-all: remove exec/target_page include Richard Henderson
2025-04-24  0:48 ` [PULL 111/148] exec/cpu-all: transfer exec/cpu-common include to cpu.h headers Richard Henderson
2025-04-24  0:48 ` [PULL 112/148] exec/cpu-all: remove this header Richard Henderson
2025-04-24  0:48 ` [PULL 113/148] accel/kvm: move KVM_HAVE_MCE_INJECTION define to kvm-all.c Richard Henderson
2025-04-24  0:48 ` [PULL 114/148] exec/poison: KVM_HAVE_MCE_INJECTION can now be poisoned Richard Henderson
2025-04-24  0:49 ` [PULL 115/148] target/arm/cpu: always define kvm related registers Richard Henderson
2025-04-24  0:49 ` [PULL 116/148] target/arm/cpu: flags2 is always uint64_t Richard Henderson
2025-04-24  0:49 ` [PULL 117/148] target/arm/cpu: define same set of registers for aarch32 and aarch64 Richard Henderson
2025-04-24  0:49 ` [PULL 118/148] target/arm/cpu: remove inline stubs for aarch32 emulation Richard Henderson
2025-04-24  0:49 ` [PULL 119/148] target/arm: Expose Aarch64 helpers unconditionally Richard Henderson
2025-04-24  0:49 ` [PULL 120/148] meson: add common hw files Richard Henderson
2025-04-24  0:49 ` [PULL 121/148] hw/arm/boot: make compilation unit hw common Richard Henderson
2025-04-24  0:49 ` [PULL 122/148] hw/arm/digic_boards: prepare compilation unit to be common Richard Henderson
2025-04-24  0:49 ` [PULL 123/148] hw/arm/xlnx-zynqmp: " Richard Henderson
2025-04-24  0:49 ` [PULL 124/148] hw/arm/xlnx-versal: " Richard Henderson
2025-04-24  0:49 ` [PULL 125/148] hw/arm: make most of the compilation units common Richard Henderson
2025-04-24  0:49 ` [PULL 126/148] target/riscv: Do not expose rv128 CPU on user mode emulation Richard Henderson
2025-04-24  0:49 ` [PULL 127/148] tcg: Include missing 'cpu.h' in translate-all.c Richard Henderson
2025-04-24  0:49 ` [PULL 128/148] tcg: Declare TARGET_INSN_START_EXTRA_WORDS in 'cpu-param.h' Richard Henderson
2025-04-24  0:49 ` [PULL 129/148] tcg: Always define TARGET_INSN_START_EXTRA_WORDS Richard Henderson
2025-04-24  0:49 ` [PULL 130/148] exec: Restrict 'cpu-ldst-common.h' to accel/tcg/ Richard Henderson
2025-04-24  0:49 ` [PULL 131/148] exec: Restrict 'cpu_ldst.h' " Richard Henderson
2025-04-24  0:49 ` [PULL 132/148] exec: Do not include 'accel/tcg/cpu-ldst.h' in 'exec-all.h' Richard Henderson
2025-04-24  0:49 ` [PULL 133/148] tcg: Always define TCG_GUEST_DEFAULT_MO Richard Henderson
2025-04-24  0:49 ` [PULL 134/148] tcg: Simplify tcg_req_mo() macro Richard Henderson
2025-04-24  0:49 ` [PULL 135/148] tcg: Define guest_default_memory_order in TCGCPUOps Richard Henderson
2025-04-24  0:49 ` [PULL 136/148] tcg: Remove use of TCG_GUEST_DEFAULT_MO in tb_gen_code() Richard Henderson
2025-04-24  0:49 ` [PULL 137/148] tcg: Propagate CPUState argument to cpu_req_mo() Richard Henderson
2025-04-24  0:49 ` [PULL 138/148] tcg: Have tcg_req_mo() use TCGCPUOps::guest_default_memory_order Richard Henderson
2025-04-24  0:49 ` [PULL 139/148] tcg: Remove the TCG_GUEST_DEFAULT_MO definition globally Richard Henderson
2025-04-24  0:49 ` [PULL 140/148] tcg: Move cpu_req_mo() macro to target-agnostic 'backend-ldst.h' Richard Henderson
2025-04-24  0:49 ` [PULL 141/148] tcg: Pass max_threads not max_cpus to tcg_init Richard Henderson
2025-04-24  0:49 ` [PULL 142/148] tcg: Move qemu_tcg_mttcg_enabled() to 'system/tcg.h' Richard Henderson
2025-04-24  0:49 ` [PULL 143/148] accel/tcg: Remove mttcg_enabled Richard Henderson
2025-04-24  0:49 ` [PULL 144/148] tcg: Convert TCGState::mttcg_enabled to TriState Richard Henderson
2025-04-24  0:49 ` [PULL 145/148] accel/tcg: Move mttcg warning to tcg_init_machine Richard Henderson
2025-04-24  0:49 ` [PULL 146/148] target/riscv: Remove AccelCPUClass::cpu_class_init need Richard Henderson
2025-04-24  0:49 ` [PULL 147/148] target/i386: " Richard Henderson
2025-04-24  0:49 ` [PULL 148/148] tcg: Convert TARGET_SUPPORTS_MTTCG to TCGCPUOps::mttcg_supported field Richard Henderson
2025-04-24 21:19 ` [PULL 000/148] single-binary patch queue Stefan Hajnoczi

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=20250424004934.598783-57-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=pierrick.bouvier@linaro.org \
    --cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).