From patchwork Fri Jul 31 05:59:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Haiyue" X-Patchwork-Id: 75093 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 65218A053E; Fri, 31 Jul 2020 08:09:07 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 36F031BFDC; Fri, 31 Jul 2020 08:09:06 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id BDEB7A69; Fri, 31 Jul 2020 08:09:03 +0200 (CEST) IronPort-SDR: XrMbBvtS14pqlPFP0+AJse/3W4Hof0iKrMRA2r+xzBmwYd7sHv0Ei3YvS1mDSjIUbWIxSnRhbk d+sOm94Bdyww== X-IronPort-AV: E=McAfee;i="6000,8403,9698"; a="213268763" X-IronPort-AV: E=Sophos;i="5.75,417,1589266800"; d="scan'208";a="213268763" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Jul 2020 23:09:02 -0700 IronPort-SDR: 3cVWPQDIsaNoUHiS8fyTkHSd76bRtPdHvNF14yDgZ5DPMSNEB3Lpn3xmt9UqPxlXhHywj9sdiL WnOs/UQDFFBg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,417,1589266800"; d="scan'208";a="330975256" Received: from npg-dpdk-haiyue-3.sh.intel.com ([10.67.118.199]) by orsmga007.jf.intel.com with ESMTP; 30 Jul 2020 23:08:59 -0700 From: Haiyue Wang To: dev@dpdk.org, qiming.yang@intel.com, qi.z.zhang@intel.com Cc: ting.xu@intel.com, chenmin.sun@intel.com, yinan.wang@intel.com, Haiyue Wang , stable@dpdk.org Date: Fri, 31 Jul 2020 13:59:40 +0800 Message-Id: <20200731055940.261825-1-haiyue.wang@intel.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v1] net/ice: revert the TSO fake fix X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The two fixes are not the real root cause for MDD event, it mitigates the failure rate when different test mode, so revert them. Fixes: 2a0c9ae4f646 ("net/ice: fix TCP checksum offload") Fixes: 7365a3cee51f ("net/ice: calculate TCP header size for offload") Cc: stable@dpdk.org Signed-off-by: Haiyue Wang Acked-by: Qi zhang --- drivers/net/ice/ice_rxtx.c | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/drivers/net/ice/ice_rxtx.c b/drivers/net/ice/ice_rxtx.c index b83c5c8629..2e1f06d2c0 100644 --- a/drivers/net/ice/ice_rxtx.c +++ b/drivers/net/ice/ice_rxtx.c @@ -2234,7 +2234,7 @@ ice_txd_enable_checksum(uint64_t ol_flags, switch (ol_flags & PKT_TX_L4_MASK) { case PKT_TX_TCP_CKSUM: *td_cmd |= ICE_TX_DESC_CMD_L4T_EOFT_TCP; - *td_offset |= (tx_offload.l4_len >> 2) << + *td_offset |= (sizeof(struct rte_tcp_hdr) >> 2) << ICE_TX_DESC_LEN_L4_LEN_S; break; case PKT_TX_SCTP_CKSUM: @@ -2371,28 +2371,6 @@ ice_calc_pkt_desc(struct rte_mbuf *tx_pkt) return count; } -/* Calculate TCP header length for PKT_TX_TCP_CKSUM if not provided */ -static inline uint16_t -ice_calc_pkt_tcp_hdr(struct rte_mbuf *tx_pkt, union ice_tx_offload tx_offload) -{ - uint16_t tcpoff = tx_offload.l2_len + tx_offload.l3_len; - const struct rte_tcp_hdr *tcp_hdr; - struct rte_tcp_hdr _tcp_hdr; - - if (tcpoff + sizeof(struct rte_tcp_hdr) < tx_pkt->data_len) { - tcp_hdr = rte_pktmbuf_mtod_offset(tx_pkt, struct rte_tcp_hdr *, - tcpoff); - - return (tcp_hdr->data_off & 0xf0) >> 2; - } - - tcp_hdr = rte_pktmbuf_read(tx_pkt, tcpoff, sizeof(_tcp_hdr), &_tcp_hdr); - if (tcp_hdr) - return (tcp_hdr->data_off & 0xf0) >> 2; - else - return 0; -} - uint16_t ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) { @@ -2491,15 +2469,9 @@ ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts) &cd_tunneling_params); /* Enable checksum offloading */ - if (ol_flags & ICE_TX_CKSUM_OFFLOAD_MASK) { - if ((ol_flags & PKT_TX_L4_MASK) == PKT_TX_TCP_CKSUM && - !tx_offload.l4_len) - tx_offload.l4_len = - ice_calc_pkt_tcp_hdr(tx_pkt, tx_offload); - + if (ol_flags & ICE_TX_CKSUM_OFFLOAD_MASK) ice_txd_enable_checksum(ol_flags, &td_cmd, &td_offset, tx_offload); - } if (nb_ctx) { /* Setup TX context descriptor if required */