Bug ID 1544
Summary rte_eth_dev_adjust_nb_rx_tx_desc nb_tx_desc minimum incorrect
Product DPDK
Version 24.07
Hardware All
OS All
Status UNCONFIRMED
Severity normal
Priority Normal
Component ethdev
Assignee dev@dpdk.org
Reporter mb@smartsharesystems.com
Target Milestone ---

rte_eth_dev_adjust_nb_rx_tx_desc() does not consider tx_rs_thresh and
tx_free_thresh when adjusting nb_tx_desc for minimum allowed TX descriptors.

E.g. the IXGBE driver reports:
dev_info.tx_desc_lim.nb_min = 32.
dev_info.default_txconf.tx_rs_thresh = 32.
dev_info.default_txconf.tx_free_thresh = 32.

If calling rte_eth_dev_adjust_nb_rx_tx_desc() with nb_tx_desc = 32, it will
adjust to nb_tx_desc = 32.

But then rte_eth_tx_queue_setup() will fail afterwards, because it needs
nb_tx_desc >= tx_rs_thresh + tx_free_thresh.

Suggested fix:
Under all circumstances, rte_eth_dev_adjust_nb_rx_tx_desc() should take
tx_rs_thresh and tx_free_thresh into consideration when adjusting nb_tx_desc
for minimum allowed.

Preferably, it should take an optional "const struct rte_eth_txconf *tx_conf"
parameter, like rte_eth_tx_queue_setup(), or it can use the tx_rs_thresh and
tx_free_thresh values from default_txconf.
          


You are receiving this mail because: