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

login
register
mail settings
Submitter Marcelo Tosatti
Date Feb. 14, 2011, 3:22 p.m.
Message ID <38145df24c55bffe8ba63cfa28173c9ddd5a2c2d.1297696986.git.mtosatti@redhat.com>
Download mbox | patch
Permalink /patch/83135/
State New
Headers show

Comments

Marcelo Tosatti - Feb. 14, 2011, 3:22 p.m.
From: Jan Kiszka <jan.kiszka@siemens.com>

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(-)

Patch

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) {}