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

Medvedkin, Vladimir vladimir.medvedkin at intel.com
Tue Feb 10 00:20:12 CET 2026


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 <bruce.richardson at intel.com>
> ---
>   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>
> 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



More information about the dev mailing list