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 9978844172; Thu, 6 Jun 2024 11:56:00 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 89E8040EE3; Thu, 6 Jun 2024 11:56:00 +0200 (CEST) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2063.outbound.protection.outlook.com [40.107.94.63]) by mails.dpdk.org (Postfix) with ESMTP id D8B8740ED9 for ; Thu, 6 Jun 2024 11:55:56 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZV9j0sstR+9PxjtNZSqBqTUJk0ewmIIFxEc3wFQQpt9wxwWwqERA9N+fmTAR4NNZ4cGRiu2oC48UgRxtLQYZGEoyYYhKP3MgnK96u/N4R9DZfIfHkbAsM/TORXTuc9/IujxEZXFe8ha9G3gFRfLfeXECSZIePV39lnDx3HrTXlxpB5h4E9ER1razOj+RcBuiBxd6WXkADWthm9StTUGON0sY5FCjl7bUBPqcLeN2Z40DstoNrmB6VlDMQtarcwmXZmDaCTXfvHhsojTvqyvifWBp3TFJoxRJTCZV+qaeXm601W4Xt5aSKqWdkf4XwtKpPEKT0f2AYpqsl1m5z6BXzA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=wHtx46qWGzo1XX6AfewqbBQVoVdU2LAoeLHRCtF7jrE=; b=T8JoG+vfldhzPZCYTqNHPNfYVxOiHY6VSUrEiyw3nmpmiFS8yuPQ1OkKJ2S1qjzwoybW8m0TUxRdrLHyS+CjCBcLne9ztnZCCf5KncBvg3RPKLGN/7yVKpTRfPkQvqWr/N/hQjoc9i0oYCubDpzsL1njH3eee5Vv9cuf+EfTbHGY0//F/ptYQRts2fIZXpkNJZJ6ZdXPhXCcpIl4nGBo5eAUtU+N6+HRZlPDBaXF3Jii0TFI5CzKutBPo2GHNnYgMOq9xSeqv+ZS8Ue2n+xwaawNaN8MFvRTa9GIZ2LTDOJVOqfUWotbeIgIQo0x0s0aPDiefRchiKOpZe/PwdQrGQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=wHtx46qWGzo1XX6AfewqbBQVoVdU2LAoeLHRCtF7jrE=; b=l7qMCfUnd43EVriPs0Pl6hdxIoqeN+3u2BUrfOSBO2qJJ/u/rfise5DdDIGCV4p91BK9zpWL/rPTvouiZW4l1CJ6Mh+JtYM9UkxaPUH+D8txYDT3uiR4svbkZwgcDYebSwbIuiipSdU+z1xSvkfBAv5MlrcayQun8YHYAxhBgmea+caCjdl1Tq+w36vNogc5JrdSXhQdfpn1AV00EGieHdMlrKP51kDUAwJyvfezIV91kj2rT8Qq/SqaIlTsLij7Y4s8gVbDTdSKv33HJ5qGtHRbrUB1QEE1QMBwoiCajoUtYVwyxsAyl8zQnjOFnHHjyyP6ZUM6Mww6iYm5iMvQyw== Received: from CH5P221CA0005.NAMP221.PROD.OUTLOOK.COM (2603:10b6:610:1f2::29) by MN0PR12MB5882.namprd12.prod.outlook.com (2603:10b6:208:37a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.24; Thu, 6 Jun 2024 09:55:54 +0000 Received: from CH1PEPF0000A347.namprd04.prod.outlook.com (2603:10b6:610:1f2:cafe::7) by CH5P221CA0005.outlook.office365.com (2603:10b6:610:1f2::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7656.21 via Frontend Transport; Thu, 6 Jun 2024 09:55:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by CH1PEPF0000A347.mail.protection.outlook.com (10.167.244.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.15 via Frontend Transport; Thu, 6 Jun 2024 09:55:54 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 6 Jun 2024 02:55:40 -0700 Received: from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 6 Jun 2024 02:55:39 -0700 Received: from nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4 via Frontend Transport; Thu, 6 Jun 2024 02:55:37 -0700 From: Maayan Kashani To: CC: , , , Yevgeny Kliteynik , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad Subject: [PATCH v4 2/7] net/mlx5/hws: bwc - make burst threshold dynamic Date: Thu, 6 Jun 2024 12:55:10 +0300 Message-ID: <20240606095515.171170-3-mkashani@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20240606095515.171170-1-mkashani@nvidia.com> References: <20240603105635.11124-1-mkashani@nvidia.com> <20240606095515.171170-1-mkashani@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000A347:EE_|MN0PR12MB5882:EE_ X-MS-Office365-Filtering-Correlation-Id: 90d38276-01fa-47e6-3667-08dc860edb02 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|82310400017|36860700004|1800799015|376005; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?vrLd6FkpgTQCTrx15rEouP5Tn2XktQBThNO9gvSZhO8Kq6LHSdQ4r4+TmjiM?= =?us-ascii?Q?ihxkAZJ8o7VfgYebFSUb5CpdGjNObiySZEKkNfMRaJV2WakXpJBIFgKfG0/Z?= =?us-ascii?Q?bPXvlstXGdWIJ+kT+YO1jfOesuvWTWOSmENwoR1w9qA24egUIudqi2waFlrs?= =?us-ascii?Q?70htY5y3j76jehQJukFsWieDDBbUYmPOIYYIOhUJNeuy7ksbKi94hyh64Oh6?= =?us-ascii?Q?lRHXZYd3tCsKhPpMxJ6VtVkvqY0r8AasJ4bkMGbcSfmDeFoJ3NC1De8pTqqy?= =?us-ascii?Q?IZD2AdTX69EaEkunocpwm3FxzftsQ3JsSnv+Ns36Wwc++/epATaa/GXxQ07X?= =?us-ascii?Q?aseXS2tphw7O6OWEdB3ftuVR+wSv3VMVS+QMPSV6YuT2CfUTJOio2fhA8T0V?= =?us-ascii?Q?Vo4fcbcbwyxClZuhTsK6cAPqwQRwgvASXnVMDcZyt2OUplUjnCekAPiHVnNN?= =?us-ascii?Q?wWV/ya7hhjENueTfVGe35kA/y/CONIjbO3RZK5Qw9crDxEprCabx1O0/NhXv?= =?us-ascii?Q?9252tqAdCg0ibOmKKdSafUE9rUAVKKdenIJ8G1ObkZBAiB5AygrGuIMAqZWv?= =?us-ascii?Q?nRmG5SuuRZYvbuJVmpCvxQ7YJ2RX89qUGVjZBiBtxewzqDt5Z65YCIoxV0KF?= =?us-ascii?Q?jar3+sWbFpNyjYR+DUzcvdN+o1WL8JQ5KYN3fXbTZIBHUnAw+OsxjgsMk0dq?= =?us-ascii?Q?+tIkuPhGL6LhKcz+i5gHhHYESLLASrNL67X+9FTXo6Lxv/j1fABcE13u+94+?= =?us-ascii?Q?vTITDrL/MpkjY/Dod6aLHt0DSMwq4TvSiSiRQSjcGZ83geOz34zpz7pZohTh?= =?us-ascii?Q?561N6y9YAQU0zKzyAkVc2USvrjsVwHLhpziusnT/xVMHiUuubOz6zgDfFVGN?= =?us-ascii?Q?6m7QbRy6D+K/Ze8lpMXPoIuLdMXfZ58TQImJzG0EhsdKQ+zC4X+fbK6U47RR?= =?us-ascii?Q?Grylpbch3MF9cT5B+ATZDB8iFWTUezB39bFaH8EvGraGZlkD7ISmAcPcNxNA?= =?us-ascii?Q?3eCeyYAxRYy/vcOG3hBPPv5Qpvz7QnqZicEsHzBmkUxxkfHy3lP8OMkP/jML?= =?us-ascii?Q?IovvtlGhB8T3QLCL8WeeLdY3usudE1IKeUO/RU/Q2hTz1x4o7NwWVKGBS8ee?= =?us-ascii?Q?P1ZLd6AbhgXZT2zWl/24hnvwEfRqwEnaZPfUUJrx0AF2NqtUdF3bRGo/hRXW?= =?us-ascii?Q?jNm2U+nxPAaaUbK5vKLLFgV0FGdHJqSMN+6jLv5K3N6zF3zS5C3nUmoOM+QY?= =?us-ascii?Q?mjBXJuYBgbR8bpQjvZyjVEWCfjq1qqSFBIW9JvNJChduVthkUxVLgG2+2p8l?= =?us-ascii?Q?ZrQz1GvE3/SJycNc+rlhiqiAbLHBFHHR6Hu2PH4xt08K2b8guV/K/F0VEYWj?= =?us-ascii?Q?I9rQOCIdemRWtM741Iv8T17DMbqIp3M5vDKJYZaMIDjzSNLdMg=3D=3D?= X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230031)(82310400017)(36860700004)(1800799015)(376005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jun 2024 09:55:54.0068 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 90d38276-01fa-47e6-3667-08dc860edb02 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CH1PEPF0000A347.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5882 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Yevgeny Kliteynik BWC rules rehash process has burst threshold, where the rule requires completion. This threshold was constant number, and it can cause rehash fail if this threshold is actually bigger than the queue size - the queue would end up full. This patch fixes the threshold to be dynamic and to take into consideration queue size. Signed-off-by: Yevgeny Kliteynik Acked-by: Dariusz Sosnowski --- drivers/net/mlx5/hws/mlx5dr_bwc.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_bwc.c b/drivers/net/mlx5/hws/mlx5dr_bwc.c index eef3053ee0..bfc7dbf100 100644 --- a/drivers/net/mlx5/hws/mlx5dr_bwc.c +++ b/drivers/net/mlx5/hws/mlx5dr_bwc.c @@ -22,6 +22,13 @@ mlx5dr_bwc_get_queue_id(struct mlx5dr_context *ctx, uint16_t idx) return idx + mlx5dr_bwc_queues(ctx); } +static uint16_t +mlx5dr_bwc_get_burst_th(struct mlx5dr_context *ctx, uint16_t queue_id) +{ + return RTE_MIN(ctx->send_queue[queue_id].num_entries / 2, + MLX5DR_BWC_MATCHER_REHASH_BURST_TH); +} + static rte_spinlock_t * mlx5dr_bwc_get_queue_lock(struct mlx5dr_context *ctx, uint16_t idx) { @@ -175,8 +182,9 @@ mlx5dr_bwc_queue_poll(struct mlx5dr_context *ctx, bool drain) { bool queue_full = *pending_rules == MLX5DR_BWC_MATCHER_REHASH_QUEUE_SZ; - bool got_comp = *pending_rules >= MLX5DR_BWC_MATCHER_REHASH_BURST_TH; struct rte_flow_op_result comp[MLX5DR_BWC_MATCHER_REHASH_BURST_TH]; + uint16_t burst_th = mlx5dr_bwc_get_burst_th(ctx, queue_id); + bool got_comp = *pending_rules >= burst_th; int ret; int i; @@ -185,8 +193,7 @@ mlx5dr_bwc_queue_poll(struct mlx5dr_context *ctx, return 0; while (queue_full || ((got_comp || drain) && *pending_rules)) { - ret = mlx5dr_send_queue_poll(ctx, queue_id, comp, - MLX5DR_BWC_MATCHER_REHASH_BURST_TH); + ret = mlx5dr_send_queue_poll(ctx, queue_id, comp, burst_th); if (unlikely(ret < 0)) { DR_LOG(ERR, "Rehash error: polling queue %d returned %d\n", queue_id, ret); @@ -583,6 +590,7 @@ mlx5dr_bwc_matcher_move_all(struct mlx5dr_bwc_matcher *bwc_matcher) struct mlx5dr_bwc_rule **bwc_rules; struct mlx5dr_rule_attr rule_attr; uint32_t *pending_rules; + uint16_t burst_th; bool all_done; int i, j, ret; @@ -617,9 +625,10 @@ mlx5dr_bwc_matcher_move_all(struct mlx5dr_bwc_matcher *bwc_matcher) for (i = 0; i < bwc_queues; i++) { rule_attr.queue_id = mlx5dr_bwc_get_queue_id(ctx, i); + burst_th = mlx5dr_bwc_get_burst_th(ctx, rule_attr.queue_id); - for (j = 0; j < MLX5DR_BWC_MATCHER_REHASH_BURST_TH && bwc_rules[i]; j++) { - rule_attr.burst = !!((j + 1) % MLX5DR_BWC_MATCHER_REHASH_BURST_TH); + for (j = 0; j < burst_th && bwc_rules[i]; j++) { + rule_attr.burst = !!((j + 1) % burst_th); ret = mlx5dr_matcher_resize_rule_move(bwc_matcher->matcher, bwc_rules[i]->rule, &rule_attr); -- 2.21.0