From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Michael S. Tsirkin" Subject: Re: [PATCH RFC 0/8] virtio: add guest MSI-X support Date: Tue, 28 Apr 2009 20:41:52 +0300 Message-ID: <20090428174152.GA7604@redhat.com> References: <20090427123136.GA1152@redhat.com> <200904271600.30599.borntraeger@de.ibm.com> <49F5CA08.6060003@redhat.com> <20090427153936.GA2276@redhat.com> <49F6A672.8050704@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Christian Borntraeger , Rusty Russell , virtualization@lists.linux-foundation.org, Anthony Liguori , kvm@vger.kernel.org To: Avi Kivity Return-path: Received: from mx2.redhat.com ([66.187.237.31]:44432 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753972AbZD1Ro6 (ORCPT ); Tue, 28 Apr 2009 13:44:58 -0400 Content-Disposition: inline In-Reply-To: <49F6A672.8050704@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On Tue, Apr 28, 2009 at 09:47:14AM +0300, Avi Kivity wrote: > Michael S. Tsirkin wrote: >>> That saves us the new API (at the expense of a lot more code, but >>> with added flexibility). >>> >> >> So we'll probably need to rename request_vqs to request_vectors, >> but we probably still need the driver to pass the number of >> vectors it wants to the transport. Right? >> >> > > I don't think so - virtio will provide the number of interrupts it > supports, and virtio-net will tell it to bind ring X to interrupt Y. This does not work for MSIX - in linux, you must map all MSI-X entries to interrupt vectors upfront. So what I see is transports providing something like: struct virtio_interrupt_mapping { int virtqueue; int interrupt; }; map_vqs_to_interrupt(dev, struct virtio_interrupt_mapping *, int nvirtqueues); unmap_vqs(dev); -- MST