diff options
author | Robert Shearman <robertshearman@gmail.com> | 2021-07-06 10:34:52 +0100 |
---|---|---|
committer | Damjan Marion <dmarion@me.com> | 2021-07-15 19:51:58 +0000 |
commit | 9f2d8bbfa2a6eea255c76de4230e28e91210809a (patch) | |
tree | d456c309e37560a9a979104c943cbaae1d218337 | |
parent | 18991be8d334f1e6f6e82305d9472d2925b7a1ba (diff) |
dpdk: enable RX interrupts for the virtio driver
Type: improvement
Request use of RX interrupts for virtio if the system will support it,
which is done by applying the same check as in the virtio driver,
namely whether multiple interrupts are supported. This allows the use
of RX adaptive/interrupt mode instead of just polling, which is useful
in virtualised environments where functionality may be more important
than performance and so using polling mode is wasteful.
Signed-off-by: Robert Shearman <robertshearman@gmail.com>
Change-Id: I29527b6f04b0b1d0c9f9424751b2bd252ed10505
-rw-r--r-- | src/plugins/dpdk/device/init.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/plugins/dpdk/device/init.c b/src/plugins/dpdk/device/init.c index cf0203d187d..aebbb64dd76 100644 --- a/src/plugins/dpdk/device/init.c +++ b/src/plugins/dpdk/device/init.c @@ -565,6 +565,14 @@ dpdk_lib_init (dpdk_main_t * dm) xd->port_type = VNET_DPDK_PORT_TYPE_ETH_1G; xd->nb_rx_desc = DPDK_NB_RX_DESC_VIRTIO; xd->nb_tx_desc = DPDK_NB_TX_DESC_VIRTIO; + /* + * Enable use of RX interrupts if supported. + * + * There is no device flag or capability for this, so + * use the same check that the virtio driver does. + */ + if (pci_dev && rte_intr_cap_multiple (&pci_dev->intr_handle)) + xd->port_conf.intr_conf.rxq = 1; break; /* vmxnet3 */ |