From patchwork Mon Apr 19 07:58:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wenzhuo Lu X-Patchwork-Id: 91730 X-Patchwork-Delegate: qi.z.zhang@intel.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6FC27A0547; Mon, 19 Apr 2021 09:58:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1D43D40683; Mon, 19 Apr 2021 09:58:52 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by mails.dpdk.org (Postfix) with ESMTP id 2208D40040; Mon, 19 Apr 2021 09:58:50 +0200 (CEST) IronPort-SDR: +HVohNFCOXq1tKLi/H5kIEHVDZ00ikLaMK6YHOZ4DSAN8d211eEshVhMuDTQwGXElhH/ycoXdt Jub6KRmKlsgw== X-IronPort-AV: E=McAfee;i="6200,9189,9958"; a="174774798" X-IronPort-AV: E=Sophos;i="5.82,233,1613462400"; d="scan'208";a="174774798" Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Apr 2021 00:58:45 -0700 IronPort-SDR: iMMfv/TwmfHKqB0bgdwO6A7UYrf5O7JTAfOHRRN7zAZWWvMo/R2t0yOwbMyYk7QnmJT9lb1OLc nndzpkD50vLw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.82,233,1613462400"; d="scan'208";a="454204040" Received: from dpdk-wenzhuo-haswell.sh.intel.com ([10.67.111.137]) by fmsmga002.fm.intel.com with ESMTP; 19 Apr 2021 00:58:44 -0700 From: Wenzhuo Lu To: dev@dpdk.org Cc: Wenzhuo Lu , stable@dpdk.org Date: Mon, 19 Apr 2021 15:58:36 +0800 Message-Id: <1618819116-72683-1-git-send-email-wenzhuo.lu@intel.com> X-Mailer: git-send-email 1.9.3 Subject: [dpdk-dev] [PATCH] net/i40e: fix potential Tx hang X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" Tx hang may happen if there's no memory barrier. Fixes: b4669bb95038 ("i40e: add vector Tx") Fixes: aed68d5b0e81 ("net/i40e: add AVX2 Tx function") Fixes: e6a6a138919f ("net/i40e: add AVX512 vector path") Cc: stable@dpdk.org Reported-by: Tao Yang Signed-off-by: Wenzhuo Lu --- drivers/net/i40e/i40e_rxtx_vec_avx2.c | 1 + drivers/net/i40e/i40e_rxtx_vec_avx512.c | 1 + drivers/net/i40e/i40e_rxtx_vec_sse.c | 1 + 3 files changed, 3 insertions(+) diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c index 3b9eef9..a06813c 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c +++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c @@ -816,6 +816,7 @@ txq->tx_tail = tx_id; + rte_io_wmb(); I40E_PCI_REG_WC_WRITE(txq->qtx_tail, txq->tx_tail); return nb_pkts; diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx512.c b/drivers/net/i40e/i40e_rxtx_vec_avx512.c index bd21d64..2f0915e 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_avx512.c +++ b/drivers/net/i40e/i40e_rxtx_vec_avx512.c @@ -1111,6 +1111,7 @@ txq->tx_tail = tx_id; + rte_io_wmb(); I40E_PCI_REG_WC_WRITE(txq->qtx_tail, txq->tx_tail); return nb_pkts; diff --git a/drivers/net/i40e/i40e_rxtx_vec_sse.c b/drivers/net/i40e/i40e_rxtx_vec_sse.c index bfa5aff..b37bc71 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_sse.c +++ b/drivers/net/i40e/i40e_rxtx_vec_sse.c @@ -759,6 +759,7 @@ txq->tx_tail = tx_id; + rte_io_wmb(); I40E_PCI_REG_WC_WRITE(txq->qtx_tail, txq->tx_tail); return nb_pkts;