[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 6/8] i386: hvf: Drop hvf_reset_vcpu()
From: |
Roman Bolshakov |
Subject: |
[PATCH 6/8] i386: hvf: Drop hvf_reset_vcpu() |
Date: |
Thu, 25 Jun 2020 01:58:49 +0300 |
It's worth to have a custom accel-specific reset in x86_cpu_reset() only
if something related to CPUState has to be reset and that can't be done
in post-init or post-reset.
Cc: Cameron Esfahani <dirty@apple.com>
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
---
include/sysemu/hvf.h | 1 -
target/i386/cpu.c | 3 ---
target/i386/hvf/hvf.c | 23 +++++++++++------------
3 files changed, 11 insertions(+), 16 deletions(-)
diff --git a/include/sysemu/hvf.h b/include/sysemu/hvf.h
index aaa00cbf05..a1ab61403f 100644
--- a/include/sysemu/hvf.h
+++ b/include/sysemu/hvf.h
@@ -31,7 +31,6 @@ 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 *);
#define TYPE_HVF_ACCEL ACCEL_CLASS_NAME("hvf")
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index b1b311baa2..bfa3eed9b6 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -6089,9 +6089,6 @@ static void x86_cpu_reset(DeviceState *dev)
if (kvm_enabled()) {
kvm_arch_reset_vcpu(cpu);
}
- else if (hvf_enabled()) {
- hvf_reset_vcpu(s);
- }
#endif
}
diff --git a/target/i386/hvf/hvf.c b/target/i386/hvf/hvf.c
index 2c4028d08c..0b2be8de47 100644
--- a/target/i386/hvf/hvf.c
+++ b/target/i386/hvf/hvf.c
@@ -303,6 +303,17 @@ void hvf_cpu_synchronize_state(CPUState *cpu_state)
static void do_hvf_cpu_synchronize_post_reset(CPUState *cpu, run_on_cpu_data
arg)
{
CPUState *cpu_state = cpu;
+ uint64_t pdpte[4] = {0, 0, 0, 0};
+ int i;
+
+ /* Reset IA-32e mode guest (LMA) */
+ wvmcs(cpu->hvf_fd, VMCS_ENTRY_CTLS, 0);
+
+ /* Initialize PDPTE */
+ for (i = 0; i < 4; i++) {
+ wvmcs(cpu->hvf_fd, VMCS_GUEST_PDPTE0 + i * 2, pdpte[i]);
+ }
+
hvf_put_registers(cpu_state);
cpu_state->vcpu_dirty = false;
}
@@ -452,18 +463,6 @@ static MemoryListener hvf_memory_listener = {
.log_sync = hvf_log_sync,
};
-void hvf_reset_vcpu(CPUState *cpu) {
- uint64_t pdpte[4] = {0, 0, 0, 0};
- int i;
-
- wvmcs(cpu->hvf_fd, VMCS_ENTRY_CTLS, 0);
-
- /* Initialize PDPTE */
- for (i = 0; i < 4; i++) {
- wvmcs(cpu->hvf_fd, VMCS_GUEST_PDPTE0 + i * 2, pdpte[i]);
- }
-}
-
void hvf_vcpu_destroy(CPUState *cpu)
{
X86CPU *x86_cpu = X86_CPU(cpu);
--
2.26.1
[PATCH 5/8] i386: hvf: Don't duplicate register reset, Roman Bolshakov, 2020/06/24
[PATCH 4/8] i386: hvf: Implement CPU kick, Roman Bolshakov, 2020/06/24