Skip to contentSkip to conversation

qemu: MSI-X support

PATCH Superseded Michael S. Tsirkin 1 participant 1 message May 25, 2009 KVM

v1 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

cover qemu: MSI-X support

Here is the port of MSI-X support patches to upstream qemu. Anthony, you said you are willing to borrow a few cycles to help MSI-X go in through QEMU - could you please comment or commit?

This patchset adds generic support for MSI-X, adds implementation in APIC, and uses MSI-X in virtio-net. At Paul's suggestion, I use stl_phy to decouple APIC and MSI-X implementation.

This is on top of 'PATCHv2 make default_write_config use mask table' that I posted previously. I have included that patch here for completeness.

Signature · 31 lines
MST

Michael S. Tsirkin (11):
  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

 Makefile.target    |    2 +-
 hw/apic.c          |   50 ++++++-
 hw/msix.c          |  426 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 hw/msix.h          |   35 +++++
 hw/pci.c           |  295 +++++++++++++++++++-----------------
 hw/pci.h           |   93 +++++++++++-
 hw/syborg_virtio.c |   13 ++-
 hw/virtio-net.c    |    1 +
 hw/virtio-pci.c    |  168 ++++++++++++++++-----
 hw/virtio.c        |   63 ++++++--
 hw/virtio.h        |   10 +-
 qemu-options.hx    |    2 +
 vl.c               |    3 +
 13 files changed, 952 insertions(+), 209 deletions(-)
 create mode 100644 hw/msix.c
 create mode 100644 hw/msix.h