[PATCH 04/37] Trigger exit from cpu_exec_all on pending IO events

Marcelo Tosatti
2011-02-14T15:25:05Z

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>
---
cpus.c | 1 +
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) {}
--
1.7.4