[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 07/60] accel/tcg: Factor tcg_cpu_reset_hold() out
From: |
Philippe Mathieu-Daudé |
Subject: |
[PULL 07/60] accel/tcg: Factor tcg_cpu_reset_hold() out |
Date: |
Mon, 6 Nov 2023 12:02:39 +0100 |
Factor the TCG specific code from cpu_common_reset_hold() to
tcg_cpu_reset_hold() within tcg-accel-ops.c. Since this file
is sysemu specific, we can inline tcg_flush_softmmu_tlb(),
removing its declaration in "exec/cpu-common.h".
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20230918104153.24433-4-philmd@linaro.org>
---
include/exec/cpu-common.h | 2 --
accel/stubs/tcg-stub.c | 4 ----
accel/tcg/tcg-accel-ops.c | 8 ++++++++
accel/tcg/translate-all.c | 8 --------
hw/core/cpu-common.c | 5 -----
5 files changed, 8 insertions(+), 19 deletions(-)
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
index f700071d12..41115d8919 100644
--- a/include/exec/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -45,8 +45,6 @@ void cpu_list_lock(void);
void cpu_list_unlock(void);
unsigned int cpu_list_generation_id_get(void);
-void tcg_flush_softmmu_tlb(CPUState *cs);
-
void tcg_iommu_init_notifier_list(CPUState *cpu);
void tcg_iommu_free_notifier_list(CPUState *cpu);
diff --git a/accel/stubs/tcg-stub.c b/accel/stubs/tcg-stub.c
index a9e7a2d5b4..8a496a2a6f 100644
--- a/accel/stubs/tcg-stub.c
+++ b/accel/stubs/tcg-stub.c
@@ -22,10 +22,6 @@ void tlb_set_dirty(CPUState *cpu, vaddr vaddr)
{
}
-void tcg_flush_jmp_cache(CPUState *cpu)
-{
-}
-
int probe_access_flags(CPUArchState *env, vaddr addr, int size,
MMUAccessType access_type, int mmu_idx,
bool nonfault, void **phost, uintptr_t retaddr)
diff --git a/accel/tcg/tcg-accel-ops.c b/accel/tcg/tcg-accel-ops.c
index 7ddb05c332..1b57290682 100644
--- a/accel/tcg/tcg-accel-ops.c
+++ b/accel/tcg/tcg-accel-ops.c
@@ -78,6 +78,13 @@ int tcg_cpus_exec(CPUState *cpu)
return ret;
}
+static void tcg_cpu_reset_hold(CPUState *cpu)
+{
+ tcg_flush_jmp_cache(cpu);
+
+ tlb_flush(cpu);
+}
+
/* mask must never be zero, except for A20 change call */
void tcg_handle_interrupt(CPUState *cpu, int mask)
{
@@ -206,6 +213,7 @@ static void tcg_accel_ops_init(AccelOpsClass *ops)
}
}
+ ops->cpu_reset_hold = tcg_cpu_reset_hold;
ops->supports_guest_debug = tcg_supports_guest_debug;
ops->insert_breakpoint = tcg_insert_breakpoint;
ops->remove_breakpoint = tcg_remove_breakpoint;
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 8cb6ad3511..27e8152f0a 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -800,11 +800,3 @@ void tcg_flush_jmp_cache(CPUState *cpu)
qatomic_set(&jc->array[i].tb, NULL);
}
}
-
-/* This is a wrapper for common code that can not use CONFIG_SOFTMMU */
-void tcg_flush_softmmu_tlb(CPUState *cs)
-{
-#ifdef CONFIG_SOFTMMU
- tlb_flush(cs);
-#endif
-}
diff --git a/hw/core/cpu-common.c b/hw/core/cpu-common.c
index 7d266c36ac..baa6d28b64 100644
--- a/hw/core/cpu-common.c
+++ b/hw/core/cpu-common.c
@@ -27,7 +27,6 @@
#include "qemu/main-loop.h"
#include "exec/log.h"
#include "exec/cpu-common.h"
-#include "exec/tb-flush.h"
#include "qemu/error-report.h"
#include "qemu/qemu-print.h"
#include "sysemu/tcg.h"
@@ -138,10 +137,6 @@ static void cpu_common_reset_hold(Object *obj)
cpu->cflags_next_tb = -1;
cpu_exec_reset_hold(cpu);
- if (tcg_enabled()) {
- tcg_flush_jmp_cache(cpu);
- tcg_flush_softmmu_tlb(cpu);
- }
}
static bool cpu_common_has_work(CPUState *cs)
--
2.41.0
- [PULL 00/60] Misc HW/UI patches for 2023-11-06, Philippe Mathieu-Daudé, 2023/11/06
- [PULL 01/60] vl: Free machine list, Philippe Mathieu-Daudé, 2023/11/06
- [PULL 02/60] vl: constify default_list, Philippe Mathieu-Daudé, 2023/11/06
- [PULL 03/60] tests/vm/ubuntu.aarch64: Correct comment about TCG specific delay, Philippe Mathieu-Daudé, 2023/11/06
- [PULL 04/60] tests/unit/test-seccomp: Remove mentions of softmmu in test names, Philippe Mathieu-Daudé, 2023/11/06
- [PULL 05/60] accel/tcg: Declare tcg_flush_jmp_cache() in 'exec/tb-flush.h', Philippe Mathieu-Daudé, 2023/11/06
- [PULL 06/60] accel: Introduce cpu_exec_reset_hold(), Philippe Mathieu-Daudé, 2023/11/06
- [PULL 07/60] accel/tcg: Factor tcg_cpu_reset_hold() out,
Philippe Mathieu-Daudé <=
- [PULL 09/60] target: Mention 'cpu-qom.h' is target agnostic, Philippe Mathieu-Daudé, 2023/11/06
- [PULL 08/60] target: Unify QOM style, Philippe Mathieu-Daudé, 2023/11/06
- [PULL 10/60] target/arm: Move internal declarations from 'cpu-qom.h' to 'cpu.h', Philippe Mathieu-Daudé, 2023/11/06
- [PULL 12/60] target/riscv: Remove CPU_RESOLVING_TYPE from 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/11/06
- [PULL 11/60] target/ppc: Remove CPU_RESOLVING_TYPE from 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/11/06
- [PULL 13/60] target: Declare FOO_CPU_TYPE_NAME/SUFFIX in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/11/06
- [PULL 14/60] target/hexagon: Declare QOM definitions in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/11/06
- [PULL 15/60] target/loongarch: Declare QOM definitions in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/11/06
- [PULL 16/60] target/nios2: Declare QOM definitions in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/11/06
- [PULL 17/60] target/openrisc: Declare QOM definitions in 'cpu-qom.h', Philippe Mathieu-Daudé, 2023/11/06