values in rte_eth_rxconf and rte_eth_txconf are not optimal
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
Trunk |
Fix Committed
|
Undecided
|
Unassigned | |||
OpenContrail |
New
|
Undecided
|
Unassigned |
Bug Description
In dpdk/vr_
Here are current values:
/* RX ring configuration */
static const struct rte_eth_rxconf rx_queue_conf = {
.rx_thresh = {
.pthresh = 8, /* Ring prefetch threshold */
.hthresh = 8, /* Ring host threshold */
.wthresh = 4, /* Ring writeback threshold */
},
/* Do not immediately free RX descriptors */
.rx_free_thresh = VR_DPDK_
};
/* TX ring configuration */
static const struct rte_eth_txconf tx_queue_conf = {
.tx_thresh = {
.pthresh = 36, /* Ring prefetch threshold */
.hthresh = 0, /* Ring host threshold */
.wthresh = 0, /* Ring writeback threshold */
},
.tx_free_thresh = 0,
.tx_rs_thresh = 0, /* Use PMD default values */
.txq_flags = 0 /* Set flags for the Tx queue */
};
I got some optimal values from dpdk source code test/test/
/*
* RX and TX Prefetch, Host, and Write-back threshold values should be
* carefully set for optimal performance. Consult the network
* controller's datasheet and supporting DPDK documentation for guidance
* on how these parameters should be set.
*/
#define RX_PTHRESH 8 /**< Default values of RX prefetch threshold reg. */
#define RX_HTHRESH 8 /**< Default values of RX host threshold reg. */
#define RX_WTHRESH 0 /**< Default values of RX write-back threshold reg. */
/*
* These default values are optimized for use with the Intel(R) 82599 10 GbE
* Controller and the DPDK ixgbe PMD. Consider using other values for other
* network controllers and/or network drivers.
*/
#define TX_PTHRESH 32 /**< 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. */
static struct rte_eth_rxconf rx_conf = {
.rx_thresh = {
},
};
static struct rte_eth_txconf tx_conf = {
.tx_thresh = {
},
.txq_flags = (ETH_TXQ_
};
I tried these values, they are obviously better than previous ones.
Review in progress for https:/ /review. opencontrail. org/45580
Submitter: Yi Yang (<email address hidden>)