From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:33758) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rz8VE-0004dE-LS for qemu-devel@nongnu.org; Sun, 19 Feb 2012 10:16:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Rz8VD-0000to-9d for qemu-devel@nongnu.org; Sun, 19 Feb 2012 10:16:40 -0500 Received: from e9.ny.us.ibm.com ([32.97.182.139]:53897) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rz8VD-0000tk-6w for qemu-devel@nongnu.org; Sun, 19 Feb 2012 10:16:39 -0500 Received: from /spool/local by e9.ny.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Sun, 19 Feb 2012 10:16:37 -0500 Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by d01dlp01.pok.ibm.com (Postfix) with ESMTP id B6ED638C8059 for ; Sun, 19 Feb 2012 10:16:35 -0500 (EST) Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id q1JFGZTo330130 for ; Sun, 19 Feb 2012 10:16:35 -0500 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id q1JFGYNo026065 for ; Sun, 19 Feb 2012 10:16:34 -0500 From: zwu.kernel@gmail.com Date: Sun, 19 Feb 2012 23:16:26 +0800 Message-Id: <1329664586-13923-1-git-send-email-zwu.kernel@gmail.com> Subject: [Qemu-devel] [PATCH] block: fix block I/O throtting with IDE List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: chris@arachsys.com, Zhi Yong Wu , stefanha@linux.vnet.ibm.com From: Zhi Yong Wu The patch is based on the latest QEMU upstream. If you will backport the patchset to QEMU 1.0, pls note the difference. Signed-off-by: Zhi Yong Wu --- block.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/block.c b/block.c index ae297bb..07cd143 100644 --- a/block.c +++ b/block.c @@ -863,6 +863,12 @@ void bdrv_drain_all(void) { BlockDriverState *bs; + QTAILQ_FOREACH(bs, &bdrv_states, list) { + if (!qemu_co_queue_empty(&bs->throttled_reqs)) { + qemu_co_queue_restart_all(&bs->throttled_reqs); + } + } + qemu_aio_flush(); /* If requests are still pending there is a bug somewhere */ -- 1.7.6