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 A1A30A0C4C for ; Mon, 12 Jul 2021 15:14:48 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9AE1840685; Mon, 12 Jul 2021 15:14:48 +0200 (CEST) Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) by mails.dpdk.org (Postfix) with ESMTP id 48D7C406B4 for ; Mon, 12 Jul 2021 15:14:45 +0200 (CEST) Received: by mail-wr1-f48.google.com with SMTP id f17so25576424wrt.6 for ; Mon, 12 Jul 2021 06:14:45 -0700 (PDT) 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=yddq9og1Yf0P0jyBs1gQPXgFRmVC1ai62rTpksokzuM=; b=T0SZBqdp350MhXlBWQIf0CYlQZIFcuUbHyrrOF3QdR0AAKbryzustW5SJ0bEdnW3/Z DORGj+5HiLPMtblRcSGp61DzXRCifSKK+ch/deOHDTldK0nDC/sP1MmVl+Y7PYNCc9VW CiPUWGarlqGWb9hbola/n4qa8ftl5nOP3DbSchMbyhZy4S7HPcH0+VRzYlQPEvDid4du OyA/VR7peZ6gE0WQFmpyYITh2O70JQU6dTXaF2KtLu3FifWcP2FO4cszmpnhT3iSaVd2 X5sSGWhkAQnniD7jUQQyFlozCJkKb0UaghHc8VfKbokLpMgMLQqS+zDTXYEDC8GeKajZ noCg== 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=yddq9og1Yf0P0jyBs1gQPXgFRmVC1ai62rTpksokzuM=; b=mmUNsSMsSTh37wpG5AJTcEuTIOPHwZBdciaiu/bR2kas/NFmQ4YHH8m3P/0yQrhUzV uNMj/x2UNZovhA9X1A8OOdYHCr5TxSLUQAWPQc7TGvegMOy8l/rKrJjdRVB2jPDyeKvA Ki5SDKZrSJSqMLwRkhTR57eg9mR2/k2yy98MsGc/vLRgAnCTHN+tMRKvtmo82H5eSUMT jlhH3wBZ31rCqcNBD7YLgXqBAiDNEXYX4tUFhVYoQ+rYwgqtaCI0fOpHzE2RiJUsesC8 HWz1OTd/aOZAf5Fh6NUIs6Y4Y/lh71RmmgOHTqeE6+GnasbdXCeN/plijGZGpH+q99/Y JJgQ== X-Gm-Message-State: AOAM533fCamDrxPQUxResCl+qAzRoi6vmafrAZTorH2p9/fOuyhGL3je MFjsSabeAOZgSHn6bdC0pMo= X-Google-Smtp-Source: ABdhPJyfn9BeZPG8UeG1akZV3G2ovL5CPAKmLtGTSfvrYLqk0VmMA/gW4k/vbedZKAQ818P3tVJ2MQ== X-Received: by 2002:adf:ce10:: with SMTP id p16mr20089713wrn.205.1626095685045; Mon, 12 Jul 2021 06:14:45 -0700 (PDT) Received: from localhost ([137.220.125.106]) by smtp.gmail.com with ESMTPSA id 204sm12940191wma.30.2021.07.12.06.14.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 12 Jul 2021 06:14:44 -0700 (PDT) From: luca.boccassi@gmail.com To: Lance Richardson Cc: Ajit Khaparde , dpdk stable Date: Mon, 12 Jul 2021 14:05:25 +0100 Message-Id: <20210712130551.2462159-90-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210712130551.2462159-1-luca.boccassi@gmail.com> References: <20210712130551.2462159-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/bnxt: fix scalar Tx completion handling' has been queued to stable release 20.11.3 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.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 07/14/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/ea63b9f5ca7c1860f52cc5154059a7988a2777a3 Thanks. Luca Boccassi --- >From ea63b9f5ca7c1860f52cc5154059a7988a2777a3 Mon Sep 17 00:00:00 2001 From: Lance Richardson Date: Wed, 16 Jun 2021 13:55:22 -0400 Subject: [PATCH] net/bnxt: fix scalar Tx completion handling [ upstream commit 2b5a36f4df0c00407117ed6f8f9444dd943b4f4c ] Preserve the raw (unmasked) transmit completion ring consumer index. Remove cache prefetches that have no measurable performance benefit. Fixes: c7de4195cc4c ("net/bnxt: modify ring index logic") Signed-off-by: Lance Richardson Reviewed-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_txr.c | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c index 0cf6ece786..412bc59f3b 100644 --- a/drivers/net/bnxt/bnxt_txr.c +++ b/drivers/net/bnxt/bnxt_txr.c @@ -427,30 +427,26 @@ static void bnxt_tx_cmp(struct bnxt_tx_queue *txq, int nr_pkts) static int bnxt_handle_tx_cp(struct bnxt_tx_queue *txq) { + uint32_t nb_tx_pkts = 0, cons, ring_mask, opaque; struct bnxt_cp_ring_info *cpr = txq->cp_ring; uint32_t raw_cons = cpr->cp_raw_cons; - uint32_t cons; - uint32_t nb_tx_pkts = 0; + struct bnxt_ring *cp_ring_struct; struct tx_cmpl *txcmp; - struct cmpl_base *cp_desc_ring = cpr->cp_desc_ring; - struct bnxt_ring *cp_ring_struct = cpr->cp_ring_struct; - uint32_t ring_mask = cp_ring_struct->ring_mask; - uint32_t opaque = 0; if (bnxt_tx_bds_in_hw(txq) < txq->tx_free_thresh) return 0; + cp_ring_struct = cpr->cp_ring_struct; + ring_mask = cp_ring_struct->ring_mask; + do { cons = RING_CMPL(ring_mask, raw_cons); txcmp = (struct tx_cmpl *)&cpr->cp_desc_ring[cons]; - rte_prefetch_non_temporal(&cp_desc_ring[(cons + 2) & - ring_mask]); - if (!CMPL_VALID(txcmp, cpr->valid)) + if (!CMP_VALID(txcmp, raw_cons, cp_ring_struct)) break; - opaque = rte_cpu_to_le_32(txcmp->opaque); - NEXT_CMPL(cpr, cons, cpr->valid, 1); - rte_prefetch0(&cp_desc_ring[cons]); + + opaque = rte_le_to_cpu_32(txcmp->opaque); if (CMP_TYPE(txcmp) == TX_CMPL_TYPE_TX_L2) nb_tx_pkts += opaque; @@ -458,9 +454,11 @@ static int bnxt_handle_tx_cp(struct bnxt_tx_queue *txq) RTE_LOG_DP(ERR, PMD, "Unhandled CMP type %02x\n", CMP_TYPE(txcmp)); - raw_cons = cons; + raw_cons = NEXT_RAW_CMP(raw_cons); } while (nb_tx_pkts < ring_mask); + cpr->valid = !!(raw_cons & cp_ring_struct->ring_size); + if (nb_tx_pkts) { if (txq->offloads & DEV_TX_OFFLOAD_MBUF_FAST_FREE) bnxt_tx_cmp_fast(txq, nb_tx_pkts); -- 2.30.2 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-07-12 13:41:41.250783611 +0100 +++ 0090-net-bnxt-fix-scalar-Tx-completion-handling.patch 2021-07-12 13:41:36.762128276 +0100 @@ -1 +1 @@ -From 2b5a36f4df0c00407117ed6f8f9444dd943b4f4c Mon Sep 17 00:00:00 2001 +From ea63b9f5ca7c1860f52cc5154059a7988a2777a3 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 2b5a36f4df0c00407117ed6f8f9444dd943b4f4c ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index 27459960de..54eaab34a0 100644 +index 0cf6ece786..412bc59f3b 100644 @@ -25 +26 @@ -@@ -444,30 +444,26 @@ static void bnxt_tx_cmp(struct bnxt_tx_queue *txq, int nr_pkts) +@@ -427,30 +427,26 @@ static void bnxt_tx_cmp(struct bnxt_tx_queue *txq, int nr_pkts) @@ -64 +65 @@ -@@ -475,9 +471,11 @@ static int bnxt_handle_tx_cp(struct bnxt_tx_queue *txq) +@@ -458,9 +454,11 @@ static int bnxt_handle_tx_cp(struct bnxt_tx_queue *txq)