aboutsummaryrefslogtreecommitdiff
path: root/cpus.c
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2011-02-01 22:15:45 +0100
committerMarcelo Tosatti <mtosatti@redhat.com>2011-02-14 12:39:44 -0200
commit38145df24c55bffe8ba63cfa28173c9ddd5a2c2d (patch)
tree91145928f0cf43fede2ef8e96a3f26b0a6026a83 /cpus.c
parent1745eaaa7c53c6090d53090d239d0234a7ecfd2d (diff)
downloadqemu-38145df24c55bffe8ba63cfa28173c9ddd5a2c2d.zip
qemu-38145df24c55bffe8ba63cfa28173c9ddd5a2c2d.tar.gz
qemu-38145df24c55bffe8ba63cfa28173c9ddd5a2c2d.tar.bz2
Trigger exit from cpu_exec_all on pending IO events
Except for timer events, we currently do not leave the loop over all VCPUs if an IO event was filed. That may cause unexpected IO latencies under !CONFIG_IOTHREAD in SMP scenarios. Fix it by setting the global exit_request which breaks the loop. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'cpus.c')
-rw-r--r--cpus.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/cpus.c b/cpus.c
index f8a88e3..0abc009 100644
--- a/cpus.c
+++ b/cpus.c
@@ -307,6 +307,7 @@ void qemu_notify_event(void)
if (next_cpu && env != next_cpu) {
cpu_exit(next_cpu);
}
+ exit_request = 1;
}
void qemu_mutex_lock_iothread(void) {}