[dpdk-stable] patch 'net/i40e: relax barrier in Tx for NEON' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Tue May 19 15:03:39 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/21/20. 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 31d1b373d5ab079273f9f5b164b2d5720081b39e Mon Sep 17 00:00:00 2001
From: Gavin Hu <gavin.hu at arm.com>
Date: Tue, 14 Apr 2020 00:40:24 +0800
Subject: [PATCH] net/i40e: relax barrier in Tx for NEON

[ upstream commit 6b50c489a3bb1d82e2549ae2f1e2c46961572c27 ]

To keep ordering of mixed accesses, 'DMB OSH' is sufficient.
'DSB' inside the I40E_PCI_REG_WRITE is overkill.[1]

This patch fixes by replacing with just sufficient barriers in the
normal PMD and vPMD.

It showed 7% performance uplift on ThunderX2 and 4% on Arm N1SDP.
The test case is the RFC2544 zero-loss test running testpmd.

[1] http://inbox.dpdk.org/dev/CALBAE1M-ezVWCjqCZDBw+MMDEC4O9
qf0Kpn89EMdGDajepKoZQ at mail.gmail.com

Fixes: ae0eb310f253 ("net/i40e: implement vector PMD for ARM")

Signed-off-by: Gavin Hu <gavin.hu at arm.com>
Acked-by: Jerin Jacob <jerinj at marvell.com>
---
 drivers/net/i40e/i40e_rxtx_vec_neon.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/i40e/i40e_rxtx_vec_neon.c b/drivers/net/i40e/i40e_rxtx_vec_neon.c
index deb185fe2f..4376d8911c 100644
--- a/drivers/net/i40e/i40e_rxtx_vec_neon.c
+++ b/drivers/net/i40e/i40e_rxtx_vec_neon.c
@@ -72,8 +72,9 @@ i40e_rxq_rearm(struct i40e_rx_queue *rxq)
 	rx_id = (uint16_t)((rxq->rxrearm_start == 0) ?
 			     (rxq->nb_rx_desc - 1) : (rxq->rxrearm_start - 1));
 
+	rte_cio_wmb();
 	/* Update the tail pointer on the NIC */
-	I40E_PCI_REG_WRITE(rxq->qrx_tail, rx_id);
+	I40E_PCI_REG_WRITE_RELAXED(rxq->qrx_tail, rx_id);
 }
 
 static inline void
@@ -564,7 +565,8 @@ i40e_xmit_fixed_burst_vec(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 	txq->tx_tail = tx_id;
 
-	I40E_PCI_REG_WRITE(txq->qtx_tail, txq->tx_tail);
+	rte_cio_wmb();
+	I40E_PCI_REG_WRITE_RELAXED(txq->qtx_tail, tx_id);
 
 	return nb_pkts;
 }
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-19 14:04:47.870108580 +0100
+++ 0084-net-i40e-relax-barrier-in-Tx-for-NEON.patch	2020-05-19 14:04:44.252649025 +0100
@@ -1,8 +1,10 @@
-From 6b50c489a3bb1d82e2549ae2f1e2c46961572c27 Mon Sep 17 00:00:00 2001
+From 31d1b373d5ab079273f9f5b164b2d5720081b39e Mon Sep 17 00:00:00 2001
 From: Gavin Hu <gavin.hu at arm.com>
 Date: Tue, 14 Apr 2020 00:40:24 +0800
 Subject: [PATCH] net/i40e: relax barrier in Tx for NEON
 
+[ upstream commit 6b50c489a3bb1d82e2549ae2f1e2c46961572c27 ]
+
 To keep ordering of mixed accesses, 'DMB OSH' is sufficient.
 'DSB' inside the I40E_PCI_REG_WRITE is overkill.[1]
 
@@ -16,7 +18,6 @@
 qf0Kpn89EMdGDajepKoZQ at mail.gmail.com
 
 Fixes: ae0eb310f253 ("net/i40e: implement vector PMD for ARM")
-Cc: stable at dpdk.org
 
 Signed-off-by: Gavin Hu <gavin.hu at arm.com>
 Acked-by: Jerin Jacob <jerinj at marvell.com>
@@ -25,7 +26,7 @@
  1 file changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/drivers/net/i40e/i40e_rxtx_vec_neon.c b/drivers/net/i40e/i40e_rxtx_vec_neon.c
-index d7d6decafd..8b99354a5f 100644
+index deb185fe2f..4376d8911c 100644
 --- a/drivers/net/i40e/i40e_rxtx_vec_neon.c
 +++ b/drivers/net/i40e/i40e_rxtx_vec_neon.c
 @@ -72,8 +72,9 @@ i40e_rxq_rearm(struct i40e_rx_queue *rxq)


More information about the stable mailing list