patches for DPDK stable branches
 help / color / mirror / Atom feed
From: christian.ehrhardt@canonical.com
To: Nithin Dabilpuram <ndabilpuram@marvell.com>
Cc: dpdk stable <stable@dpdk.org>
Subject: [dpdk-stable] patch 'net/octeontx2: use runtime LSO format indices' has been queued to stable release 19.11.10
Date: Tue, 10 Aug 2021 17:39:04 +0200	[thread overview]
Message-ID: <20210810154022.749358-24-christian.ehrhardt@canonical.com> (raw)
In-Reply-To: <20210810154022.749358-1-christian.ehrhardt@canonical.com>

Hi,

FYI, your patch has been queued to stable release 19.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 08/12/21. 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.

Queued patches are on a temporary branch at:
https://github.com/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/bc88f4ccfedf1d37d011f5ceb17f6cb7f3f983c2

Thanks.

Christian Ehrhardt <christian.ehrhardt@canonical.com>

---
From bc88f4ccfedf1d37d011f5ceb17f6cb7f3f983c2 Mon Sep 17 00:00:00 2001
From: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date: Fri, 18 Jun 2021 18:36:06 +0530
Subject: [PATCH] net/octeontx2: use runtime LSO format indices

[ upstream commit 56cabfbf4affde4117652cba3c6235d1a40f4205 ]

Currently LSO formats setup initially are expected to be
compile time constants and start from 0.

Change the logic in slow and fast path so that LSO format indexes
are only determined runtime.

Fixes: 3b635472a998 ("net/octeontx2: support TSO offload")

Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
 drivers/event/octeontx2/otx2_worker.h |  2 +-
 drivers/net/octeontx2/otx2_ethdev.c   | 72 +++++++++++++++------------
 drivers/net/octeontx2/otx2_ethdev.h   | 13 ++++-
 drivers/net/octeontx2/otx2_tx.c       |  8 ++-
 drivers/net/octeontx2/otx2_tx.h       | 12 +++--
 5 files changed, 67 insertions(+), 40 deletions(-)

diff --git a/drivers/event/octeontx2/otx2_worker.h b/drivers/event/octeontx2/otx2_worker.h
index 7d161c85ee..b35a9cf247 100644
--- a/drivers/event/octeontx2/otx2_worker.h
+++ b/drivers/event/octeontx2/otx2_worker.h
@@ -270,7 +270,7 @@ otx2_ssogws_prepare_pkt(const struct otx2_eth_txq *txq, struct rte_mbuf *m,
 			uint64_t *cmd, const uint32_t flags)
 {
 	otx2_lmt_mov(cmd, txq->cmd, otx2_nix_tx_ext_subs(flags));
-	otx2_nix_xmit_prepare(m, cmd, flags);
+	otx2_nix_xmit_prepare(m, cmd, flags, txq->lso_tun_fmt);
 }
 
 static __rte_always_inline uint16_t
diff --git a/drivers/net/octeontx2/otx2_ethdev.c b/drivers/net/octeontx2/otx2_ethdev.c
index c952373be4..edd46eae48 100644
--- a/drivers/net/octeontx2/otx2_ethdev.c
+++ b/drivers/net/octeontx2/otx2_ethdev.c
@@ -1098,6 +1098,7 @@ otx2_nix_tx_queue_setup(struct rte_eth_dev *eth_dev, uint16_t sq,
 	txq->qconf.nb_desc = nb_desc;
 	memcpy(&txq->qconf.conf.tx, tx_conf, sizeof(struct rte_eth_txconf));
 
+	txq->lso_tun_fmt = dev->lso_tun_fmt;
 	otx2_nix_form_default_desc(txq);
 
 	otx2_nix_dbg("sq=%d fc=%p offload=0x%" PRIx64 " sqb=0x%" PRIx64 ""
@@ -1448,7 +1449,7 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	struct otx2_mbox *mbox = dev->mbox;
 	struct nix_lso_format_cfg_rsp *rsp;
 	struct nix_lso_format_cfg *req;
-	uint8_t base;
+	uint8_t *fmt;
 	int rc;
 
 	/* Skip if TSO was not requested */
@@ -1463,11 +1464,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	if (rc)
 		return rc;
 
-	base = rsp->lso_format_idx;
-	if (base != NIX_LSO_FORMAT_IDX_TSOV4)
+	if (rsp->lso_format_idx != NIX_LSO_FORMAT_IDX_TSOV4)
 		return -EFAULT;
-	dev->lso_base_idx = base;
-	otx2_nix_dbg("tcpv4 lso fmt=%u", base);
+	otx2_nix_dbg("tcpv4 lso fmt=%u", rsp->lso_format_idx);
 
 
 	/*
@@ -1479,9 +1478,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	if (rc)
 		return rc;
 
-	if (rsp->lso_format_idx != base + 1)
+	if (rsp->lso_format_idx != NIX_LSO_FORMAT_IDX_TSOV6)
 		return -EFAULT;
-	otx2_nix_dbg("tcpv6 lso fmt=%u\n", base + 1);
+	otx2_nix_dbg("tcpv6 lso fmt=%u\n", rsp->lso_format_idx);
 
 	/*
 	 * IPv4/UDP/TUN HDR/IPv4/TCP LSO
@@ -1492,9 +1491,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	if (rc)
 		return rc;
 
-	if (rsp->lso_format_idx != base + 2)
-		return -EFAULT;
-	otx2_nix_dbg("udp tun v4v4 fmt=%u\n", base + 2);
+	dev->lso_udp_tun_idx[NIX_LSO_TUN_V4V4] = rsp->lso_format_idx;
+	otx2_nix_dbg("udp tun v4v4 fmt=%u\n", rsp->lso_format_idx);
 
 	/*
 	 * IPv4/UDP/TUN HDR/IPv6/TCP LSO
@@ -1505,9 +1503,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	if (rc)
 		return rc;
 
-	if (rsp->lso_format_idx != base + 3)
-		return -EFAULT;
-	otx2_nix_dbg("udp tun v4v6 fmt=%u\n", base + 3);
+	dev->lso_udp_tun_idx[NIX_LSO_TUN_V4V6] = rsp->lso_format_idx;
+	otx2_nix_dbg("udp tun v4v6 fmt=%u\n", rsp->lso_format_idx);
 
 	/*
 	 * IPv6/UDP/TUN HDR/IPv4/TCP LSO
@@ -1518,9 +1515,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	if (rc)
 		return rc;
 
-	if (rsp->lso_format_idx != base + 4)
-		return -EFAULT;
-	otx2_nix_dbg("udp tun v6v4 fmt=%u\n", base + 4);
+	dev->lso_udp_tun_idx[NIX_LSO_TUN_V6V4] = rsp->lso_format_idx;
+	otx2_nix_dbg("udp tun v6v4 fmt=%u\n", rsp->lso_format_idx);
 
 	/*
 	 * IPv6/UDP/TUN HDR/IPv6/TCP LSO
@@ -1530,9 +1526,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	rc = otx2_mbox_process_msg(mbox, (void *)&rsp);
 	if (rc)
 		return rc;
-	if (rsp->lso_format_idx != base + 5)
-		return -EFAULT;
-	otx2_nix_dbg("udp tun v6v6 fmt=%u\n", base + 5);
+
+	dev->lso_udp_tun_idx[NIX_LSO_TUN_V6V6] = rsp->lso_format_idx;
+	otx2_nix_dbg("udp tun v6v6 fmt=%u\n", rsp->lso_format_idx);
 
 	/*
 	 * IPv4/TUN HDR/IPv4/TCP LSO
@@ -1543,9 +1539,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	if (rc)
 		return rc;
 
-	if (rsp->lso_format_idx != base + 6)
-		return -EFAULT;
-	otx2_nix_dbg("tun v4v4 fmt=%u\n", base + 6);
+	dev->lso_tun_idx[NIX_LSO_TUN_V4V4] = rsp->lso_format_idx;
+	otx2_nix_dbg("tun v4v4 fmt=%u\n", rsp->lso_format_idx);
 
 	/*
 	 * IPv4/TUN HDR/IPv6/TCP LSO
@@ -1556,9 +1551,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	if (rc)
 		return rc;
 
-	if (rsp->lso_format_idx != base + 7)
-		return -EFAULT;
-	otx2_nix_dbg("tun v4v6 fmt=%u\n", base + 7);
+	dev->lso_tun_idx[NIX_LSO_TUN_V4V6] = rsp->lso_format_idx;
+	otx2_nix_dbg("tun v4v6 fmt=%u\n", rsp->lso_format_idx);
 
 	/*
 	 * IPv6/TUN HDR/IPv4/TCP LSO
@@ -1569,9 +1563,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	if (rc)
 		return rc;
 
-	if (rsp->lso_format_idx != base + 8)
-		return -EFAULT;
-	otx2_nix_dbg("tun v6v4 fmt=%u\n", base + 8);
+	dev->lso_tun_idx[NIX_LSO_TUN_V6V4] = rsp->lso_format_idx;
+	otx2_nix_dbg("tun v6v4 fmt=%u\n", rsp->lso_format_idx);
 
 	/*
 	 * IPv6/TUN HDR/IPv6/TCP LSO
@@ -1581,9 +1574,26 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
 	rc = otx2_mbox_process_msg(mbox, (void *)&rsp);
 	if (rc)
 		return rc;
-	if (rsp->lso_format_idx != base + 9)
-		return -EFAULT;
-	otx2_nix_dbg("tun v6v6 fmt=%u\n", base + 9);
+
+	dev->lso_tun_idx[NIX_LSO_TUN_V6V6] = rsp->lso_format_idx;
+	otx2_nix_dbg("tun v6v6 fmt=%u\n", rsp->lso_format_idx);
+
+	/* Save all tun formats into u64 for fast path.
+	 * Lower 32bit has non-udp tunnel formats.
+	 * Upper 32bit has udp tunnel formats.
+	 */
+	fmt = dev->lso_tun_idx;
+	dev->lso_tun_fmt = ((uint64_t)fmt[NIX_LSO_TUN_V4V4] |
+			    (uint64_t)fmt[NIX_LSO_TUN_V4V6] << 8 |
+			    (uint64_t)fmt[NIX_LSO_TUN_V6V4] << 16 |
+			    (uint64_t)fmt[NIX_LSO_TUN_V6V6] << 24);
+
+	fmt = dev->lso_udp_tun_idx;
+	dev->lso_tun_fmt |= ((uint64_t)fmt[NIX_LSO_TUN_V4V4] << 32 |
+			     (uint64_t)fmt[NIX_LSO_TUN_V4V6] << 40 |
+			     (uint64_t)fmt[NIX_LSO_TUN_V6V4] << 48 |
+			     (uint64_t)fmt[NIX_LSO_TUN_V6V6] << 56);
+
 	return 0;
 }
 
diff --git a/drivers/net/octeontx2/otx2_ethdev.h b/drivers/net/octeontx2/otx2_ethdev.h
index 6855200fb2..848a1dff85 100644
--- a/drivers/net/octeontx2/otx2_ethdev.h
+++ b/drivers/net/octeontx2/otx2_ethdev.h
@@ -171,6 +171,14 @@ enum nix_q_size_e {
 	nix_q_size_max
 };
 
+enum nix_lso_tun_type {
+	NIX_LSO_TUN_V4V4,
+	NIX_LSO_TUN_V4V6,
+	NIX_LSO_TUN_V6V4,
+	NIX_LSO_TUN_V6V6,
+	NIX_LSO_TUN_MAX,
+};
+
 struct otx2_qint {
 	struct rte_eth_dev *eth_dev;
 	uint8_t qintx;
@@ -265,7 +273,9 @@ struct otx2_eth_dev {
 	uint8_t tx_chan_cnt;
 	uint8_t lso_tsov4_idx;
 	uint8_t lso_tsov6_idx;
-	uint8_t lso_base_idx;
+	uint8_t lso_udp_tun_idx[NIX_LSO_TUN_MAX];
+	uint8_t lso_tun_idx[NIX_LSO_TUN_MAX];
+	uint64_t lso_tun_fmt;
 	uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
 	uint8_t mkex_pfl_name[MKEX_NAME_LEN];
 	uint8_t max_mac_entries;
@@ -339,6 +349,7 @@ struct otx2_eth_txq {
 	rte_iova_t fc_iova;
 	uint16_t sqes_per_sqb_log2;
 	int16_t nb_sqb_bufs_adj;
+	uint64_t lso_tun_fmt;
 	MARKER slow_path_start;
 	uint16_t nb_sqb_bufs;
 	uint16_t sq;
diff --git a/drivers/net/octeontx2/otx2_tx.c b/drivers/net/octeontx2/otx2_tx.c
index fa533000ed..f498a90d16 100644
--- a/drivers/net/octeontx2/otx2_tx.c
+++ b/drivers/net/octeontx2/otx2_tx.c
@@ -27,6 +27,7 @@ nix_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 	struct otx2_eth_txq *txq = tx_queue; uint16_t i;
 	const rte_iova_t io_addr = txq->io_addr;
 	void *lmt_addr = txq->lmt_addr;
+	uint64_t lso_tun_fmt;
 
 	NIX_XMIT_FC_OR_RETURN(txq, pkts);
 
@@ -34,6 +35,7 @@ nix_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 	/* Perform header writes before barrier for TSO */
 	if (flags & NIX_TX_OFFLOAD_TSO_F) {
+		lso_tun_fmt = txq->lso_tun_fmt;
 		for (i = 0; i < pkts; i++)
 			otx2_nix_xmit_prepare_tso(tx_pkts[i], flags);
 	}
@@ -42,7 +44,7 @@ nix_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
 	rte_cio_wmb();
 
 	for (i = 0; i < pkts; i++) {
-		otx2_nix_xmit_prepare(tx_pkts[i], cmd, flags);
+		otx2_nix_xmit_prepare(tx_pkts[i], cmd, flags, lso_tun_fmt);
 		/* Passing no of segdw as 4: HDR + EXT + SG + SMEM */
 		otx2_nix_xmit_prepare_tstamp(cmd, &txq->cmd[0],
 					     tx_pkts[i]->ol_flags, 4, flags);
@@ -62,6 +64,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
 	struct otx2_eth_txq *txq = tx_queue; uint64_t i;
 	const rte_iova_t io_addr = txq->io_addr;
 	void *lmt_addr = txq->lmt_addr;
+	uint64_t lso_tun_fmt;
 	uint16_t segdw;
 
 	NIX_XMIT_FC_OR_RETURN(txq, pkts);
@@ -70,6 +73,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
 
 	/* Perform header writes before barrier for TSO */
 	if (flags & NIX_TX_OFFLOAD_TSO_F) {
+		lso_tun_fmt = txq->lso_tun_fmt;
 		for (i = 0; i < pkts; i++)
 			otx2_nix_xmit_prepare_tso(tx_pkts[i], flags);
 	}
@@ -78,7 +82,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
 	rte_cio_wmb();
 
 	for (i = 0; i < pkts; i++) {
-		otx2_nix_xmit_prepare(tx_pkts[i], cmd, flags);
+		otx2_nix_xmit_prepare(tx_pkts[i], cmd, flags, lso_tun_fmt);
 		segdw = otx2_nix_prepare_mseg(tx_pkts[i], cmd, flags);
 		otx2_nix_xmit_prepare_tstamp(cmd, &txq->cmd[0],
 					     tx_pkts[i]->ol_flags, segdw,
diff --git a/drivers/net/octeontx2/otx2_tx.h b/drivers/net/octeontx2/otx2_tx.h
index 04e859bacd..c13c4c2c2f 100644
--- a/drivers/net/octeontx2/otx2_tx.h
+++ b/drivers/net/octeontx2/otx2_tx.h
@@ -196,7 +196,8 @@ otx2_nix_xmit_prepare_tso(struct rte_mbuf *m, const uint64_t flags)
 }
 
 static __rte_always_inline void
-otx2_nix_xmit_prepare(struct rte_mbuf *m, uint64_t *cmd, const uint16_t flags)
+otx2_nix_xmit_prepare(struct rte_mbuf *m, uint64_t *cmd, const uint16_t flags,
+		      const uint64_t lso_tun_fmt)
 {
 	struct nix_send_ext_s *send_hdr_ext;
 	struct nix_send_hdr_s *send_hdr;
@@ -338,14 +339,15 @@ otx2_nix_xmit_prepare(struct rte_mbuf *m, uint64_t *cmd, const uint16_t flags)
 		    (ol_flags & PKT_TX_TUNNEL_MASK)) {
 			const uint8_t is_udp_tun = (NIX_UDP_TUN_BITMASK >>
 				((ol_flags & PKT_TX_TUNNEL_MASK) >> 45)) & 0x1;
+			uint8_t shift = is_udp_tun ? 32 : 0;
+
+			shift += (!!(ol_flags & PKT_TX_OUTER_IPV6) << 4);
+			shift += (!!(ol_flags & PKT_TX_IPV6) << 3);
 
 			w1.il4type = NIX_SENDL4TYPE_TCP_CKSUM;
 			w1.ol4type = is_udp_tun ? NIX_SENDL4TYPE_UDP_CKSUM : 0;
 			/* Update format for UDP tunneled packet */
-			send_hdr_ext->w0.lso_format += is_udp_tun ? 2 : 6;
-
-			send_hdr_ext->w0.lso_format +=
-				!!(ol_flags & PKT_TX_OUTER_IPV6) << 1;
+			send_hdr_ext->w0.lso_format = (lso_tun_fmt >> shift);
 		}
 	}
 
-- 
2.32.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-08-10 15:11:13.998688086 +0200
+++ 0024-net-octeontx2-use-runtime-LSO-format-indices.patch	2021-08-10 15:11:12.930637465 +0200
@@ -1 +1 @@
-From 56cabfbf4affde4117652cba3c6235d1a40f4205 Mon Sep 17 00:00:00 2001
+From bc88f4ccfedf1d37d011f5ceb17f6cb7f3f983c2 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 56cabfbf4affde4117652cba3c6235d1a40f4205 ]
+
@@ -13 +14,0 @@
-Cc: stable@dpdk.org
@@ -25 +26 @@
-index fd149be919..3e36dcece1 100644
+index 7d161c85ee..b35a9cf247 100644
@@ -28 +29 @@
-@@ -264,7 +264,7 @@ otx2_ssogws_prepare_pkt(const struct otx2_eth_txq *txq, struct rte_mbuf *m,
+@@ -270,7 +270,7 @@ otx2_ssogws_prepare_pkt(const struct otx2_eth_txq *txq, struct rte_mbuf *m,
@@ -38 +39 @@
-index 0834de0cb1..0a420c1fb1 100644
+index c952373be4..edd46eae48 100644
@@ -41 +42 @@
-@@ -1326,6 +1326,7 @@ otx2_nix_tx_queue_setup(struct rte_eth_dev *eth_dev, uint16_t sq,
+@@ -1098,6 +1098,7 @@ otx2_nix_tx_queue_setup(struct rte_eth_dev *eth_dev, uint16_t sq,
@@ -49 +50 @@
-@@ -1676,7 +1677,7 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1448,7 +1449,7 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -58 +59 @@
-@@ -1691,11 +1692,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1463,11 +1464,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -72 +73 @@
-@@ -1707,9 +1706,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1479,9 +1478,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -84 +85 @@
-@@ -1720,9 +1719,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1492,9 +1491,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -96 +97 @@
-@@ -1733,9 +1731,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1505,9 +1503,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -108 +109 @@
-@@ -1746,9 +1743,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1518,9 +1515,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -120 +121 @@
-@@ -1758,9 +1754,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1530,9 +1526,9 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -133 +134 @@
-@@ -1771,9 +1767,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1543,9 +1539,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -145 +146 @@
-@@ -1784,9 +1779,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1556,9 +1551,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -157 +158 @@
-@@ -1797,9 +1791,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1569,9 +1563,8 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -169 +170 @@
-@@ -1809,9 +1802,26 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
+@@ -1581,9 +1574,26 @@ nix_setup_lso_formats(struct otx2_eth_dev *dev)
@@ -200 +201 @@
-index ac50da7b18..381e6b6cb3 100644
+index 6855200fb2..848a1dff85 100644
@@ -203 +204 @@
-@@ -182,6 +182,14 @@ enum nix_q_size_e {
+@@ -171,6 +171,14 @@ enum nix_q_size_e {
@@ -218 +219 @@
-@@ -276,7 +284,9 @@ struct otx2_eth_dev {
+@@ -265,7 +273,9 @@ struct otx2_eth_dev {
@@ -229 +230 @@
-@@ -359,6 +369,7 @@ struct otx2_eth_txq {
+@@ -339,6 +349,7 @@ struct otx2_eth_txq {
@@ -234 +235 @@
- 	RTE_MARKER slow_path_start;
+ 	MARKER slow_path_start;
@@ -238 +239 @@
-index 439c46f61c..ff299f00b9 100644
+index fa533000ed..f498a90d16 100644
@@ -257,2 +258,2 @@
-@@ -45,7 +47,7 @@ nix_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
- 		rte_io_wmb();
+@@ -42,7 +44,7 @@ nix_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+ 	rte_cio_wmb();
@@ -266 +267 @@
-@@ -65,6 +67,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -62,6 +64,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -274 +275 @@
-@@ -73,6 +76,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -70,6 +73,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
@@ -282,2 +283,2 @@
-@@ -84,7 +88,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
- 		rte_io_wmb();
+@@ -78,7 +82,7 @@ nix_xmit_pkts_mseg(void *tx_queue, struct rte_mbuf **tx_pkts,
+ 	rte_cio_wmb();
@@ -292 +293 @@
-index a97b160677..486248dff7 100644
+index 04e859bacd..c13c4c2c2f 100644
@@ -295 +296 @@
-@@ -197,7 +197,8 @@ otx2_nix_xmit_prepare_tso(struct rte_mbuf *m, const uint64_t flags)
+@@ -196,7 +196,8 @@ otx2_nix_xmit_prepare_tso(struct rte_mbuf *m, const uint64_t flags)
@@ -305 +306 @@
-@@ -339,14 +340,15 @@ otx2_nix_xmit_prepare(struct rte_mbuf *m, uint64_t *cmd, const uint16_t flags)
+@@ -338,14 +339,15 @@ otx2_nix_xmit_prepare(struct rte_mbuf *m, uint64_t *cmd, const uint16_t flags)

  parent reply	other threads:[~2021-08-10 15:41 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-10 15:38 [dpdk-stable] patch 'bitmap: fix buffer overrun in bitmap init' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: check access to possible null pointer' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: fix error messages in VNIC prepare' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: set flow error when free filter not available' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: remove unnecessary code' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: fix error handling in VNIC prepare' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: set flow error after tunnel redirection free' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: use common function to free VNIC resource' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: fix check for PTP support in FW' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/bnxt: improve probing log message' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'net/iavf: fix RSS key access out of bound' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'doc: fix default burst size in testpmd' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'devtools: fix file listing in maintainers check' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'vhost/crypto: check request pointer before dereference' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'kni: fix mbuf allocation for kernel side use' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'kni: fix crash on userspace VA for segmented packets' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'flow_classify: fix leaking rules on delete' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'rib: fix max depth IPv6 lookup' " christian.ehrhardt
2021-08-10 15:38 ` [dpdk-stable] patch 'tests/eal: fix memory leak' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'common/mlx5: fix Netlink port name padding in probing' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'app/test: fix IPv6 header initialization' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'test/mbuf: fix virtual address conversion' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/octeontx2: fix flow creation limit on CN98xx' " christian.ehrhardt
2021-08-10 15:39 ` christian.ehrhardt [this message]
2021-08-10 15:39 ` [dpdk-stable] patch 'net/ice/base: fix first profile mask' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'vhost: fix missing memory table NUMA realloc' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'vhost: fix missing guest pages " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'mempool/octeontx2: fix shift calculation' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'drivers/net: fix memzone allocations for DMA memory' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/hns3: increase VF reset retry maximum' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/hns3: fix delay for waiting to stop Rx/Tx' " christian.ehrhardt
2021-08-11  9:02   ` Christian Ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/hns3: fix VLAN strip log' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/pfe: remove unnecessary null check' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'ethdev: fix doc of flow action' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'app/testpmd: change port link speed without stopping all' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'crypto/qat: fix Arm build with special memcpy' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'app/crypto-perf: fix out-of-place mempool allocation' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'test/crypto: fix mbuf reset after null check' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'test/crypto: fix typo in AES case' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'test/crypto: fix typo in ESN " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'crypto/mvsam: fix AES-GCM session parameters' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'crypto/mvsam: fix capabilities' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'crypto/mvsam: fix session data reset' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'crypto/mvsam: fix options parsing' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'ipc: stop mp control thread on cleanup' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'power: fix namespace for internal struct' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bnxt: cleanup code' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bnxt: fix typo in log message' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bnxt: fix Tx descriptor status implementation' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bnxt: fix scalar Tx completion handling' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bnxt: fix Rx interrupt setting' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'doc: add limitation for ConnectX-4 with L2 in mlx5 guide' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mlx5: fix match MPLS over GRE with key' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'common/mlx5: fix Netlink receive message buffer size' " christian.ehrhardt
2021-08-11  9:26   ` Christian Ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mlx5: remove unsupported flow item MPLS over IP' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/ice: fix memzone leak when firmware is missing' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/i40e: fix descriptor scan on Arm' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/ixgbe: fix flow entry access after freeing' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/octeontx/base: fix debug build with clang' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'test/power: fix CPU frequency when turbo enabled' " christian.ehrhardt
2021-08-11  9:59   ` Christian Ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/virtio: fix aarch32 build' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bonding: fix error message on flow verify' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bonding: check flow setting' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/softnic: fix connection memory leak' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mlx5: remove redundant operations in NEON Rx' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mlx5: fix typo in vectorized Rx comments' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mvpp2: fix port speed overflow' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mvpp2: fix configured state dependency' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bnxt: fix nested lock during bonding' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bnxt: clear cached statistics' " christian.ehrhardt
2021-08-11  8:54   ` Christian Ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/ice/base: revert change of first profile mask' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'distributor: fix 128-bit write alignment' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'test/power: fix CPU frequency check for intel_pstate' " christian.ehrhardt
2021-08-11  9:51   ` Christian Ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'test/crypto: fix mempool size for session-less' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mlx5: fix overflow in mempool argument' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mlx5: fix Rx/Tx queue checks' " christian.ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/mlx5: reject inner ethernet matching in GTP' " christian.ehrhardt
2021-08-11  9:17   ` Christian Ehrhardt
2021-08-11 10:25     ` Lior Margalit
2021-08-11 11:23       ` Christian Ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/bnxt: fix null dereference in interrupt handler' " christian.ehrhardt
2021-08-11  8:50   ` Christian Ehrhardt
2021-08-10 15:39 ` [dpdk-stable] patch 'net/softnic: fix memory leak in arguments parsing' " christian.ehrhardt
2021-08-11 10:19   ` Christian Ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/hns3: fix filter parsing comment' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/hns3: fix Tx prepare after stop' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/hinic: increase protection of the VLAN' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/hinic/base: fix LRO' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'bus/dpaa: fix freeing in FMAN interface destructor' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/sfc: fix MAC stats lock in xstats query by ID' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/sfc: fix reading adapter state without locking' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/sfc: fix xstats query by ID according to ethdev' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/sfc: fix xstats query by unsorted list of IDs' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/sfc: fix MAC stats update for stopped device' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'app/testpmd: fix help string for port reset' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'app/testpmd: fix MAC address after " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/virtio: report maximum MTU in device info' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'vhost: fix crash on reconnect' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/virtio: fix interrupt handle leak' " christian.ehrhardt
2021-08-11  6:52   ` Christian Ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/iavf: fix Tx threshold check' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/softnic: fix null dereference in arguments parsing' " christian.ehrhardt
2021-08-11 10:21   ` Christian Ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'net/softnic: fix memory leak as profile is freed' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'app/testpmd: fix Tx checksum calculation for tunnel' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'cryptodev: fix freeing after device release' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'crypto/octeontx: " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'doc: announce common prefix for ethdev' " christian.ehrhardt
2021-08-10 15:40 ` [dpdk-stable] patch 'app/testpmd: fix IPv4 checksum' " christian.ehrhardt

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=20210810154022.749358-24-christian.ehrhardt@canonical.com \
    --to=christian.ehrhardt@canonical.com \
    --cc=ndabilpuram@marvell.com \
    --cc=stable@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).