mirror of
https://github.com/openvswitch/ovs
synced 2025-10-29 15:28:56 +00:00
dpdk: High speed PMD physical NIC queue size
Large TX and RX queues are needed for high speed 10 GbE physical NICS. Observed a 250% zero loss improvement over small NIC queue test for port to port flow test. Signed-off-by: Mike A. Polehn <mike.a.polehn@intel.com> Acked-by: Pravin B Shelar <pshelar@nicira.com>
This commit is contained in:
committed by
Pravin B Shelar
parent
c81f359b1d
commit
79f5354c4c
@@ -71,6 +71,9 @@ static struct vlog_rate_limit rl = VLOG_RATE_LIMIT_INIT(5, 20);
|
|||||||
|
|
||||||
#define NON_PMD_THREAD_TX_QUEUE 0
|
#define NON_PMD_THREAD_TX_QUEUE 0
|
||||||
|
|
||||||
|
#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)*/
|
||||||
|
|
||||||
/* TODO: Needs per NIC value for these constants. */
|
/* TODO: Needs per NIC value for these constants. */
|
||||||
#define RX_PTHRESH 32 /* Default values of RX prefetch threshold reg. */
|
#define RX_PTHRESH 32 /* Default values of RX prefetch threshold reg. */
|
||||||
#define RX_HTHRESH 32 /* Default values of RX host threshold reg. */
|
#define RX_HTHRESH 32 /* Default values of RX host threshold reg. */
|
||||||
@@ -372,7 +375,7 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) OVS_REQUIRES(dpdk_mutex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < NR_QUEUE; i++) {
|
for (i = 0; i < NR_QUEUE; i++) {
|
||||||
diag = rte_eth_tx_queue_setup(dev->port_id, i, MAX_TX_QUEUE_LEN,
|
diag = rte_eth_tx_queue_setup(dev->port_id, i, NIC_PORT_TX_Q_SIZE,
|
||||||
dev->socket_id, &tx_conf);
|
dev->socket_id, &tx_conf);
|
||||||
if (diag) {
|
if (diag) {
|
||||||
VLOG_ERR("eth dev tx queue setup error %d",diag);
|
VLOG_ERR("eth dev tx queue setup error %d",diag);
|
||||||
@@ -381,7 +384,7 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev) OVS_REQUIRES(dpdk_mutex)
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < NR_QUEUE; i++) {
|
for (i = 0; i < NR_QUEUE; i++) {
|
||||||
diag = rte_eth_rx_queue_setup(dev->port_id, i, MAX_RX_QUEUE_LEN,
|
diag = rte_eth_rx_queue_setup(dev->port_id, i, NIC_PORT_RX_Q_SIZE,
|
||||||
dev->socket_id,
|
dev->socket_id,
|
||||||
&rx_conf, dev->dpdk_mp->mp);
|
&rx_conf, dev->dpdk_mp->mp);
|
||||||
if (diag) {
|
if (diag) {
|
||||||
|
|||||||
Reference in New Issue
Block a user