[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/2] virtio: enable msi-x for console+balloon
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PATCH 2/2] virtio: enable msi-x for console+balloon |
Date: |
Wed, 25 Nov 2009 09:16:48 +0100 |
Enable MSI-X for virtio-console-pci and virtio-balloon-pci.
Add entries to the compatibility machine types so MSI-X will
be disabled for pc-0.10 and pc-0.11.
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/pc.c | 16 ++++++++++++++++
hw/virtio-pci.c | 11 +++++++++++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/hw/pc.c b/hw/pc.c
index fdaa52c..cb78923 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -1297,6 +1297,14 @@ static QEMUMachine pc_machine_v0_11 = {
.driver = "virtio-blk-pci",
.property = "vectors",
.value = stringify(0),
+ },{
+ .driver = "virtio-balloon-pci",
+ .property = "vectors",
+ .value = stringify(0),
+ },{
+ .driver = "virtio-console-pci",
+ .property = "vectors",
+ .value = stringify(0),
},
{ /* end of list */ }
}
@@ -1324,6 +1332,14 @@ static QEMUMachine pc_machine_v0_10 = {
.driver = "virtio-blk-pci",
.property = "vectors",
.value = stringify(0),
+ },{
+ .driver = "virtio-balloon-pci",
+ .property = "vectors",
+ .value = stringify(0),
+ },{
+ .driver = "virtio-console-pci",
+ .property = "vectors",
+ .value = stringify(0),
},
{ /* end of list */ }
},
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c
index aebcf9d..cb8ab21 100644
--- a/hw/virtio-pci.c
+++ b/hw/virtio-pci.c
@@ -483,10 +483,13 @@ static int virtio_console_init_pci(PCIDevice *pci_dev)
if (!vdev) {
return -1;
}
+ vdev->nvectors = proxy->nvectors;
virtio_init_pci(proxy, vdev,
PCI_VENDOR_ID_REDHAT_QUMRANET,
PCI_DEVICE_ID_VIRTIO_CONSOLE,
proxy->class_code, 0x00);
+ /* make the actual value visible */
+ proxy->nvectors = vdev->nvectors;
return 0;
}
@@ -531,11 +534,14 @@ static int virtio_balloon_init_pci(PCIDevice *pci_dev)
VirtIODevice *vdev;
vdev = virtio_balloon_init(&pci_dev->qdev);
+ vdev->nvectors = proxy->nvectors;
virtio_init_pci(proxy, vdev,
PCI_VENDOR_ID_REDHAT_QUMRANET,
PCI_DEVICE_ID_VIRTIO_BALLOON,
PCI_CLASS_MEMORY_RAM,
0x00);
+ /* make the actual value visible */
+ proxy->nvectors = vdev->nvectors;
return 0;
}
@@ -569,6 +575,7 @@ static PCIDeviceInfo virtio_info[] = {
.init = virtio_console_init_pci,
.exit = virtio_exit_pci,
.qdev.props = (Property[]) {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2),
DEFINE_PROP_HEX32("class", VirtIOPCIProxy, class_code, 0),
DEFINE_PROP_END_OF_LIST(),
},
@@ -579,6 +586,10 @@ static PCIDeviceInfo virtio_info[] = {
.init = virtio_balloon_init_pci,
.exit = virtio_exit_pci,
.qdev.reset = virtio_pci_reset,
+ .qdev.props = (Property[]) {
+ DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 3),
+ DEFINE_PROP_END_OF_LIST(),
+ },
},{
/* end of list */
}
--
1.6.2.5