aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/vnet/devices/virtio/pci.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/vnet/devices/virtio/pci.c b/src/vnet/devices/virtio/pci.c
index 908aba75962..79bd0047570 100644
--- a/src/vnet/devices/virtio/pci.c
+++ b/src/vnet/devices/virtio/pci.c
@@ -1451,10 +1451,12 @@ virtio_pci_create_if (vlib_main_t * vm, virtio_pci_create_if_args_t * args)
vif->support_int_mode = 1;
virtio_log_debug (vif, "device supports msix interrupts");
}
- else if (interrupt_count == 1)
+ else
{
/*
- * if msix table-size is 1, fall back to intX.
+ * WARN: performance will be sub-optimal.
+ * Fall back to intX, if msix table-size is 1 or
+ * if UIO driver is being used.
*/
if ((error =
vlib_pci_register_intx_handler (vm, h, &virtio_pci_irq_handler)))
@@ -1466,15 +1468,6 @@ virtio_pci_create_if (vlib_main_t * vm, virtio_pci_create_if_args_t * args)
vif->support_int_mode = 1;
virtio_log_debug (vif, "pci register interrupt handler");
}
- else
- {
- /*
- * WARN: intX is showing some weird behaviour.
- * Please don't use interrupt mode with UIO driver.
- */
- vif->support_int_mode = 0;
- virtio_log_debug (vif, "driver is configured in poll mode only");
- }
if ((error = vlib_pci_intr_enable (vm, h)))
{