From 5be4aab7015d347b7506167c516f04c3ad171e4c Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Mon, 2 May 2011 17:32:54 +0200 Subject: posix-aio-compat: Fix idle_threads counter A thread should only be counted as idle when it really is waiting for new requests. Without this patch, sometimes too few threads are started as busy threads are counted as idle. Not sure if it makes a difference in practice outside some artificial qemu-io/qemu-img tests, but I think the change makes sense in any case. Signed-off-by: Kevin Wolf --- posix-aio-compat.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'posix-aio-compat.c') diff --git a/posix-aio-compat.c b/posix-aio-compat.c index 6d4df9da30..f3cc8687ce 100644 --- a/posix-aio-compat.c +++ b/posix-aio-compat.c @@ -322,7 +322,9 @@ static void *aio_thread(void *unused) while (QTAILQ_EMPTY(&request_list) && !(ret == ETIMEDOUT)) { + idle_threads++; ret = cond_timedwait(&cond, &lock, &ts); + idle_threads--; } if (QTAILQ_EMPTY(&request_list)) @@ -331,7 +333,6 @@ static void *aio_thread(void *unused) aiocb = QTAILQ_FIRST(&request_list); QTAILQ_REMOVE(&request_list, aiocb, node); aiocb->active = 1; - idle_threads--; mutex_unlock(&lock); switch (aiocb->aio_type & QEMU_AIO_TYPE_MASK) { @@ -353,13 +354,11 @@ static void *aio_thread(void *unused) mutex_lock(&lock); aiocb->ret = ret; - idle_threads++; mutex_unlock(&lock); if (kill(pid, aiocb->ev_signo)) die("kill failed"); } - idle_threads--; cur_threads--; mutex_unlock(&lock); @@ -371,7 +370,6 @@ static void spawn_thread(void) sigset_t set, oldset; cur_threads++; - idle_threads++; /* block all signals */ if (sigfillset(&set)) die("sigfillset"); -- cgit v1.2.3-55-g7522 From 9bf0960a9adb93c38b879a2114f6c67e30427307 Mon Sep 17 00:00:00 2001 From: Alexandre Raymond Date: Thu, 2 Jun 2011 23:26:49 -0400 Subject: Fix compilation warning due to missing header for sigaction (followup) This patch removes all references to signal.h when qemu-common.h is included as they become redundant. Signed-off-by: Alexandre Raymond Signed-off-by: Stefan Hajnoczi --- audio/audio_pt_int.c | 2 -- audio/sdlaudio.c | 1 - block/raw-posix.c | 2 -- bsd-user/syscall.c | 1 - darwin-user/signal.c | 3 --- exec.c | 1 - linux-user/signal.c | 1 - net/tap.c | 1 - posix-aio-compat.c | 1 - qemu-char.c | 1 - qemu-progress.c | 1 - savevm.c | 1 - target-i386/helper.c | 1 - target-ppc/helper.c | 1 - target-sparc/helper.c | 1 - ui/curses.c | 1 - ui/sdl.c | 4 ---- usb-bsd.c | 1 - usb-linux.c | 1 - 19 files changed, 26 deletions(-) (limited to 'posix-aio-compat.c') diff --git a/audio/audio_pt_int.c b/audio/audio_pt_int.c index 908c569a92..9a9c306a9c 100644 --- a/audio/audio_pt_int.c +++ b/audio/audio_pt_int.c @@ -6,8 +6,6 @@ #include "audio_int.h" #include "audio_pt_int.h" -#include - static void GCC_FMT_ATTR(3, 4) logerr (struct audio_pt *pt, int err, const char *fmt, ...) { diff --git a/audio/sdlaudio.c b/audio/sdlaudio.c index a847aa90f7..d24daa5ead 100644 --- a/audio/sdlaudio.c +++ b/audio/sdlaudio.c @@ -32,7 +32,6 @@ #elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) #include #endif -#include #endif #define AUDIO_CAP "sdl" diff --git a/block/raw-posix.c b/block/raw-posix.c index 6b72470599..9a72a17551 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -43,7 +43,6 @@ #ifdef __sun__ #define _POSIX_PTHREAD_SEMANTICS 1 -#include #include #endif #ifdef __linux__ @@ -53,7 +52,6 @@ #include #endif #if defined (__FreeBSD__) || defined(__FreeBSD_kernel__) -#include #include #include #endif diff --git a/bsd-user/syscall.c b/bsd-user/syscall.c index eb1cdf21ca..d4d039a2f6 100644 --- a/bsd-user/syscall.c +++ b/bsd-user/syscall.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #include "qemu.h" diff --git a/darwin-user/signal.c b/darwin-user/signal.c index 48620184ee..e2adca3918 100644 --- a/darwin-user/signal.c +++ b/darwin-user/signal.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include @@ -32,8 +31,6 @@ #undef uc_link #endif -#include - #include "qemu.h" #include "qemu-common.h" diff --git a/exec.c b/exec.c index 6f339efb10..bffc201f97 100644 --- a/exec.c +++ b/exec.c @@ -36,7 +36,6 @@ #include "qemu-timer.h" #if defined(CONFIG_USER_ONLY) #include -#include #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) #include #if __FreeBSD_version >= 700104 diff --git a/linux-user/signal.c b/linux-user/signal.c index c7a375fe0e..11b25be7b8 100644 --- a/linux-user/signal.c +++ b/linux-user/signal.c @@ -21,7 +21,6 @@ #include #include #include -#include #include #include #include diff --git a/net/tap.c b/net/tap.c index b8cd25267c..1f26dc9992 100644 --- a/net/tap.c +++ b/net/tap.c @@ -27,7 +27,6 @@ #include "config-host.h" -#include #include #include #include diff --git a/posix-aio-compat.c b/posix-aio-compat.c index f3cc8687ce..c4116e30f2 100644 --- a/posix-aio-compat.c +++ b/posix-aio-compat.c @@ -17,7 +17,6 @@ #include #include #include -#include #include #include #include diff --git a/qemu-char.c b/qemu-char.c index 5e04a20b8c..fb13b28454 100644 --- a/qemu-char.c +++ b/qemu-char.c @@ -35,7 +35,6 @@ #include #include -#include #include #include #include diff --git a/qemu-progress.c b/qemu-progress.c index 8ebe8efa99..5f1b8dfb97 100644 --- a/qemu-progress.c +++ b/qemu-progress.c @@ -26,7 +26,6 @@ #include "osdep.h" #include "sysemu.h" #include -#include struct progress_state { float current; diff --git a/savevm.c b/savevm.c index f4ff1a1db4..939845c825 100644 --- a/savevm.c +++ b/savevm.c @@ -23,7 +23,6 @@ */ #include #include -#include #include #include #include diff --git a/target-i386/helper.c b/target-i386/helper.c index 5c4b288619..509d68ca0f 100644 --- a/target-i386/helper.c +++ b/target-i386/helper.c @@ -21,7 +21,6 @@ #include #include #include -#include #include "cpu.h" #include "exec-all.h" diff --git a/target-ppc/helper.c b/target-ppc/helper.c index 4700632931..cf2a368b57 100644 --- a/target-ppc/helper.c +++ b/target-ppc/helper.c @@ -21,7 +21,6 @@ #include #include #include -#include #include "cpu.h" #include "exec-all.h" diff --git a/target-sparc/helper.c b/target-sparc/helper.c index b2d4d70a11..e9b42d03a9 100644 --- a/target-sparc/helper.c +++ b/target-sparc/helper.c @@ -21,7 +21,6 @@ #include #include #include -#include #include "cpu.h" #include "exec-all.h" diff --git a/ui/curses.c b/ui/curses.c index 82bc614040..d29b6cf874 100644 --- a/ui/curses.c +++ b/ui/curses.c @@ -24,7 +24,6 @@ #include #ifndef _WIN32 -#include #include #include #endif diff --git a/ui/sdl.c b/ui/sdl.c index 14a62d9bdd..f2bd4a035b 100644 --- a/ui/sdl.c +++ b/ui/sdl.c @@ -28,10 +28,6 @@ #include #include -#ifndef _WIN32 -#include -#endif - #include "qemu-common.h" #include "console.h" #include "sysemu.h" diff --git a/usb-bsd.c b/usb-bsd.c index 9bab6e353b..c1bcc4a1da 100644 --- a/usb-bsd.c +++ b/usb-bsd.c @@ -39,7 +39,6 @@ #else #include #endif -#include /* This value has maximum potential at 16. * You should also set hw.usb.debug to gain diff --git a/usb-linux.c b/usb-linux.c index baa6574ef5..fcfa09e4b8 100644 --- a/usb-linux.c +++ b/usb-linux.c @@ -37,7 +37,6 @@ #include #include -#include #include #include -- cgit v1.2.3-55-g7522