[PATCH v6 12/33] net/ixgbe: decouple scalar and vec rxq free mbufs
Anatoly Burakov
anatoly.burakov at intel.com
Mon Jun 9 17:37:10 CEST 2025
Currently, vector Rx queue release mbufs function is only called from
inside the scalar variant. Decouple them to allow both to be defined
separately from each other, and provide a common function that picks
between the two when necessary.
Signed-off-by: Anatoly Burakov <anatoly.burakov at intel.com>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
---
Notes:
v5 -> v6:
- Rename functions to _vec and _non_vec, and keep common name as is
v5:
- Add this commit
drivers/net/intel/ixgbe/ixgbe_rxtx.c | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
diff --git a/drivers/net/intel/ixgbe/ixgbe_rxtx.c b/drivers/net/intel/ixgbe/ixgbe_rxtx.c
index 0777f70a4b..0b949c3cfc 100644
--- a/drivers/net/intel/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/intel/ixgbe/ixgbe_rxtx.c
@@ -2967,16 +2967,10 @@ ixgbe_free_sc_cluster(struct rte_mbuf *m)
}
static void __rte_cold
-ixgbe_rx_queue_release_mbufs(struct ixgbe_rx_queue *rxq)
+ixgbe_rx_queue_release_mbufs_non_vec(struct ixgbe_rx_queue *rxq)
{
unsigned i;
- /* SSE Vector driver has a different way of releasing mbufs. */
- if (rxq->vector_rx) {
- ixgbe_rx_queue_release_mbufs_vec(rxq);
- return;
- }
-
if (rxq->sw_ring != NULL) {
for (i = 0; i < rxq->nb_rx_desc; i++) {
if (rxq->sw_ring[i].mbuf != NULL) {
@@ -3003,6 +2997,15 @@ ixgbe_rx_queue_release_mbufs(struct ixgbe_rx_queue *rxq)
}
}
+static void __rte_cold
+ixgbe_rx_queue_release_mbufs(struct ixgbe_rx_queue *rxq)
+{
+ if (rxq->vector_rx)
+ ixgbe_rx_queue_release_mbufs_vec(rxq);
+ else
+ ixgbe_rx_queue_release_mbufs_non_vec(rxq);
+}
+
static void __rte_cold
ixgbe_rx_queue_release(struct ixgbe_rx_queue *rxq)
{
--
2.47.1
More information about the dev
mailing list