Commit a1829205 authored by Amit Shah's avatar Amit Shah Committed by Anthony Liguori
Browse files

virtio-serial: Use MSI vectors for port virtqueues



This commit enables the use of MSI interrupts for virtqueue
notifications for ports. We use nr_ports + 1 (for control channel) msi
entries for the ports, as only the in_vq operations need an interrupt on
the guest.

Signed-off-by: default avatarAmit Shah <amit.shah@redhat.com>
Signed-off-by: default avatarAnthony Liguori <aliguori@us.ibm.com>
parent 4d3053a3
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -499,10 +499,13 @@ static int virtio_serial_init_pci(PCIDevice *pci_dev)
    if (!vdev) {
        return -1;
    }
    vdev->nvectors = proxy->nvectors ? proxy->nvectors
                                     : proxy->max_virtserial_ports + 1;
    virtio_init_pci(proxy, vdev,
                    PCI_VENDOR_ID_REDHAT_QUMRANET,
                    PCI_DEVICE_ID_VIRTIO_CONSOLE,
                    proxy->class_code, 0x00);
    proxy->nvectors = vdev->nvectors;
    return 0;
}

@@ -581,6 +584,7 @@ static PCIDeviceInfo virtio_info[] = {
        .init      = virtio_serial_init_pci,
        .exit      = virtio_exit_pci,
        .qdev.props = (Property[]) {
            DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 0),
            DEFINE_PROP_HEX32("class", VirtIOPCIProxy, class_code, 0),
            DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features),
            DEFINE_PROP_UINT32("max_ports", VirtIOPCIProxy, max_virtserial_ports,