From: Ciara Loftus <ciara.loftus@intel.com>
To: dev@dpdk.org
Cc: Ciara Loftus <ciara.loftus@intel.com>
Subject: [PATCH 1/8] net/i40e: ensure all Tx paths are selectable
Date: Mon, 15 Dec 2025 14:05:46 +0000 [thread overview]
Message-ID: <20251215140553.2283531-2-ciara.loftus@intel.com> (raw)
In-Reply-To: <20251215140553.2283531-1-ciara.loftus@intel.com>
Depending on the underlying architecture and CPU flags available, a
different set of Tx paths are defined. The Tx path selection function
iterates sequentially from zero to num_paths where num_paths is the size
of the array as determined by the RTE_DIM macro. However, depending on
the platform, some of these entries may be empty, and valid entries at
the end of the array may never be considered in the selection function.
Fix this by editing the i40e_tx_func_type enum and only defining a value
for the Tx path if it is implemented in the i40e_tx_path_infos array.
Fixes: dc9c426f991f ("net/i40e: use common Tx path selection infrastructure")
Signed-off-by: Ciara Loftus <ciara.loftus@intel.com>
---
drivers/net/intel/i40e/i40e_ethdev.h | 6 ++++++
drivers/net/intel/i40e/i40e_rxtx.c | 8 ++++++--
2 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/drivers/net/intel/i40e/i40e_ethdev.h b/drivers/net/intel/i40e/i40e_ethdev.h
index 1fe504d0cd..c3240be960 100644
--- a/drivers/net/intel/i40e/i40e_ethdev.h
+++ b/drivers/net/intel/i40e/i40e_ethdev.h
@@ -1246,11 +1246,17 @@ enum i40e_rx_func_type {
enum i40e_tx_func_type {
I40E_TX_DEFAULT,
I40E_TX_SCALAR_SIMPLE,
+#ifdef RTE_ARCH_X86
I40E_TX_SSE,
I40E_TX_AVX2,
+#ifdef CC_AVX512_SUPPORT
I40E_TX_AVX512,
+#endif
+#elif defined(RTE_ARCH_ARM64)
I40E_TX_NEON,
+#elif defined(RTE_ARCH_PPC_64)
I40E_TX_ALTIVEC,
+#endif
};
/*
diff --git a/drivers/net/intel/i40e/i40e_rxtx.c b/drivers/net/intel/i40e/i40e_rxtx.c
index a7d80e2bc0..f3c9d41686 100644
--- a/drivers/net/intel/i40e/i40e_rxtx.c
+++ b/drivers/net/intel/i40e/i40e_rxtx.c
@@ -3626,10 +3626,14 @@ i40e_set_tx_function(struct rte_eth_dev *dev)
i40e_tx_path_infos[ad->tx_func_type].info, dev->data->port_id);
if (ad->tx_func_type == I40E_TX_SCALAR_SIMPLE ||
+#ifdef RTE_ARCH_X86
ad->tx_func_type == I40E_TX_SSE ||
- ad->tx_func_type == I40E_TX_NEON ||
- ad->tx_func_type == I40E_TX_ALTIVEC ||
ad->tx_func_type == I40E_TX_AVX2)
+#elif defined(RTE_ARCH_ARM64)
+ ad->tx_func_type == I40E_TX_NEON)
+#elif defined(RTE_ARCH_PPC_64)
+ ad->tx_func_type == I40E_TX_ALTIVEC)
+#endif
dev->recycle_tx_mbufs_reuse = i40e_recycle_tx_mbufs_reuse_vec;
}
--
2.43.0
next prev parent reply other threads:[~2025-12-15 14:07 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-15 14:05 [PATCH 0/8] Fixes for Intel common rx/tx path selection Ciara Loftus
2025-12-15 14:05 ` Ciara Loftus [this message]
2025-12-15 14:05 ` [PATCH 2/8] net/iavf: ensure all Tx paths are selectable Ciara Loftus
2025-12-15 14:05 ` [PATCH 3/8] net/ice: " Ciara Loftus
2025-12-15 14:05 ` [PATCH 4/8] net/idpf: " Ciara Loftus
2025-12-15 14:05 ` [PATCH 5/8] net/i40e: ensure all Rx " Ciara Loftus
2025-12-15 14:05 ` [PATCH 6/8] net/iavf: " Ciara Loftus
2025-12-15 14:05 ` [PATCH 7/8] net/ice: " Ciara Loftus
2025-12-15 14:05 ` [PATCH 8/8] net/idpf: " Ciara Loftus
2025-12-15 14:58 ` [PATCH 0/8] Fixes for Intel common rx/tx path selection Bruce Richardson
2025-12-16 9:06 ` Loftus, Ciara
2025-12-16 10:35 ` [PATCH v2 0/3] " Ciara Loftus
2025-12-16 10:35 ` [PATCH v2 1/3] net/intel: prevent selection of a null Tx burst function Ciara Loftus
2025-12-16 12:05 ` Bruce Richardson
2025-12-16 10:35 ` [PATCH v2 2/3] net/intel: prevent selection of a null Rx " Ciara Loftus
2025-12-16 12:06 ` Bruce Richardson
2025-12-16 10:35 ` [PATCH v2 3/3] net/intel: bring common Rx path selection in line with Tx Ciara Loftus
2025-12-16 12:06 ` Bruce Richardson
2025-12-16 12:28 ` [PATCH v2 0/3] Fixes for Intel common rx/tx path selection 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=20251215140553.2283531-2-ciara.loftus@intel.com \
--to=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;
as well as URLs for NNTP newsgroup(s).