aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@web.de>2008-05-12 12:49:39 +0200
committerAvi Kivity <avi@qumranet.com>2008-05-18 17:33:37 +0300
commit368767f7d03c853c3e0231d9e704c5b51fd8822f (patch)
tree0a28fcebb5f6cd8a68d88c81a06438e983dd42be /qemu-kvm-ia64.c
parentFix e1000 can_receive handler (diff)
downloadqemu-kvm-368767f7d03c853c3e0231d9e704c5b51fd8822f.tar.gz
qemu-kvm-368767f7d03c853c3e0231d9e704c5b51fd8822f.tar.bz2
qemu-kvm-368767f7d03c853c3e0231d9e704c5b51fd8822f.zip
Fix guest resetting
Resetting guests used to be racy, deadlock-prone, or simply broken (for SMP). This patch fixes the issues, following Marcelo's suggestion to consolidate the reset activity in the I/O thread. All vcpus are cleanly stopped before the emulated hardware is reset, and kvm_arch_cpu_reset is introduced and invoked to ensure that non-boot cpus are put into the right state on x86. Note that other arch may need to look into this service as well to get SMP reset right. Moreover, a safety check is added to pause/resume_all_threads to ensure that they are only invoked in I/O thread context. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'qemu-kvm-ia64.c')
-rw-r--r--qemu-kvm-ia64.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/qemu-kvm-ia64.c b/qemu-kvm-ia64.c
index 4d0ddd736..d227d220b 100644
--- a/qemu-kvm-ia64.c
+++ b/qemu-kvm-ia64.c
@@ -61,3 +61,7 @@ int kvm_arch_try_push_interrupts(void *opaque)
void kvm_arch_update_regs_for_sipi(CPUState *env)
{
}
+
+void kvm_arch_cpu_reset(CPUState *env)
+{
+}