From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:32868) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b5Bnp-0005uz-TN for qemu-devel@nongnu.org; Tue, 24 May 2016 08:51:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b5Bnl-0007yG-Kx for qemu-devel@nongnu.org; Tue, 24 May 2016 08:51:16 -0400 Received: from e06smtp12.uk.ibm.com ([195.75.94.108]:56740) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b5Bnl-0007xt-A7 for qemu-devel@nongnu.org; Tue, 24 May 2016 08:51:13 -0400 Received: from localhost by e06smtp12.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 24 May 2016 13:51:09 +0100 Received: from b06cxnps4076.portsmouth.uk.ibm.com (d06relay13.portsmouth.uk.ibm.com [9.149.109.198]) by d06dlp02.portsmouth.uk.ibm.com (Postfix) with ESMTP id 2FB20219004D for ; Tue, 24 May 2016 13:50:40 +0100 (BST) Received: from d06av04.portsmouth.uk.ibm.com (d06av04.portsmouth.uk.ibm.com [9.149.37.216]) by b06cxnps4076.portsmouth.uk.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id u4OCp6lI3736058 for ; Tue, 24 May 2016 12:51:06 GMT Received: from d06av04.portsmouth.uk.ibm.com (localhost [127.0.0.1]) by d06av04.portsmouth.uk.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id u4OCp5J5003005 for ; Tue, 24 May 2016 06:51:05 -0600 References: <1463787632-7241-1-git-send-email-stefanha@redhat.com> From: Christian Borntraeger Message-ID: <57444E38.9000001@de.ibm.com> Date: Tue, 24 May 2016 14:51:04 +0200 MIME-Version: 1.0 In-Reply-To: <1463787632-7241-1-git-send-email-stefanha@redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 0/9] virtio-blk: multiqueue support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi , qemu-devel@nongnu.org Cc: Kevin Wolf , Paolo Bonzini , Ming Lei , Fam Zheng On 05/21/2016 01:40 AM, Stefan Hajnoczi wrote: > The virtio_blk guest driver has supported multiple virtqueues since Linux 3.17. > This patch series adds multiple virtqueues to QEMU's virtio-blk emulated > device. > > Ming Lei sent patches previously but these were not merged. This series > implements virtio-blk multiqueue for QEMU from scratch since the codebase has > changed. Live migration support for s->rq was also missing from the previous > series and has been added. > > It's important to note that QEMU's block layer does not support multiqueue yet. > Therefore virtio-blk device processes all virtqueues in the same AioContext > (IOThread). Further work is necessary to take advantage of multiqueue support > in QEMU's block layer once it becomes available. > > I will post performance results once they are ready. > > Stefan Hajnoczi (9): > virtio-blk: use batch notify in non-dataplane case > virtio-blk: tell dataplane which vq to notify > virtio-blk: associate request with a virtqueue > virtio-blk: add VirtIOBlockConf->num_queues > virtio-blk: multiqueue batch notify > vmstate: add VMSTATE_VARRAY_UINT32_ALLOC > virtio-blk: live migrate s->rq with multiqueue > virtio-blk: dataplane multiqueue support > virtio-blk: add num-queues device property > > hw/block/dataplane/virtio-blk.c | 68 +++++++------- > hw/block/dataplane/virtio-blk.h | 2 +- > hw/block/virtio-blk.c | 200 ++++++++++++++++++++++++++++++++++++---- > include/hw/virtio/virtio-blk.h | 13 ++- > include/migration/vmstate.h | 10 ++ > 5 files changed, 241 insertions(+), 52 deletions(-) > With 2.6 I see 2 host threads consuming a CPU when running fio in a single CPU guest with a null-blk device and iothread for that disk. (the vcpu thread and the iothread). With this patchset the main thread also consumes almost 80% of a CPU doing polling in main_loop_wait. I have not even changes the num-queues values. So in essence 3 vs 2 host cpus. Christian