From: Jan Kiszka <jan.kis...@siemens.com> If there is any pending request that requires us to leave the inner loop if main_loop, makes sure we do this as soon as possible by enforcing non-blocking IO processing.
At this change, move variable definitions out of the inner loop to improve readability. Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> Signed-off-by: Marcelo Tosatti <mtosa...@redhat.com> --- vl.c | 11 +++++++---- 1 files changed, 7 insertions(+), 4 deletions(-) diff --git a/vl.c b/vl.c index 30263d6..9c628f0 100644 --- a/vl.c +++ b/vl.c @@ -1402,18 +1402,21 @@ qemu_irq qemu_system_powerdown; static void main_loop(void) { + bool nonblocking = false; +#ifdef CONFIG_PROFILER + int64_t ti; +#endif int r; qemu_main_loop_start(); for (;;) { do { - bool nonblocking = false; -#ifdef CONFIG_PROFILER - int64_t ti; -#endif #ifndef CONFIG_IOTHREAD nonblocking = cpu_exec_all(); + if (!vm_can_run()) { + nonblocking = true; + } #endif #ifdef CONFIG_PROFILER ti = profile_getclock(); -- 1.7.4 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html