[PATCH v5 2/2] common/idpf: enable AVX2 for single queue Tx
Bruce Richardson
bruce.richardson at intel.com
Mon Feb 10 12:54:50 CET 2025
On Mon, Feb 03, 2025 at 01:25:08PM +0530, Shaiq Wani wrote:
> In case some CPUs don't support AVX512. Enable AVX2 for them to
> get better per-core performance.
>
> The single queue model processes all packets in order while
> the split queue model separates packet data and metadata into
> different queues for parallel processing and improved performance.
>
> Signed-off-by: Shaiq Wani <shaiq.wani at intel.com>
> ---
> doc/guides/nics/idpf.rst | 8 +-
> doc/guides/rel_notes/release_25_03.rst | 7 +
> drivers/common/idpf/idpf_common_device.h | 1 +
> drivers/common/idpf/idpf_common_rxtx.h | 4 +
> drivers/common/idpf/idpf_common_rxtx_avx2.c | 224 ++++++++++++++++++++
> drivers/common/idpf/version.map | 1 +
> drivers/net/intel/idpf/idpf_rxtx.c | 13 ++
> 7 files changed, 255 insertions(+), 3 deletions(-)
>
> diff --git a/doc/guides/nics/idpf.rst b/doc/guides/nics/idpf.rst
> index 0370989a07..90b651d193 100644
> --- a/doc/guides/nics/idpf.rst
> +++ b/doc/guides/nics/idpf.rst
<snip>
> +static __rte_always_inline int
> +idpf_singleq_tx_free_bufs_vec(struct idpf_tx_queue *txq)
> +{
> + struct idpf_tx_entry *txep;
> + uint32_t n;
> + uint32_t i;
> + int nb_free = 0;
> + struct rte_mbuf *m, *free[txq->rs_thresh];
> +
Use of these variable-length arrays is no longer allowed in DPDK. The
AVX512 equivalent of this code uses alloca, so will update this on apply to
match that.
/Bruce
More information about the dev
mailing list