dpdk: validate number of tx descriptors

The default number of tx descriptors per queue is 1024. On some device
types, this is larger than the maximum allowed value and
rte_eth_tx_queue_setup() can return an error. Compare the configured
value to the maximum value for each device and set the configured
value to the maximum value if the configured value is larger.

Type: improvement

Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Change-Id: Ie29c5c6d58c76388f65f266032821140b0f879fb
This commit is contained in:
Matthew Smith
2024-09-25 11:26:58 -05:00
committed by Fan Zhang
parent 2e8a406aaf
commit e7226a2127

View File

@ -503,6 +503,14 @@ dpdk_lib_init (dpdk_main_t * dm)
else if (dr && dr->n_tx_desc)
xd->conf.n_tx_desc = dr->n_tx_desc;
if (xd->conf.n_tx_desc > di.tx_desc_lim.nb_max)
{
dpdk_log_warn ("[%u] Configured number of TX descriptors (%u) is "
"bigger than maximum supported (%u)",
port_id, xd->conf.n_tx_desc, di.tx_desc_lim.nb_max);
xd->conf.n_tx_desc = di.tx_desc_lim.nb_max;
}
dpdk_log_debug (
"[%u] n_rx_queues: %u n_tx_queues: %u n_rx_desc: %u n_tx_desc: %u",
port_id, xd->conf.n_rx_queues, xd->conf.n_tx_queues,