From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1MHHSp-0005Qm-JN for qemu-devel@nongnu.org; Thu, 18 Jun 2009 09:15:35 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1MHHSk-0005Ib-Ev for qemu-devel@nongnu.org; Thu, 18 Jun 2009 09:15:35 -0400 Received: from [199.232.76.173] (port=56987 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1MHHSj-0005IG-Qk for qemu-devel@nongnu.org; Thu, 18 Jun 2009 09:15:30 -0400 Received: from mx2.redhat.com ([66.187.237.31]:41203) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1MHHSj-0003Y2-35 for qemu-devel@nongnu.org; Thu, 18 Jun 2009 09:15:29 -0400 Date: Thu, 18 Jun 2009 16:12:26 +0300 From: "Michael S. Tsirkin" Message-ID: <20090618131226.GA19092@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Subject: [Qemu-devel] [PREFIXv5 00/13] qemu: MSI-X support List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paul Brook , Avi Kivity , qemu-devel@nongnu.org, Carsten Otte , kvm@vger.kernel.org, Rusty Russell , virtualization@lists.linux-foundation.org, Christian Borntraeger , Blue Swirl , Anthony Liguori , Glauber Costa Here is the port of MSI-X support patches to upstream qemu. Please comment or commit. This patchset adds generic support for MSI-X, adds implementation in APIC, and uses MSI-X in virtio-net. Changelog: - since v4 rebased to latest bits. rename resize_region -> resize_bar - since v3 call to resize_region on load split patches a bit differently to address style comments by Glauber update commit message to clarify what msix_support flag does - since v2 rename mask -> wmask to avoid conflict with work by Yamahata - since v1 At Paul's suggestion, use stl_phy to decouple APIC and MSI-X implementation This uses the mask table patch that I posted previously, and which is included in the series. -- MST Michael S. Tsirkin (13): qemu: make default_write_config use mask table qemu: capability bits in pci save/restore qemu: add routines to manage PCI capabilities qemu: helper routines for pci access qemu: MSI-X support functions qemu: add flag to disable MSI-X by default qemu: minimal MSI/MSI-X implementation for PC qemu: add support for resizing regions qemu: virtio support for many interrupt vectors qemu: MSI-X support in virtio PCI qemu: request 3 vectors in virtio-net qemu: virtio save/load bindings qemu: add pci_get/set_byte Makefile.target | 2 +- hw/apic.c | 43 +++++- hw/msix.c | 420 ++++++++++++++++++++++++++++++++++++++++++++++++++++ hw/msix.h | 35 +++++ hw/pci.c | 294 +++++++++++++++++++----------------- hw/pci.h | 104 ++++++++++++- hw/syborg_virtio.c | 13 ++- hw/virtio-net.c | 1 + hw/virtio-pci.c | 216 ++++++++++++++++++++++----- hw/virtio.c | 70 ++++++--- hw/virtio.h | 14 ++- qemu-options.hx | 2 + rules.mak | 2 +- vl.c | 3 + 14 files changed, 1004 insertions(+), 215 deletions(-) create mode 100644 hw/msix.c create mode 100644 hw/msix.h