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 E45D3A0C47 for ; Tue, 10 Aug 2021 17:41:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DA7054114F; Tue, 10 Aug 2021 17:41:39 +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 A0E0F4114F for ; Tue, 10 Aug 2021 17:41:38 +0200 (CEST) Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) (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 87FB73F0A1 for ; Tue, 10 Aug 2021 15:41:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com; s=20210705; t=1628610098; bh=m+pfQsDbw0qec4MTL4FpNf+2SSl2cq7Tf/HkxoPbnwg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=G5HmKfL5qbi6Cgg0gRkx1QGTkXa6ZDy0SarCjRH2sFVzd4+bHFkZN+uByOEZkYGEM UXKcxNKJkAuuKTeVt/spE9UE3RfGqRLlfwYF09pHlDtscdkQp1MhElXzxeE6wOFTh9 mucXyORU3mabbq4s0t7qmSOe/N7XSuzjoIem98eY9HJGpLqCvYehC5Us1bG43khjCl HgqQZdkmWdlSTPxUo3p4tVn2+9WF14um/lREvyu6TyzFgWCCEbnWwzGXawyXXwuy+i wZM7iDdi8vDcJ5IbcmUBt81a5ma6gz8E2GYPfdN2x+NW/hNNPww9AxCl9JVDgj0h23 rPQ1V66MdjV3g== Received: by mail-ed1-f70.google.com with SMTP id b16-20020a0564022790b02903be6352006cso3748243ede.15 for ; Tue, 10 Aug 2021 08:41:38 -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=m+pfQsDbw0qec4MTL4FpNf+2SSl2cq7Tf/HkxoPbnwg=; b=RxI74GJkes78dynQwlN8RefrhudOsi5YrWCvkkI4sCAcNiz9iceQRi0z4KxnFLVYd8 03Jt8AdBEkNPgv0wTHYlogIEe6vbAKlzmYenrhgSDTqvbhu3eruZ6pHhIRzf3DxwD4rK D7PvfQcaHk7QiXDAQgfgyYGiqGtoKLVLnwTyyMsm+9kZ6Bipgb5BHo6H5bbqNdqEvOAQ C1fC53J6+h+0zrQRj0YJ2kKgIVpixUY2gb6Ha/3rY/CqJXGy3EU+sspdel0gtDDDwgEp LOeM+z640BLwnEF8Hw5kGlwWuD2rLm4AuhB6jcRo4RvOPb4mlN8416maCp/WLHaBkIYv jkYg== X-Gm-Message-State: AOAM531QnkjdP4ag/Ec82FUdpfr67T07SibQwMzo0edERQX9q1pteRD7 AnBH6RyR8WPPn38Yt6KIqjxND4aAGgyGHCLDa8Uyniu/2dsDE3N5zw8NGhEo0OBy0dwQqalSX5A T6TeW3YRan1kzfbHo2HJZ86RC X-Received: by 2002:a17:906:4751:: with SMTP id j17mr28895471ejs.39.1628610098266; Tue, 10 Aug 2021 08:41:38 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy4XakT8tXEoJXDlR4DYnzpNZuVqCiMu1JRUiByMg3zVrB3C34LO9VhYaQ+WjGDIY1DgGTEOQ== X-Received: by 2002:a17:906:4751:: with SMTP id j17mr28895458ejs.39.1628610098101; Tue, 10 Aug 2021 08:41:38 -0700 (PDT) Received: from Keschdeichel.fritz.box ([2001:67c:1560:8007::aac:c4ad]) by smtp.gmail.com with ESMTPSA id b5sm7047320ejq.56.2021.08.10.08.41.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Aug 2021 08:41:37 -0700 (PDT) From: christian.ehrhardt@canonical.com To: Satheesh Paul Cc: Jerin Jacob , dpdk stable Date: Tue, 10 Aug 2021 17:39:03 +0200 Message-Id: <20210810154022.749358-23-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/octeontx2: fix flow creation limit on CN98xx' 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/65a9e807b302fc3842bde7684c20449fa9b16281 Thanks. Christian Ehrhardt --- >From 65a9e807b302fc3842bde7684c20449fa9b16281 Mon Sep 17 00:00:00 2001 From: Satheesh Paul Date: Tue, 1 Jun 2021 15:55:51 +0530 Subject: [PATCH] net/octeontx2: fix flow creation limit on CN98xx [ upstream commit b65db6a879bd09799b96aed09a49458ae1b3644b ] CN96xx and CN98xx have 4096 and 16384 MCAM entries respectively. Aligning the code with the same numbers. Fixes: 092b3834185 ("net/octeontx2: add flow init and fini") Signed-off-by: Satheesh Paul Acked-by: Jerin Jacob --- drivers/common/octeontx2/otx2_dev.h | 3 +++ drivers/net/octeontx2/otx2_flow.c | 16 ++++++++++++++-- drivers/net/octeontx2/otx2_flow.h | 1 - 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/drivers/common/octeontx2/otx2_dev.h b/drivers/common/octeontx2/otx2_dev.h index 7d9839c334..61d8ff6e41 100644 --- a/drivers/common/octeontx2/otx2_dev.h +++ b/drivers/common/octeontx2/otx2_dev.h @@ -46,6 +46,9 @@ ((RVU_PCI_REV_MAJOR(otx2_dev_revid(dev)) == 0x0) && \ (RVU_PCI_REV_MIDR_ID(otx2_dev_revid(dev)) == 0x0)) +#define otx2_dev_is_98xx(dev) \ + (RVU_PCI_REV_MIDR_ID(otx2_dev_revid(dev)) == 0x3) + struct otx2_dev; /* Link status callback */ diff --git a/drivers/net/octeontx2/otx2_flow.c b/drivers/net/octeontx2/otx2_flow.c index c9886c9705..0930244da4 100644 --- a/drivers/net/octeontx2/otx2_flow.c +++ b/drivers/net/octeontx2/otx2_flow.c @@ -810,12 +810,23 @@ done: return rc; } +#define OTX2_MCAM_TOT_ENTRIES_96XX (4096) +#define OTX2_MCAM_TOT_ENTRIES_98XX (16384) + +static int otx2_mcam_tot_entries(struct otx2_eth_dev *dev) +{ + if (otx2_dev_is_98xx(dev)) + return OTX2_MCAM_TOT_ENTRIES_98XX; + else + return OTX2_MCAM_TOT_ENTRIES_96XX; +} + int otx2_flow_init(struct otx2_eth_dev *hw) { uint8_t *mem = NULL, *nix_mem = NULL, *npc_mem = NULL; struct otx2_npc_flow_info *npc = &hw->npc_flow; - uint32_t bmap_sz; + uint32_t bmap_sz, tot_mcam_entries = 0; int rc = 0, idx; rc = flow_fetch_kex_cfg(hw); @@ -826,7 +837,8 @@ otx2_flow_init(struct otx2_eth_dev *hw) rte_atomic32_init(&npc->mark_actions); - npc->mcam_entries = NPC_MCAM_TOT_ENTRIES >> npc->keyw[NPC_MCAM_RX]; + tot_mcam_entries = otx2_mcam_tot_entries(hw); + npc->mcam_entries = tot_mcam_entries >> npc->keyw[NPC_MCAM_RX]; /* Free, free_rev, live and live_rev entries */ bmap_sz = rte_bitmap_get_memory_footprint(npc->mcam_entries); mem = rte_zmalloc(NULL, 4 * bmap_sz * npc->flow_max_priority, diff --git a/drivers/net/octeontx2/otx2_flow.h b/drivers/net/octeontx2/otx2_flow.h index df78f41d3b..e618664ca7 100644 --- a/drivers/net/octeontx2/otx2_flow.h +++ b/drivers/net/octeontx2/otx2_flow.h @@ -34,7 +34,6 @@ enum { /* 32 bytes from LDATA_CFG & 32 bytes from FLAGS_CFG */ #define NPC_MAX_EXTRACT_DATA_LEN (64) #define NPC_LDATA_LFLAG_LEN (16) -#define NPC_MCAM_TOT_ENTRIES (4096) #define NPC_MAX_KEY_NIBBLES (31) /* Nibble offsets */ #define NPC_LAYER_KEYX_SZ (3) -- 2.32.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-08-10 15:11:13.964653538 +0200 +++ 0023-net-octeontx2-fix-flow-creation-limit-on-CN98xx.patch 2021-08-10 15:11:12.926637435 +0200 @@ -1 +1 @@ -From b65db6a879bd09799b96aed09a49458ae1b3644b Mon Sep 17 00:00:00 2001 +From 65a9e807b302fc3842bde7684c20449fa9b16281 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit b65db6a879bd09799b96aed09a49458ae1b3644b ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -21 +22 @@ -index cd4fe517db..9d8dcca791 100644 +index 7d9839c334..61d8ff6e41 100644 @@ -24,2 +25,2 @@ -@@ -55,6 +55,9 @@ - (RVU_PCI_REV_MINOR(otx2_dev_revid(dev)) == 0x0) && \ +@@ -46,6 +46,9 @@ + ((RVU_PCI_REV_MAJOR(otx2_dev_revid(dev)) == 0x0) && \ @@ -35 +36 @@ -index 1c90d753ff..6df0732189 100644 +index c9886c9705..0930244da4 100644 @@ -38 +39 @@ -@@ -1003,12 +1003,23 @@ done: +@@ -810,12 +810,23 @@ done: @@ -63 +64,2 @@ -@@ -1020,7 +1031,8 @@ otx2_flow_init(struct otx2_eth_dev *hw) +@@ -826,7 +837,8 @@ otx2_flow_init(struct otx2_eth_dev *hw) + @@ -65 +66,0 @@ - npc->vtag_actions = 0; @@ -74 +75 @@ -index 82a5064d90..790e6ef1e8 100644 +index df78f41d3b..e618664ca7 100644 @@ -77 +78 @@ -@@ -35,7 +35,6 @@ enum { +@@ -34,7 +34,6 @@ enum {