diff options
Diffstat (limited to 'src/vnet/devices/virtio')
-rw-r--r-- | src/vnet/devices/virtio/pci.c | 15 |
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))) { |