diff options
author | Jan Kiszka <jan.kiszka@web.de> | 2008-05-12 12:49:39 +0200 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-05-18 17:33:37 +0300 |
commit | 368767f7d03c853c3e0231d9e704c5b51fd8822f (patch) | |
tree | 0a28fcebb5f6cd8a68d88c81a06438e983dd42be /qemu-kvm-ia64.c | |
parent | c40ccca650d6d67ed50e1f4dd261e8f901bf469c (diff) |
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.c | 4 |
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) +{ +} |