[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 3/9] i386: hvf: Add hvf_cpu_synchronize_pre_loadvm()
From: |
Roman Bolshakov |
Subject: |
[PATCH v2 3/9] i386: hvf: Add hvf_cpu_synchronize_pre_loadvm() |
Date: |
Tue, 30 Jun 2020 13:28:18 +0300 |
hvf lacks an implementation of cpu_synchronize_pre_loadvm().
Cc: Cameron Esfahani <dirty@apple.com>
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
---
include/sysemu/hvf.h | 1 +
include/sysemu/hw_accel.h | 3 +++
target/i386/hvf/hvf.c | 11 +++++++++++
3 files changed, 15 insertions(+)
diff --git a/include/sysemu/hvf.h b/include/sysemu/hvf.h
index 5214ed5202..1d40a8ec01 100644
--- a/include/sysemu/hvf.h
+++ b/include/sysemu/hvf.h
@@ -28,6 +28,7 @@ int hvf_vcpu_exec(CPUState *);
void hvf_cpu_synchronize_state(CPUState *);
void hvf_cpu_synchronize_post_reset(CPUState *);
void hvf_cpu_synchronize_post_init(CPUState *);
+void hvf_cpu_synchronize_pre_loadvm(CPUState *);
void hvf_vcpu_destroy(CPUState *);
void hvf_reset_vcpu(CPUState *);
diff --git a/include/sysemu/hw_accel.h b/include/sysemu/hw_accel.h
index 80bce75921..e128f8b06b 100644
--- a/include/sysemu/hw_accel.h
+++ b/include/sysemu/hw_accel.h
@@ -73,6 +73,9 @@ static inline void cpu_synchronize_pre_loadvm(CPUState *cpu)
if (hax_enabled()) {
hax_cpu_synchronize_pre_loadvm(cpu);
}
+ if (hvf_enabled()) {
+ hvf_cpu_synchronize_pre_loadvm(cpu);
+ }
if (whpx_enabled()) {
whpx_cpu_synchronize_pre_loadvm(cpu);
}
diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
index be016b951a..efe9802962 100644
--- a/target/i386/hvf/hvf.c
+++ b/target/i386/hvf/hvf.c
@@ -325,6 +325,17 @@ void hvf_cpu_synchronize_post_init(CPUState *cpu_state)
run_on_cpu(cpu_state, do_hvf_cpu_synchronize_post_init, RUN_ON_CPU_NULL);
}
+static void do_hvf_cpu_synchronize_pre_loadvm(CPUState *cpu,
+ run_on_cpu_data arg)
+{
+ cpu->vcpu_dirty = true;
+}
+
+void hvf_cpu_synchronize_pre_loadvm(CPUState *cpu)
+{
+ run_on_cpu(cpu, do_hvf_cpu_synchronize_pre_loadvm, RUN_ON_CPU_NULL);
+}
+
static bool ept_emulation_fault(hvf_slot *slot, uint64_t gpa, uint64_t
ept_qual)
{
int read, write;
--
2.26.1
- [PATCH v2 0/9] Improve synchronization between QEMU and HVF, Roman Bolshakov, 2020/06/30
- [PATCH v2 8/9] i386: hvf: Clean up synchronize functions, Roman Bolshakov, 2020/06/30
- [PATCH v2 7/9] i386: hvf: Don't duplicate register reset, Roman Bolshakov, 2020/06/30
- [PATCH v2 6/9] i386: hvf: Move Guest LMA reset to macvm_set_cr0(), Roman Bolshakov, 2020/06/30
- [PATCH v2 9/9] MAINTAINERS: Add Cameron as HVF co-maintainer, Roman Bolshakov, 2020/06/30