[dpdk-stable] patch 'net/ixgbe: remove memory barrier from NEON Rx' has been queued to LTS release 17.11.10

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Dec 19 15:32:36 CET 2019


Hi,

FYI, your patch has been queued to LTS release 17.11.10

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/21/19. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Luca Boccassi

---
>From e23673356f2e4f0f4badfc220ee9e39ead1ac9b9 Mon Sep 17 00:00:00 2001
From: Ruifeng Wang <ruifeng.wang at arm.com>
Date: Wed, 28 Aug 2019 16:24:53 +0800
Subject: [PATCH] net/ixgbe: remove memory barrier from NEON Rx

[ upstream commit 18b7d4eb3dca9e24208c8be59a8972e7f9d7d1cf ]

The memory barrier was intended for descriptor data integrity (see
comments in [1]). As later NEON loads were implemented and a whole
entry is loaded in one-run and atomic, that makes the ordering of
partial loading unnecessary. Remove it accordingly.

Corrected couple of code comments.

In terms of performance, observed slightly higher average throughput
in tests with 82599ES NIC.

[1] http://patches.dpdk.org/patch/18153/

Fixes: 989a84050542 ("net/ixgbe: fix received packets number for ARM NEON")

Signed-off-by: Ruifeng Wang <ruifeng.wang at arm.com>
Reviewed-by: Gavin Hu <gavin.hu at arm.com>
---
 drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
index 2e87ffa0a0..4d7726f406 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
@@ -243,13 +243,13 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
 		uint32_t var = 0;
 		uint32_t stat;
 
-		/* B.1 load 1 mbuf point */
+		/* B.1 load 2 mbuf point */
 		mbp1 = vld1q_u64((uint64_t *)&sw_ring[pos]);
 
 		/* B.2 copy 2 mbuf point into rx_pkts  */
 		vst1q_u64((uint64_t *)&rx_pkts[pos], mbp1);
 
-		/* B.1 load 1 mbuf point */
+		/* B.1 load 2 mbuf point */
 		mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]);
 
 		/* A. load 4 pkts descs */
@@ -257,7 +257,6 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
 		descs[1] =  vld1q_u64((uint64_t *)(rxdp + 1));
 		descs[2] =  vld1q_u64((uint64_t *)(rxdp + 2));
 		descs[3] =  vld1q_u64((uint64_t *)(rxdp + 3));
-		rte_smp_rmb();
 
 		/* B.2 copy 2 mbuf point into rx_pkts  */
 		vst1q_u64((uint64_t *)&rx_pkts[pos + 2], mbp2);
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-19 14:32:26.686841533 +0000
+++ 0009-net-ixgbe-remove-memory-barrier-from-NEON-Rx.patch	2019-12-19 14:32:25.405283945 +0000
@@ -1,8 +1,10 @@
-From 18b7d4eb3dca9e24208c8be59a8972e7f9d7d1cf Mon Sep 17 00:00:00 2001
+From e23673356f2e4f0f4badfc220ee9e39ead1ac9b9 Mon Sep 17 00:00:00 2001
 From: Ruifeng Wang <ruifeng.wang at arm.com>
 Date: Wed, 28 Aug 2019 16:24:53 +0800
 Subject: [PATCH] net/ixgbe: remove memory barrier from NEON Rx
 
+[ upstream commit 18b7d4eb3dca9e24208c8be59a8972e7f9d7d1cf ]
+
 The memory barrier was intended for descriptor data integrity (see
 comments in [1]). As later NEON loads were implemented and a whole
 entry is loaded in one-run and atomic, that makes the ordering of
@@ -16,7 +18,6 @@
 [1] http://patches.dpdk.org/patch/18153/
 
 Fixes: 989a84050542 ("net/ixgbe: fix received packets number for ARM NEON")
-Cc: stable at dpdk.org
 
 Signed-off-by: Ruifeng Wang <ruifeng.wang at arm.com>
 Reviewed-by: Gavin Hu <gavin.hu at arm.com>
@@ -25,10 +26,10 @@
  1 file changed, 2 insertions(+), 3 deletions(-)
 
 diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
-index edb1383543..86fb3afdb7 100644
+index 2e87ffa0a0..4d7726f406 100644
 --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
 +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c
-@@ -214,13 +214,13 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
+@@ -243,13 +243,13 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
  		uint32_t var = 0;
  		uint32_t stat;
  
@@ -44,7 +45,7 @@
  		mbp2 = vld1q_u64((uint64_t *)&sw_ring[pos + 2]);
  
  		/* A. load 4 pkts descs */
-@@ -228,7 +228,6 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
+@@ -257,7 +257,6 @@ _recv_raw_pkts_vec(struct ixgbe_rx_queue *rxq, struct rte_mbuf **rx_pkts,
  		descs[1] =  vld1q_u64((uint64_t *)(rxdp + 1));
  		descs[2] =  vld1q_u64((uint64_t *)(rxdp + 2));
  		descs[3] =  vld1q_u64((uint64_t *)(rxdp + 3));


More information about the stable mailing list