[v6,12/33] net/ixgbe: decouple scalar and vec rxq free mbufs
Checks
Commit Message
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@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@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(-)
@@ -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)
{