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 B0E41A0524 for ; Fri, 5 Feb 2021 12:23:11 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A98931606D4; Fri, 5 Feb 2021 12:23:11 +0100 (CET) Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) by mails.dpdk.org (Postfix) with ESMTP id 12C7B4067B for ; Fri, 5 Feb 2021 12:23:10 +0100 (CET) Received: by mail-wm1-f45.google.com with SMTP id o10so7666371wmc.1 for ; Fri, 05 Feb 2021 03:23:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7lebQWhY4B6JiJWTbp31NGN33HdVtON07gQHSXWZoAw=; b=ReQiRnoTlPCeet6bA2epaWHoujv8lcFz4LC93NV0QbqB75QpCuj6kI4Vud6qI2Nxtj opgvKe8Zs8wWmRxJpeIa8WKWSie+8y8nXi5IX/Lh7psEDTBBlwTXc8Oz5eI6zft4U+mu asLnsKFey7fpBYQiUT1YV/mzocKQ9aIFjz+XfynF5hSCN+7/DmhqcmswyBMJzJap2VyS fjvpaliaCHXcY1RVoWe4ZyutlFIbQF1ha50LeSo6zcfwABOh+C2Dj8aoMncdjyQTr7dp 4jYvSIw8l5whtFXcV03jO0dCNvIOMqHl8GwYcsmNYLOMiddStDZ78IfwkHRY07gNHATd 10TA== 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=7lebQWhY4B6JiJWTbp31NGN33HdVtON07gQHSXWZoAw=; b=jW+PN5RsDetnKjUJxNh9tPZEJCk9OP0oIcMmkQ/wgwG5HvDw1i1wXNN8gGEQA16Ukt uRFKDfYNCmfjvW8TT5jCDOdosW7okbiuriYUnbG35V3gf8lg1CvUlQ67t4cVbJDC3kGW r8rDFSGZWtBgIk10vQU77IgBAsjvX91zqJHBpssX3wZZLapM4CxJt2OHumpgPLDP4L/l 63Te492v9be6e8dwAlmWL4h/ShBFsygBu+MW6nW+Aey231kp/UVWfLj3UAqkH8A2awGM v8C/Sf69Ba5ioFWRIUz4++BEZ6VvfIZvg2W6llaVqR0g8yMWxIeZuZI9qeWZggZNsSps 4toA== X-Gm-Message-State: AOAM530Vouz3QgZwy93M7QRHZDb14JF61SLY2Kbe1wQr6EiF7aN0FnLb 4pbGtCPvob8Xtjzhr9spmbc= X-Google-Smtp-Source: ABdhPJwzduyt5RdPiQg9bjRCOyeJHwquDYEi46cjJl7R2Wz5bf/kUjybf4ub2HM1bsGL3P4bjPGWKg== X-Received: by 2002:a05:600c:4f8f:: with SMTP id n15mr3198512wmq.31.1612524189872; Fri, 05 Feb 2021 03:23:09 -0800 (PST) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id t197sm18556116wmt.3.2021.02.05.03.23.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Feb 2021 03:23:09 -0800 (PST) From: luca.boccassi@gmail.com To: Lance Richardson Cc: Ajit Khaparde , Somnath Kotur , dpdk stable Date: Fri, 5 Feb 2021 11:15:56 +0000 Message-Id: <20210205111920.1272063-70-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20210205111920.1272063-1-luca.boccassi@gmail.com> References: <20210205111920.1272063-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/bnxt: fix doorbell write ordering' has been queued to stable release 20.11.1 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 20.11.1 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 02/07/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/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/21d9bef593e7bd47558e9dd54f5057efa1c9f7b4 Thanks. Luca Boccassi --- >From 21d9bef593e7bd47558e9dd54f5057efa1c9f7b4 Mon Sep 17 00:00:00 2001 From: Lance Richardson Date: Mon, 14 Dec 2020 13:56:38 -0500 Subject: [PATCH] net/bnxt: fix doorbell write ordering [ upstream commit 73d1cc96be6a7b49d7d3d79b5a1daa1d94d57956 ] Write completion queue doorbell before receive descriptor doorbell to avoid possibility of completion queue overflow when completion queue size is equal to receive descriptor ring size. Remove unnecessary compiler barriers (db write functions have the necessary barriers.) Fixes: 637e34befd9c ("net/bnxt: optimize Rx processing") Signed-off-by: Lance Richardson Reviewed-by: Ajit Khaparde Reviewed-by: Somnath Kotur --- drivers/net/bnxt/bnxt_rxr.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c index cadc598cf2..c5d23050e6 100644 --- a/drivers/net/bnxt/bnxt_rxr.c +++ b/drivers/net/bnxt/bnxt_rxr.c @@ -907,6 +907,10 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, goto done; } + /* Ring the completion queue doorbell. */ + bnxt_db_cq(cpr); + + /* Ring the receive descriptor doorbell. */ if (prod != rxr->rx_prod) bnxt_db_write(&rxr->rx_db, rxr->rx_prod); @@ -914,8 +918,6 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, if (ag_prod != rxr->ag_prod) bnxt_db_write(&rxr->ag_db, rxr->ag_prod); - bnxt_db_cq(cpr); - /* Attempt to alloc Rx buf in case of a previous allocation failure. */ if (rc == -ENOMEM) { int i = RING_NEXT(rxr->rx_ring_struct, prod); -- 2.29.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-02-05 11:18:32.402716787 +0000 +++ 0070-net-bnxt-fix-doorbell-write-ordering.patch 2021-02-05 11:18:28.838691721 +0000 @@ -1 +1 @@ -From 73d1cc96be6a7b49d7d3d79b5a1daa1d94d57956 Mon Sep 17 00:00:00 2001 +From 21d9bef593e7bd47558e9dd54f5057efa1c9f7b4 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 73d1cc96be6a7b49d7d3d79b5a1daa1d94d57956 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -19,2 +20,2 @@ - drivers/net/bnxt/bnxt_rxr.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) + drivers/net/bnxt/bnxt_rxr.c | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) @@ -23 +24 @@ -index e2d388e69f..ffdeeecc3a 100644 +index cadc598cf2..c5d23050e6 100644 @@ -26 +27 @@ -@@ -917,17 +917,17 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, +@@ -907,6 +907,10 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, @@ -30 +30,0 @@ -- rte_compiler_barrier(); @@ -35,2 +35,2 @@ - if (rx_raw_prod != rxr->rx_raw_prod) - bnxt_db_write(&rxr->rx_db, rxr->rx_raw_prod); + if (prod != rxr->rx_prod) + bnxt_db_write(&rxr->rx_db, rxr->rx_prod); @@ -38,4 +38,3 @@ -- rte_compiler_barrier(); - /* Ring the AGG ring DB */ - if (ag_raw_prod != rxr->ag_raw_prod) - bnxt_db_write(&rxr->ag_db, rxr->ag_raw_prod); +@@ -914,8 +918,6 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, + if (ag_prod != rxr->ag_prod) + bnxt_db_write(&rxr->ag_db, rxr->ag_prod); @@ -47 +46 @@ - int i = RING_NEXT(rx_raw_prod); + int i = RING_NEXT(rxr->rx_ring_struct, prod);