virtio: Still init unused txq 83/32483/3
authorNathan Skrzypczak <nathan.skrzypczak@gmail.com>
Fri, 28 May 2021 11:44:24 +0000 (13:44 +0200)
committerBeno�t Ganne <bganne@cisco.com>
Mon, 27 Sep 2021 09:56:07 +0000 (09:56 +0000)
Type: fix

For some virtio backends, packets don't seem to flow
if all the queues that have been requested are not
initialized

Change-Id: I41765d668497ff954e6d69d36836590947fd93b1
Signed-off-by: Nathan Skrzypczak <nathan.skrzypczak@gmail.com>
src/vnet/devices/virtio/pci.c

index 7ef4b2a..bebba7b 100644 (file)
@@ -1147,7 +1147,6 @@ virtio_pci_device_init (vlib_main_t * vm, virtio_if_t * vif,
                        virtio_pci_create_if_args_t * args, void **bar)
 {
   clib_error_t *error = 0;
-  vlib_thread_main_t *vtm = vlib_get_thread_main ();
   u8 status = 0;
 
   if ((error = virtio_pci_read_caps (vm, vif, bar)))
@@ -1254,22 +1253,6 @@ virtio_pci_device_init (vlib_main_t * vm, virtio_if_t * vif,
          vif->num_rxqs++;
        }
 
-      if (i >= vtm->n_vlib_mains)
-       {
-         /*
-          * There is 1:1 mapping between tx queue and vpp worker thread.
-          * tx queue 0 is bind with thread index 0, tx queue 1 on thread
-          * index 1 and so on.
-          * Multiple worker threads can poll same tx queue when number of
-          * workers are more than tx queues. In this case, 1:N mapping
-          * between tx queue and vpp worker thread.
-          */
-         virtio_log_debug (vif, "%s %u, %s", "tx-queue: number",
-                           TX_QUEUE (i),
-                           "no VPP worker thread is available");
-         continue;
-       }
-
       if ((error = virtio_pci_vring_init (vm, vif, TX_QUEUE (i))))
        {
          args->rv = VNET_API_ERROR_INIT_FAILED;