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: dev@dpdk.org
          Reporter: m...@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:
You are the assignee for the bug.

Reply via email to