From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id C8754A00E6 for ; Tue, 16 Apr 2019 16:38:02 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id B9FB01B4D3; Tue, 16 Apr 2019 16:38:02 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 008371B4EB for ; Tue, 16 Apr 2019 16:38:01 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 626C5309266F; Tue, 16 Apr 2019 14:38:00 +0000 (UTC) Received: from rh.redhat.com (ovpn-117-214.ams2.redhat.com [10.36.117.214]) by smtp.corp.redhat.com (Postfix) with ESMTP id 71BC31001E92; Tue, 16 Apr 2019 14:37:59 +0000 (UTC) From: Kevin Traynor To: Shahed Shaikh Cc: Rasesh Mody , dpdk stable Date: Tue, 16 Apr 2019 15:36:36 +0100 Message-Id: <20190416143719.21601-18-ktraynor@redhat.com> In-Reply-To: <20190416143719.21601-1-ktraynor@redhat.com> References: <20190416143719.21601-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.43]); Tue, 16 Apr 2019 14:38:00 +0000 (UTC) Subject: [dpdk-stable] patch 'net/qede: fix Rx packet drop' has been queued to LTS release 18.11.2 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 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 LTS release 18.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 04/24/19. 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. Kevin Traynor --- >From d3e0551d9042d4778093f9f0e7a5a1f2fa481e4c Mon Sep 17 00:00:00 2001 From: Shahed Shaikh Date: Tue, 12 Mar 2019 09:51:14 -0700 Subject: [PATCH] net/qede: fix Rx packet drop [ upstream commit 3732f83a45f5ee7b45d7655a15150f665841ce53 ] There is a corner case in which driver won't post receive buffers when driver has processed all received packets in single loop (i.e. hw_consumer == sw_consumer) and then HW will start dropping packets since it did not see new receive buffers posted. This corner case is seen when size of Rx ring is less than or equals Rx packet burst count for dev->rx_pkt_burst(). Fixes: 8f2312474529 ("net/qede: fix performance bottleneck in Rx path") Signed-off-by: Shahed Shaikh Acked-by: Rasesh Mody --- drivers/net/qede/qede_rxtx.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c index 70c32e3fc..27bac0995 100644 --- a/drivers/net/qede/qede_rxtx.c +++ b/drivers/net/qede/qede_rxtx.c @@ -1421,11 +1421,4 @@ qede_recv_pkts(void *p_rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) int rx_alloc_count = 0; - hw_comp_cons = rte_le_to_cpu_16(*rxq->hw_cons_ptr); - sw_comp_cons = ecore_chain_get_cons_idx(&rxq->rx_comp_ring); - - rte_rmb(); - - if (hw_comp_cons == sw_comp_cons) - return 0; /* Allocate buffers that we used in previous loop */ @@ -1448,4 +1441,12 @@ qede_recv_pkts(void *p_rxq, struct rte_mbuf **rx_pkts, uint16_t nb_pkts) } + hw_comp_cons = rte_le_to_cpu_16(*rxq->hw_cons_ptr); + sw_comp_cons = ecore_chain_get_cons_idx(&rxq->rx_comp_ring); + + rte_rmb(); + + if (hw_comp_cons == sw_comp_cons) + return 0; + while (sw_comp_cons != hw_comp_cons) { ol_flags = 0; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-04-16 15:34:26.029828320 +0100 +++ 0018-net-qede-fix-Rx-packet-drop.patch 2019-04-16 15:34:25.163180327 +0100 @@ -1,8 +1,10 @@ -From 3732f83a45f5ee7b45d7655a15150f665841ce53 Mon Sep 17 00:00:00 2001 +From d3e0551d9042d4778093f9f0e7a5a1f2fa481e4c Mon Sep 17 00:00:00 2001 From: Shahed Shaikh Date: Tue, 12 Mar 2019 09:51:14 -0700 Subject: [PATCH] net/qede: fix Rx packet drop +[ upstream commit 3732f83a45f5ee7b45d7655a15150f665841ce53 ] + There is a corner case in which driver won't post receive buffers when driver has processed all received packets in single loop (i.e. hw_consumer == sw_consumer) and then @@ -13,7 +15,6 @@ Rx packet burst count for dev->rx_pkt_burst(). Fixes: 8f2312474529 ("net/qede: fix performance bottleneck in Rx path") -Cc: stable@dpdk.org Signed-off-by: Shahed Shaikh Acked-by: Rasesh Mody