From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56564) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZEc7P-0004nS-Es for qemu-devel@nongnu.org; Mon, 13 Jul 2015 07:41:56 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZEc7L-0004wR-BY for qemu-devel@nongnu.org; Mon, 13 Jul 2015 07:41:55 -0400 Received: from mx1.redhat.com ([209.132.183.28]:54728) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZEc7L-0004wF-5a for qemu-devel@nongnu.org; Mon, 13 Jul 2015 07:41:51 -0400 Date: Mon, 13 Jul 2015 14:41:47 +0300 From: "Michael S. Tsirkin" Message-ID: <20150713143402-mutt-send-email-mst@redhat.com> References: <20150702012121.GA4477@ad.nay.redhat.com> <20150708173423-mutt-send-email-mst@redhat.com> <20150709132248.GA12399@stefanha-thinkpad.redhat.com> <20150709162723-mutt-send-email-mst@redhat.com> <55A39047.5070806@redhat.com> <20150713141421-mutt-send-email-mst@redhat.com> <55A39FDF.1060800@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55A39FDF.1060800@redhat.com> Subject: Re: [Qemu-devel] virtio-blk multiqueue support in qemu. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Naredula Janardhana Reddy , Fam Zheng , Stefan Hajnoczi , Ming Lei , qemu-devel@nongnu.org, Stefan Hajnoczi On Mon, Jul 13, 2015 at 01:24:15PM +0200, Paolo Bonzini wrote: > > > On 13/07/2015 13:21, Michael S. Tsirkin wrote: > > > Yes, this is already how virtio-scsi multiqueue is implemented. The > > > speedup is noticeable. However, for virtio-blk there is a huge > > > consumption of interrupt vectors in the guest, so it doesn't scale to > > > multiple disks as well as virtio-scsi. > > > > Could you elaborate please? interrupt vector usage is generally > > up to the guest, so whatever the issue is might be fixable by driver > > changes alone. > > Yes, but in practice neither Linux nor Windows (AFAIK) are able to share > the same vector across multiple MSIs. > > Paolo AFAIK Linux can do this of you pass in IRQF_SHARED. We just never saw a need to do this before. Sharing between devices might also work, I think Amos Kong made it work under qemu, though this relied on reading ISR when in MSI mode, which is only allowed in virtio 1 mode. virtio spec also lets drivers control the mapping from VQs to MSI vectors. That's portable across OSes. That one is actually used, at least the Linux drivers support a mode where all VQs share a single vector. -- MST