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 75D2CA0C47 for ; Tue, 10 Aug 2021 17:43:00 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6E5104114F; Tue, 10 Aug 2021 17:43:00 +0200 (CEST) Received: from smtp-relay-canonical-0.canonical.com (smtp-relay-canonical-0.canonical.com [185.125.188.120]) by mails.dpdk.org (Postfix) with ESMTP id F41974014F for ; Tue, 10 Aug 2021 17:42:58 +0200 (CEST) Received: from mail-ej1-f72.google.com (mail-ej1-f72.google.com [209.85.218.72]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by smtp-relay-canonical-0.canonical.com (Postfix) with ESMTPS id DB5933F047 for ; Tue, 10 Aug 2021 15:42:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1628610178; bh=4Qiqcfq7NXeNdNKYu9MXT5tZbyoQLu/DVbr5hxfXl1Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=wTdDzqcghxgExCF1bJInOUSZBdBWT1wU9LkWyTtlo0zB96Ei4MlX/3Jve5NsMCKgz 0oHiRAIYOzeVJ6+Xlto+eoDvYqm+qyEe7TFwXPg4+Tts1Rix9lL7adPIbwfneaCV2d rrCOT0eoVHd5/Q/PjlcqYKqgS3FGW763Iwcs8n3jJiIGPR4LmaRUOqUJxx2K+tAIVO 6/KMcwZv3XWRw0ldjZm0gBuBoQdCDmt6waZ65c74Dx1nRRghXrYhUiuDQiEQjr60jo one1lF4Y5fo/NGe/l3cdXoSwAvb4hRPZYwiJignIhsPQ6HS3ZWpzcW5wHfW/5RBE/9 F+Py2eCwLc2lw== Received: by mail-ej1-f72.google.com with SMTP id h17-20020a1709070b11b02905b5ced62193so710252ejl.1 for ; Tue, 10 Aug 2021 08:42:58 -0700 (PDT) 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=4Qiqcfq7NXeNdNKYu9MXT5tZbyoQLu/DVbr5hxfXl1Y=; b=LYhnWcSr2GKEcx06l+aCT3YwV2P93H4h22kWi+UCXG7pPu3Y7T3SOZFH0+XbyAxJCs FNPl7+9+qKGeOzKg2p7htfMIr8xpaajxKOJ34dyVO7M1x3wkR1aSqH2nvo2H0a+DoPwo UHqjBeX+0FMTh3hVkxYHw0vHgW3nkSZGv++sgm+s4DXjIilHBmJHlWK5LVu1X3A1XksW d+rJ36ClLVw50svSG1fJm/5z09Z6qR2nKHRULg+BI96aLQgFFSPz5fnxHkhlfX+Qa+E4 6kekSgNK5+dfvv/5OGG1HBFP8A8+la+rp+XRbs0NS8pcvXmU8etzi5KPaZPXPhk7MfLm 1JiA== X-Gm-Message-State: AOAM530EhW6l+qEyxETTT6BCKVzzIEs2MJ7yyMNpGWgagmXLFkshWpuT LD5RrsY4RhxVrJeBQHs7qUmDzSnG4bYvqs4Lij/EIwIf0yU3Uwno6iFfv+Xa/a8S70uvri+Uobo KlcxDn3GkJCxes4Z2lDHU8cC4 X-Received: by 2002:a17:906:888e:: with SMTP id ak14mr28976826ejc.134.1628610178549; Tue, 10 Aug 2021 08:42:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwrAQEI1d+Cpi6s+7JeCT36KL8dcR2F+2eBqDxC6RlkBuOYgUXOZzzu9ZJ8KIKEPdjdXrZIhQ== X-Received: by 2002:a17:906:888e:: with SMTP id ak14mr28976807ejc.134.1628610178329; Tue, 10 Aug 2021 08:42:58 -0700 (PDT) Received: from Keschdeichel.fritz.box ([2001:67c:1560:8007::aac:c4ad]) by smtp.gmail.com with ESMTPSA id 8sm783795ejy.65.2021.08.10.08.42.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 08:42:57 -0700 (PDT) From: christian.ehrhardt@canonical.com To: Lance Richardson Cc: Ajit Khaparde , dpdk stable Date: Tue, 10 Aug 2021 17:39:30 +0200 Message-Id: <20210810154022.749358-50-christian.ehrhardt@canonical.com> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210810154022.749358-1-christian.ehrhardt@canonical.com> References: <20210810154022.749358-1-christian.ehrhardt@canonical.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 19.11.10 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 19.11.10 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 08/12/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/cpaelzer/dpdk-stable-queue This queued commit can be viewed at: https://github.com/cpaelzer/dpdk-stable-queue/commit/b2af7f5effd596659e41375c1087c0b2ac6836bc Thanks. Christian Ehrhardt --- >From b2af7f5effd596659e41375c1087c0b2ac6836bc 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 a3543e7cea..892f8c1a4c 100644 --- a/drivers/net/bnxt/bnxt_txr.c +++ b/drivers/net/bnxt/bnxt_txr.c @@ -398,30 +398,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; @@ -429,9 +425,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) { bnxt_tx_cmp(txq, nb_tx_pkts); cpr->cp_raw_cons = raw_cons; -- 2.32.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-08-10 15:11:14.960344021 +0200 +++ 0050-net-bnxt-fix-scalar-Tx-completion-handling.patch 2021-08-10 15:11:13.026638158 +0200 @@ -1 +1 @@ -From 2b5a36f4df0c00407117ed6f8f9444dd943b4f4c Mon Sep 17 00:00:00 2001 +From b2af7f5effd596659e41375c1087c0b2ac6836bc 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 a3543e7cea..892f8c1a4c 100644 @@ -25 +26 @@ -@@ -444,30 +444,26 @@ static void bnxt_tx_cmp(struct bnxt_tx_queue *txq, int nr_pkts) +@@ -398,30 +398,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) +@@ -429,9 +425,11 @@ static int bnxt_handle_tx_cp(struct bnxt_tx_queue *txq) @@ -75,2 +76,2 @@ - if (txq->offloads & DEV_TX_OFFLOAD_MBUF_FAST_FREE) - bnxt_tx_cmp_fast(txq, nb_tx_pkts); + bnxt_tx_cmp(txq, nb_tx_pkts); + cpr->cp_raw_cons = raw_cons;