This patch simplifies Rx/Tx NIC configuration by removing custom values and using the defaults provided by the DPDK PMDs. This also enables Rx vectorisation which improves performance.
Signed-off-by: Kevin Traynor <kevin.tray...@intel.com> --- lib/netdev-dpdk.c | 32 ++------------------------------ 1 files changed, 2 insertions(+), 30 deletions(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 505ab75..685d998 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -90,15 +90,6 @@ BUILD_ASSERT_DECL((MAX_NB_MBUF / ROUND_DOWN_POW2(MAX_NB_MBUF/MIN_NB_MBUF)) #define NIC_PORT_RX_Q_SIZE 2048 /* Size of Physical NIC RX Queue, Max (n+32<=4096)*/ #define NIC_PORT_TX_Q_SIZE 2048 /* Size of Physical NIC TX Queue, Max (n+32<=4096)*/ -/* XXX: Needs per NIC value for these constants. */ -#define RX_PTHRESH 32 /* Default values of RX prefetch threshold reg. */ -#define RX_HTHRESH 32 /* Default values of RX host threshold reg. */ -#define RX_WTHRESH 16 /* Default values of RX write-back threshold reg. */ - -#define TX_PTHRESH 36 /* Default values of TX prefetch threshold reg. */ -#define TX_HTHRESH 0 /* Default values of TX host threshold reg. */ -#define TX_WTHRESH 0 /* Default values of TX write-back threshold reg. */ - #define MAX_PKT_BURST 32 /* Max burst size for RX/TX */ /* Character device cuse_dev_name. */ @@ -130,25 +121,6 @@ static const struct rte_eth_conf port_conf = { }, }; -static const struct rte_eth_rxconf rx_conf = { - .rx_thresh = { - .pthresh = RX_PTHRESH, - .hthresh = RX_HTHRESH, - .wthresh = RX_WTHRESH, - }, -}; - -static const struct rte_eth_txconf tx_conf = { - .tx_thresh = { - .pthresh = TX_PTHRESH, - .hthresh = TX_HTHRESH, - .wthresh = TX_WTHRESH, - }, - .tx_free_thresh = 0, - .tx_rs_thresh = 0, - .txq_flags = ETH_TXQ_FLAGS_NOMULTSEGS|ETH_TXQ_FLAGS_NOOFFLOADS, -}; - enum { MAX_TX_QUEUE_LEN = 384 }; enum { DPDK_RING_SIZE = 256 }; BUILD_ASSERT_DECL(IS_POW2(DPDK_RING_SIZE)); @@ -451,7 +423,7 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) OVS_REQUIRES(dpdk_mutex) for (i = 0; i < dev->up.n_txq; i++) { diag = rte_eth_tx_queue_setup(dev->port_id, i, NIC_PORT_TX_Q_SIZE, - dev->socket_id, &tx_conf); + dev->socket_id, NULL); if (diag) { VLOG_ERR("eth dev tx queue setup error %d",diag); return -diag; @@ -461,7 +433,7 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) OVS_REQUIRES(dpdk_mutex) for (i = 0; i < dev->up.n_rxq; i++) { diag = rte_eth_rx_queue_setup(dev->port_id, i, NIC_PORT_RX_Q_SIZE, dev->socket_id, - &rx_conf, dev->dpdk_mp->mp); + NULL, dev->dpdk_mp->mp); if (diag) { VLOG_ERR("eth dev rx queue setup error %d",diag); return -diag; -- 1.7.4.1 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev