public inbox for dev@dpdk.org
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Ciara Loftus <ciara.loftus@intel.com>
Cc: <dev@dpdk.org>
Subject: Re: [PATCH] net/iavf: fix txq flags setting after Tx path selection
Date: Fri, 13 Feb 2026 13:31:37 +0000	[thread overview]
Message-ID: <aY8nudNClFDB0OPK@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <20260210095045.1901921-1-ciara.loftus@intel.com>

On Tue, Feb 10, 2026 at 09:50:44AM +0000, Ciara Loftus wrote:
> Ensure the txq flags "use_ctx" and "vector_tx" are set/unset properly
> after tx path selection. Prior to this commit these flags were only
> configured if a vector path was chosen. Fix this by making their
> configuration unconditional. Also simplify how the "vector_tx" flag is
> set by removing the dedicated function that sets the flag in favour of
> just setting it inline.
> 
> Fixes: ebcfb039afa8 ("net/iavf: use common Tx path selection infrastructure")
> 
> Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>

This patch needs rebase following changes on next-net-intel. Some minor
comments inline below also. You can keep my ack on next version.

Acked-by: Bruce Richardson <bruce.richardson@intel.com>


> ---
>  drivers/net/intel/iavf/iavf_rxtx.c          | 15 ++++++---------
>  drivers/net/intel/iavf/iavf_rxtx.h          |  1 -
>  drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c |  7 -------
>  3 files changed, 6 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/net/intel/iavf/iavf_rxtx.c b/drivers/net/intel/iavf/iavf_rxtx.c
> index 4b763627bc..da8ac488fe 100644
> --- a/drivers/net/intel/iavf/iavf_rxtx.c
> +++ b/drivers/net/intel/iavf/iavf_rxtx.c
> @@ -4263,15 +4263,12 @@ iavf_set_tx_function(struct rte_eth_dev *dev)
>  
>  out:
>  #ifdef RTE_ARCH_X86
> -	if (iavf_tx_path_infos[adapter->tx_func_type].features.simd_width != 0) {
> -		for (i = 0; i < dev->data->nb_tx_queues; i++) {
> -			txq = dev->data->tx_queues[i];
> -			if (!txq)
> -				continue;
> -			iavf_txq_vec_setup(txq);
> -			txq->use_ctx =
> -				iavf_tx_path_infos[adapter->tx_func_type].features.ctx_desc;
> -		}
> +	for (i = 0; i < dev->data->nb_tx_queues; i++) {
> +		txq = dev->data->tx_queues[i];
> +		if (!txq)
> +			continue;
> +		txq->use_ctx = iavf_tx_path_infos[adapter->tx_func_type].features.ctx_desc;
> +		txq->vector_tx = iavf_tx_path_infos[adapter->tx_func_type].features.simd_width != 0;

With the rename of the vector_tx value, this becomes a long line that needs
splitting. Might be worthwhile getting a pointer to the path info, or the
features within it outside the loop to shorten both the assignment lines.

Also, I'm not sure about the comparison to zero for the simd_width. While
not likely, it's possible in future we might specify e.g. 64 as the width
for scalar ops, so would >= SIMD_128 be safer to use?

>  	}
>  #endif
>  
> diff --git a/drivers/net/intel/iavf/iavf_rxtx.h b/drivers/net/intel/iavf/iavf_rxtx.h
> index e1f78dcde0..d258c1fc1b 100644
> --- a/drivers/net/intel/iavf/iavf_rxtx.h
> +++ b/drivers/net/intel/iavf/iavf_rxtx.h
> @@ -615,7 +615,6 @@ int iavf_get_monitor_addr(void *rx_queue, struct rte_power_monitor_cond *pmc);
>  int iavf_rx_vec_dev_check(struct rte_eth_dev *dev);
>  int iavf_tx_vec_dev_check(struct rte_eth_dev *dev);
>  int iavf_rxq_vec_setup(struct ci_rx_queue *rxq);
> -int iavf_txq_vec_setup(struct ci_tx_queue *txq);
>  uint16_t iavf_recv_pkts_vec_avx512(void *rx_queue, struct rte_mbuf **rx_pkts,
>  				   uint16_t nb_pkts);
>  uint16_t iavf_recv_pkts_vec_avx512_offload(void *rx_queue,
> diff --git a/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c b/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c
> index e29958e0bc..1849af166a 100644
> --- a/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c
> +++ b/drivers/net/intel/iavf/iavf_rxtx_vec_avx2.c
> @@ -1811,13 +1811,6 @@ iavf_xmit_pkts_vec_avx2_offload(void *tx_queue, struct rte_mbuf **tx_pkts,
>  	return iavf_xmit_pkts_vec_avx2_common(tx_queue, tx_pkts, nb_pkts, true);
>  }
>  
> -int __rte_cold
> -iavf_txq_vec_setup(struct ci_tx_queue *txq)
> -{
> -	txq->vector_tx = true;
> -	return 0;
> -}
> -
>  void __rte_cold
>  iavf_rx_queue_release_mbufs_vec(struct ci_rx_queue *rxq)
>  {
> -- 
> 2.43.0
> 

  reply	other threads:[~2026-02-13 13:31 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-10  9:50 [PATCH] net/iavf: fix txq flags setting after Tx path selection Ciara Loftus
2026-02-13 13:31 ` Bruce Richardson [this message]
2026-02-16 10:22 ` [PATCH v2] " Ciara Loftus
2026-02-18 16:14   ` Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aY8nudNClFDB0OPK@bricha3-mobl1.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=ciara.loftus@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox