[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 07/24] Flatten the main loop
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH v2 07/24] Flatten the main loop |
Date: |
Tue, 1 Feb 2011 22:15:47 +0100 |
From: Jan Kiszka <address@hidden>
First of all, vm_can_run is a misnomer, it actually means "no request
pending". Moreover, there is no need to check all pending requests
twice, the first time via the inner loop check and then again when
actually processing the requests. We can simply remove the inner loop
and do the checks directly.
Signed-off-by: Jan Kiszka <address@hidden>
---
vl.c | 30 +++++++++++++++---------------
1 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/vl.c b/vl.c
index 2ebc55b..f5dec09 100644
--- a/vl.c
+++ b/vl.c
@@ -1371,14 +1371,16 @@ void main_loop_wait(int nonblocking)
}
-static int vm_can_run(void)
+#ifndef CONFIG_IOTHREAD
+static int vm_request_pending(void)
{
- return !(powerdown_requested ||
- reset_requested ||
- shutdown_requested ||
- debug_requested ||
- vmstop_requested);
+ return powerdown_requested ||
+ reset_requested ||
+ shutdown_requested ||
+ debug_requested ||
+ vmstop_requested;
}
+#endif
qemu_irq qemu_system_powerdown;
@@ -1393,21 +1395,19 @@ static void main_loop(void)
qemu_main_loop_start();
for (;;) {
- do {
#ifndef CONFIG_IOTHREAD
- nonblocking = cpu_exec_all();
- if (!vm_can_run()) {
- nonblocking = true;
- }
+ nonblocking = cpu_exec_all();
+ if (vm_request_pending()) {
+ nonblocking = true;
+ }
#endif
#ifdef CONFIG_PROFILER
- ti = profile_getclock();
+ ti = profile_getclock();
#endif
- main_loop_wait(nonblocking);
+ main_loop_wait(nonblocking);
#ifdef CONFIG_PROFILER
- dev_time += profile_getclock() - ti;
+ dev_time += profile_getclock() - ti;
#endif
- } while (vm_can_run());
if ((r = qemu_debug_requested())) {
vm_stop(r);
--
1.7.1
- [Qemu-devel] [PATCH v2 00/24] [uq/master] Patch queue, part II, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 11/24] kvm: Provide sigbus services arch-independently, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 04/24] Process vmstop requests in IO thread, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 23/24] Refactor kvm&tcg function names in cpus.c, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 17/24] kvm: Fix race between timer signals and vcpu entry under !IOTHREAD, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 18/24] kvm: Add MCE signal support for !CONFIG_IOTHREAD, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 01/24] kvm: x86: Fix build in absence of KVM_CAP_ASYNC_PF, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 21/24] kvm: Remove static return code of kvm_handle_io, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 22/24] kvm: Leave kvm_cpu_exec directly after KVM_EXIT_SHUTDOWN, Jan Kiszka, 2011/02/01
- [Qemu-devel] [PATCH v2 07/24] Flatten the main loop,
Jan Kiszka <=
- [Qemu-devel] [PATCH v2 13/24] kvm: Set up signal mask also for !CONFIG_IOTHREAD, Jan Kiszka, 2011/02/01
- [Qemu-devel] Re: [PATCH v2 13/24] kvm: Set up signal mask also for !CONFIG_IOTHREAD, Avi Kivity, 2011/02/28
- [Qemu-devel] Re: [PATCH v2 13/24] kvm: Set up signal mask also for !CONFIG_IOTHREAD, Jan Kiszka, 2011/02/28
- [Qemu-devel] Re: [PATCH v2 13/24] kvm: Set up signal mask also for !CONFIG_IOTHREAD, Avi Kivity, 2011/02/28
- [Qemu-devel] Re: [PATCH v2 13/24] kvm: Set up signal mask also for !CONFIG_IOTHREAD, Avi Kivity, 2011/02/28
- [Qemu-devel] Re: [PATCH v2 13/24] kvm: Set up signal mask also for !CONFIG_IOTHREAD, Jan Kiszka, 2011/02/28
- [Qemu-devel] Re: [PATCH v2 13/24] kvm: Set up signal mask also for !CONFIG_IOTHREAD, Avi Kivity, 2011/02/28
[Qemu-devel] [PATCH v2 14/24] kvm: Refactor qemu_kvm_eat_signals, Jan Kiszka, 2011/02/01