From 460dee56e79d203e5ec75b9e8f7151e65fc55e45 Mon Sep 17 00:00:00 2001 From: Mohsin Kazmi Date: Tue, 3 Sep 2024 10:24:02 +0000 Subject: dpdk: add support to disable interrupt mode Type: improvement Change-Id: I4864dc2af808aa76ecbc9ade0e86e1a781e6b704 Signed-off-by: Mohsin Kazmi --- src/plugins/dpdk/device/dpdk.h | 1 + src/plugins/dpdk/device/init.c | 7 +++++++ src/vpp/conf/startup.conf | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/src/plugins/dpdk/device/dpdk.h b/src/plugins/dpdk/device/dpdk.h index 692bbbc09d9..a069fbe3818 100644 --- a/src/plugins/dpdk/device/dpdk.h +++ b/src/plugins/dpdk/device/dpdk.h @@ -241,6 +241,7 @@ typedef struct _ (num_rx_desc) \ _ (num_tx_desc) \ _ (max_lro_pkt_size) \ + _ (disable_rxq_int) \ _ (rss_fn) typedef enum diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index 1f4aa83b26e..827f8801ca6 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -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; diff --git a/src/vpp/conf/startup.conf b/src/vpp/conf/startup.conf index 929106a4c8a..a30a15ab2b1 100644 --- a/src/vpp/conf/startup.conf +++ b/src/vpp/conf/startup.conf @@ -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 -- cgit 1.2.3-korg