Skip to contentSkip to conversation

rte_eth_dev_adjust_nb_rx_tx_desc nb_tx_desc minimum incorrect

DPDK/ethdev Bug 1544 [email protected] 1 participant 1 message Sep 16, 2024

lore
Share & tools
lore
#0 lore raw

https://bugs.dpdk.org/show_bug.cgi?id=1544

            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: [email protected]
          Reporter: [email protected]

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.

Signature · 2 lines
You are receiving this mail because:
You are the assignee for the bug.