From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 252A9A0C47 for ; Tue, 10 Aug 2021 17:41:41 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 10B4C411C6; Tue, 10 Aug 2021 17:41:41 +0200 (CEST) Received: from smtp-relay-canonical-1.canonical.com (smtp-relay-canonical-1.canonical.com [185.125.188.121]) by mails.dpdk.org (Postfix) with ESMTP id A3EB04114F for ; Tue, 10 Aug 2021 17:41:39 +0200 (CEST) Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-1.canonical.com (Postfix) with ESMTPS id 8C1C93F338 for ; Tue, 10 Aug 2021 15:41:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1628610099; bh=kflGjk0A0FkwnXhG+5k6vh3HgITi12gjO+w6f8mXE1o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hQXvGvNLvORD38daFOSXQGHpvnho0+b0EStas6JO9p20knNM0i9HbLyuis/Hc8m6F sOOS10BvEqax2aa2uv1i8Izg7O7DAleXc0orkUwTW3HTF9vEcXQSLYJ/t6IXMrVsjA hxokhjIaeMHE2FzTmcF2ueb0XigrrZrZjDpaYMo6Z9hrMLoI/w0MjElKSuNRLQkjFR SrJ7FiAF6iymebJvmLm808TymeOIm8lL2ZDiUkHbDkCRfkomXpWE2hXZ2mXJlk3mpz DPZjaN9qk7Y/EFTQFTjhYqdyhojTuFU1fcva7XtLlvdHBLCE9ASIl1DotlLU7X2LRR cCAJps8qR2aSw== Received: by mail-ed1-f72.google.com with SMTP id ec47-20020a0564020d6fb02903be5e0a8cd2so4610667edb.0 for ; Tue, 10 Aug 2021 08:41:39 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kflGjk0A0FkwnXhG+5k6vh3HgITi12gjO+w6f8mXE1o=; b=MjkgotaZ25aS2xvknG36XZbBdBRbXGpdc/C93oo7ElqGcHA8ATQ3h5Zf0HVKBMUb7j Htl1qzl1Ze6fkZe/WP8wRS6iPudKQNbTCmzj7kSiAjMIo4UvqPQtG4dRXOLFJ1UD5KJI u07XWcyrE8rv7A2rVwATcvKFwQdbqJtqO82QaK3WraWM7BS3LvQMFK7m9U+5CJIA9Z1s gZbgZHMDVoErwXI9kOuSV8AvAYzgGPJZ9KFb9h+uAcEERJtldXNWQwZ/wJehwC1fvxNw MJxpGG6qzPX2pn4n+a5cUPOmp7TjHwEk+etO0+T/I3jWZrWqlElEePQUtTc0peOm1Gpm 3uUA== X-Gm-Message-State: AOAM530h0qqb+iXP5IO0vUX0pbsxAV9/9uRXHSY0r2dDbIsOIRgwOmzZ X8Du/8NW/zCG6cVARvn6nT8gaD5jLoKdXfJ/DYr4nvbwgzLuvAQ9LXt2j3qAl2xxYg+H0D6NI3j Ps42fI9yCi1yt8XbdYDmPbtvo X-Received: by 2002:a50:9fa3:: with SMTP id c32mr5776802edf.354.1628610099266; Tue, 10 Aug 2021 08:41:39 -0700 (PDT) X-Google-Smtp-Source: ABdhPJx0IzOxHWgkplQRdYWGtqVM2Y0QPzg0eqeXPK8Q1m3+PEVlKKBL200VG7XoIA5CGhKk80H0Bg== X-Received: by 2002:a50:9fa3:: with SMTP id c32mr5776784edf.354.1628610099016; Tue, 10 Aug 2021 08:41:39 -0700 (PDT) Received: from Keschdeichel.fritz.box ([2001:67c:1560:8007::aac:c4ad]) by smtp.gmail.com with ESMTPSA id b5sm7047320ejq.56.2021.08.10.08.41.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 08:41:38 -0700 (PDT) From: christian.ehrhardt@canonical.com To: Nithin Dabilpuram Cc: dpdk stable Date: Tue, 10 Aug 2021 17:39:04 +0200 Message-Id: <20210810154022.749358-24-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810154022.749358-1-christian.ehrhardt@canonical.com> References: <20210810154022.749358-1-christian.ehrhardt@canonical.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/octeontx2: use runtime LSO format indices' has been queued to stable release 19.11.10 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" 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 --- >From bc88f4ccfedf1d37d011f5ceb17f6cb7f3f983c2 Mon Sep 17 00:00:00 2001 From: Nithin Dabilpuram 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 --- 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)