dpdk: add support to disable interrupt mode 25/41425/3
authorMohsin Kazmi <[email protected]>
Tue, 3 Sep 2024 10:24:02 +0000 (10:24 +0000)
committerDamjan Marion <[email protected]>
Mon, 9 Sep 2024 08:45:15 +0000 (08:45 +0000)
Type: improvement

Change-Id: I4864dc2af808aa76ecbc9ade0e86e1a781e6b704
Signed-off-by: Mohsin Kazmi <[email protected]>
src/plugins/dpdk/device/dpdk.h
src/plugins/dpdk/device/init.c
src/vpp/conf/startup.conf

index 692bbbc..a069fbe 100644 (file)
@@ -241,6 +241,7 @@ typedef struct
   _ (num_rx_desc)                                                             \
   _ (num_tx_desc)                                                             \
   _ (max_lro_pkt_size)                                                        \
+  _ (disable_rxq_int)                                                         \
   _ (rss_fn)
 
 typedef enum
index 1f4aa83..827f880 100644 (file)
@@ -588,6 +588,9 @@ dpdk_lib_init (dpdk_main_t * dm)
       if (devconf->max_lro_pkt_size)
        xd->conf.max_lro_pkt_size = devconf->max_lro_pkt_size;
 
+      if (devconf->disable_rxq_int)
+       xd->conf.enable_rxq_int = 0;
+
       dpdk_device_setup (xd);
 
       /* rss queues should be configured after dpdk_device_setup() */
@@ -1006,6 +1009,10 @@ dpdk_device_config (dpdk_config_main_t *conf, void *addr,
          if (error)
            break;
        }
+      else if (unformat (input, "no-rx-interrupts"))
+       {
+         devconf->disable_rxq_int = 1;
+       }
       else if (unformat (input, "tso on"))
        {
          devconf->tso = DPDK_DEVICE_TSO_ON;
index 929106a..a30a15a 100644 (file)
@@ -164,6 +164,11 @@ cpu {
        #       num-rx-queues 2
        # }
 
+       ## Set interface only in poll mode
+        # dev 0000:02:00.1 {
+        #       no-rx-interrupts
+        # }
+
        ## Change UIO driver used by VPP, Options are: igb_uio, vfio-pci,
        ## uio_pci_generic or auto (default)
        # uio-driver vfio-pci