[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 upstream 13/21] do not use timedwait on qemu_halt
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH v4 upstream 13/21] do not use timedwait on qemu_halt_cond |
Date: |
Sat, 12 Mar 2011 17:44:00 +0100 |
The following conditions can cause cpu_has_work(env) to become true:
- env->queued_work_first: run_on_cpu is already kicking the VCPU
- env->stop = 1: pause_all_vcpus is already kicking the VCPU
- env->stopped = 0: resume_all_vcpus is already kicking the VCPU
- vm_running = 1: vm_start is calling resume_all_vcpus
- env->halted = 0: see previous patch
- qemu_cpu_has_work(env): when it becomes true, board code should set
env->halted = 0 too.
Signed-off-by: Paolo Bonzini <address@hidden>
---
cpus.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/cpus.c b/cpus.c
index 6cfb45b..4c3837f 100644
--- a/cpus.c
+++ b/cpus.c
@@ -771,7 +771,7 @@ static void qemu_tcg_wait_io_event(void)
CPUState *env;
while (all_cpu_threads_idle()) {
- qemu_cond_timedwait(tcg_halt_cond, &qemu_global_mutex, 1000);
+ qemu_cond_wait(tcg_halt_cond, &qemu_global_mutex);
}
qemu_mutex_unlock(&qemu_global_mutex);
@@ -794,7 +794,7 @@ static void qemu_tcg_wait_io_event(void)
static void qemu_kvm_wait_io_event(CPUState *env)
{
while (cpu_thread_is_idle(env)) {
- qemu_cond_timedwait(env->halt_cond, &qemu_global_mutex, 1000);
+ qemu_cond_wait(env->halt_cond, &qemu_global_mutex);
}
qemu_kvm_eat_signals(env);
--
1.7.4
- [Qemu-devel] [PATCH v4 upstream 02/21] implement win32 dynticks timer, (continued)
- [Qemu-devel] [PATCH v4 upstream 02/21] implement win32 dynticks timer, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 03/21] use win32 timer queues, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 04/21] Refactor thread retrieval and check, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 06/21] include qemu-thread.h early, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 05/21] add win32 qemu-thread implementation, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 07/21] add assertions on the owner of a QemuMutex, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 08/21] remove CONFIG_THREAD, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 10/21] always qemu_cpu_kick after unhalting a cpu, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 09/21] inline cpu_halted into sole caller, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 12/21] always signal pause_cond after stopping a VCPU, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 13/21] do not use timedwait on qemu_halt_cond,
Paolo Bonzini <=
- [Qemu-devel] [PATCH v4 upstream 14/21] do not use timedwait on qemu_system_cond, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 15/21] do not use timedwait on qemu_pause_cond, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 17/21] iothread stops the vcpu thread via IPI, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 16/21] do not use timedwait on qemu_cpu_cond, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 18/21] merge all signal initialization with qemu_signalfd_init, rename, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 20/21] protect qemu_cpu_kick_self for Win32, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 19/21] provide dummy signal init functions for win32, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 21/21] add Win32 IPI service, Paolo Bonzini, 2011/03/12
- [Qemu-devel] [PATCH v4 upstream 11/21] exit round-robin vcpu loop if cpu->stopped is true, Paolo Bonzini, 2011/03/12
- [Qemu-devel] Re: [PATCH v4 upstream 00/21] Win32 iothread support, Blue Swirl, 2011/03/13