Thread (274 messages) 274 messages, 6 authors, 2026-02-12

Re: [PATCH v4 35/35] net/idpf: enable simple Tx function

From: Medvedkin, Vladimir <hidden>
Date: 2026-02-09 23:20:20

On 2/9/2026 4:45 PM, Bruce Richardson wrote:
The common "simple Tx" function - in some ways a scalar version of the
vector Tx functions - can be used by the idpf driver as well as i40e and
ice, so add support for it to the driver.

Signed-off-by: Bruce Richardson <redacted>
---
  drivers/net/intel/idpf/idpf_common_device.h |  2 ++
  drivers/net/intel/idpf/idpf_common_rxtx.c   | 19 +++++++++++++++
  drivers/net/intel/idpf/idpf_common_rxtx.h   |  3 +++
  drivers/net/intel/idpf/idpf_rxtx.c          | 26 ++++++++++++++++++++-
  4 files changed, 49 insertions(+), 1 deletion(-)
<snip>
quoted hunk ↗ jump to hunk
diff --git a/drivers/net/intel/idpf/idpf_rxtx.c b/drivers/net/intel/idpf/idpf_rxtx.c
index 9420200f6d..f2e202d57d 100644
--- a/drivers/net/intel/idpf/idpf_rxtx.c
+++ b/drivers/net/intel/idpf/idpf_rxtx.c
@@ -509,6 +509,22 @@ idpf_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
  	txq->q_set = true;
  	dev->data->tx_queues[queue_idx] = txq;
  
+	/* Set tx_simple_allowed flag based on queue configuration.
+	 * For queue 0: explicitly set the flag based on its configuration.
+	 * For other queues: only set to false if this queue cannot use simple_tx.
+	 */
+	if (vport->txq_model == VIRTCHNL2_QUEUE_MODEL_SPLIT)
+		goto out;
+
+	/* for first queue, default to true, disable later if any queue can't meet conditions */
There are no restrictions in which queue order user may call 
rte_eth_tx_queue_setup(). If user called queue_setup() for queue #1 w/o 
RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE, and then for queue #0 with 
RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE, there could be inconsistencies.
+	if (queue_idx == 0)
+		adapter->tx_simple_allowed = true;
+
+	if ((txq->offloads != (txq->offloads & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE)) ||
+			txq->tx_rs_thresh < IDPF_VPMD_TX_MAX_BURST)
+		adapter->tx_simple_allowed = false;
+
+out:
  	return 0;
  
  err_complq_setup:
<snip>
  
  	/* The primary process selects the tx path for all processes. */
-- 
Regards,
Vladimir
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help