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

Medvedkin, Vladimir
2026-02-09T23:20:20Z

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@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