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 4595644145; Mon, 3 Jun 2024 12:57:02 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id EE08742E6E; Mon, 3 Jun 2024 12:57:01 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2073.outbound.protection.outlook.com [40.107.223.73]) by mails.dpdk.org (Postfix) with ESMTP id 76E4342E1C for ; Mon, 3 Jun 2024 12:57:00 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WsxmUjTO3THLzlxvf5rUMuEsKQEQ9ESYyt7eIhjhnUKWtlJn/tQp/jk5HbTxSqXputFZq1oMriXhDaGEWZfdaIEIYMKyHcLqVYSBOAPpMw2Z3oFCxnWLBTNqlx1CpF9510diOv50vcIan1E9i5JvoQDH8Ctga2BBaqEOCzKFxLv9jb+aQyEwfTMyMjuIvFZVAUmus1HoJz6HZ4vLbv6gCtJYkfgjhMWNccK79N0Jcc/DNamhjyA41bupOiMfYLCLq+Ror1ebYC/IuCh/iU/i6yPoV+Snlp/41oH99SWBtQL4YR1hDRLd+sE3qJxeSpxdqQDbjk4X3piRx9wx/DcOcw== 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=WGXtvyQixw94+gbkoj9Fbq+UNR5YjMwPxQdWPxVIs/A=; b=M+xOcraZOrG2hj0D8kWvTdudjUaXLUsFI0z3np5njx2NfNU7zgc8lALZFXObh/mYOz7No++uyrs4+M/Myx9BJ5kzeOndrjyp2r9AGppVX5/FsfWTdd8R26PJtD5CCNImLMkoZgA+HKgQGNC4PEXITQj3V6FrkXasAcx2euIbFoJNZR+YNWv0sT+HVxBDecYXQhbIXzqUUZuU4luJid1uvjqy2HTrIl/viiIf5HRNAA5WNNSqYbjD+M/YAHDyftMwbvdigFWjh321JFwZ+r0YKZYKEEnWIn5fKDh4Ng0rPhcmwDmg/c7mu2X4LWe2mxf4+CSiWWPDg4FE2Y0wcpXiBw== 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=WGXtvyQixw94+gbkoj9Fbq+UNR5YjMwPxQdWPxVIs/A=; b=JIGzFcOGTsMBYCQ410E4Cmetsp9xD9qwnYQhXpC3LqcPzf0uGw3Utt1fVnXpkXF3FWMDDmDL1VOJdiUTU78FqHcHjPzShU+/Bjx0BnBCi3UwIEX49TgFPwicc3F1+9hthxbmNprDEgr081M/mdHP4kSwe6Bpz6uOASRGDe4xRctFqNYKB3vegIcu8vs28AvUut6tMQilXHIG7IS43FvGU7F4s2UYpI6y2Bi1jTaOhavM8cGyFEY82Oiwt7CBB0vFdKpZjD3IhaTNuzWUNvt0byYbUjOM+FVLnnsFpoJmWyh3QM+JBZumufcEcG/2fz72C1LIbFjasb/t1q+j1ZoRkA== Received: from BY3PR10CA0008.namprd10.prod.outlook.com (2603:10b6:a03:255::13) by CY8PR12MB7611.namprd12.prod.outlook.com (2603:10b6:930:9b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.24; Mon, 3 Jun 2024 10:56:56 +0000 Received: from SJ1PEPF0000231B.namprd03.prod.outlook.com (2603:10b6:a03:255:cafe::c7) by BY3PR10CA0008.outlook.office365.com (2603:10b6:a03:255::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.30 via Frontend Transport; Mon, 3 Jun 2024 10:56:56 +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 SJ1PEPF0000231B.mail.protection.outlook.com (10.167.242.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.15 via Frontend Transport; Mon, 3 Jun 2024 10:56:56 +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; Mon, 3 Jun 2024 03:56:46 -0700 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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; Mon, 3 Jun 2024 03:56:46 -0700 Received: from nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4 via Frontend Transport; Mon, 3 Jun 2024 03:56:43 -0700 From: Maayan Kashani To: CC: , , , Yevgeny Kliteynik , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad Subject: [PATCH v3 2/7] net/mlx5/hws: bwc - make burst threshold dynamic Date: Mon, 3 Jun 2024 13:56:29 +0300 Message-ID: <20240603105635.11124-2-mkashani@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20240603105635.11124-1-mkashani@nvidia.com> References: <20240602102937.197117-1-mkashani@nvidia.com> <20240603105635.11124-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: SJ1PEPF0000231B:EE_|CY8PR12MB7611:EE_ X-MS-Office365-Filtering-Correlation-Id: 924658db-7ba4-4afa-14aa-08dc83bbe26d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|1800799015|82310400017|36860700004|376005; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1ENA94+TakM1W14T2DbagSQ1uJ2ba81FcMmsZyyHEF0/jD0ta2EQhNH+CjT0?= =?us-ascii?Q?Yy+ZnuVIfYB6fko75CVaTB3KX+Uqlc/L6tT3w3pmUdXNEteFgcbI7rcuY6Kr?= =?us-ascii?Q?RrREL4zLdeHBA9kGCIKYkPq1VSjGjo0h6iVjja4JG2Y/I31jDWZOz8q1ef4D?= =?us-ascii?Q?kEHBuwI44v/MR65TJpuPwhq35m8/Om4KwFFo7122DcR1Qwyh4FLvaXYFyiFv?= =?us-ascii?Q?kNpizN+KRYEN2h0MQ3o2CMZcYfVoIdLnHKB60q8eCDhoP45MmDTtKYs7B/8z?= =?us-ascii?Q?rZRG3F9xee9ws6KizTLEu5lsRbRoEAwVlEEm4AfmmSJ5jQK9etla+m7nq36M?= =?us-ascii?Q?RnHccTWgtmP2AUACKf+3EtUlBE0txRYH00kCqVVESUdOFupp1U/t3NJLPmEf?= =?us-ascii?Q?2zpdR7wAkX1BV1cZsaiPcLu88LZNQ5SM58svxYzKZLXIbGY6pGuGrO45EzjG?= =?us-ascii?Q?LjPI3hAdCySIE+fzNfJQifazC1tFwebHNjeR5luLyTUK/3pAGbQ9BUSfHtUA?= =?us-ascii?Q?2SD9v0ZcVPa3t6ESRSU+IEOLr3SMDWKJaFw4ch62fBI+J+IIWe3lj/Gv1++o?= =?us-ascii?Q?8kT+KAOIvP783BkMIMceztTOOTz+rF6jM/73lZd+zJ8PqpdMyeimqqUKbknn?= =?us-ascii?Q?iGn/bCq4gWDWdibs96L3fsOPh5sDfX0ZBdlrABmoBXB+bL9v0ri6boQfgQZU?= =?us-ascii?Q?DpVVYFszviTaQzON9Chv0ul3dfWGaMLgX+d6FdzBHNI4zc+1ZhIFDQ0dnWtz?= =?us-ascii?Q?pq32jpY9NdDvssNjXHxIC34bcKB57YU674G+dUWzIcMRoMzAZiMzCM/KwGd9?= =?us-ascii?Q?elkdLM6+neHDq3BDc0kdh1YRKmqTp7vfC3RxU4AUmYuCKqn88NTn4Dl7kQbh?= =?us-ascii?Q?J02J4YPQuh9+b7JNrNSlCrnEbj6jN2nhWg1zuFwtG1uAOWnVigZwZgqLUoSi?= =?us-ascii?Q?cd3oSj9JV83ndEXmf2poQIHCUJks/gEJMsloeo7aEJTma9LoCM3u8H4fFAWW?= =?us-ascii?Q?VneuzW7+8YCGAqJdJjKXAAofRTOueBxJaW8Gm0BkwCLIoe7RWZntFwWiYcHp?= =?us-ascii?Q?MKzcDsLCCqFTkEqTKmWv9X3NI27Vxim37RFw9Wy2g29c0KGqVDm+ma5lfPW4?= =?us-ascii?Q?jmfmHu3gml51j9IDIraa5jTMbxVTBa4VVVACRSNS3dm1Gq1cY0clcnQ7tj0d?= =?us-ascii?Q?j96OnVpiAA8JyZahWA7sfCmXP3cnrf+QzTvcIwENoSIvtd/+gnQlmVbfPPuA?= =?us-ascii?Q?2S3PK6FMyp33N01rD1poBFGbl1WxeNd2R25JhRGvZyI4y5kBcfGKcmtTq899?= =?us-ascii?Q?WowzpeI239z7GafZjeN07qeO4+vdrsst68yd13SVAx9sr5wpZrQ8TBbD5aX5?= =?us-ascii?Q?ahMtivg=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)(1800799015)(82310400017)(36860700004)(376005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jun 2024 10:56:56.0377 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 924658db-7ba4-4afa-14aa-08dc83bbe26d 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: SJ1PEPF0000231B.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7611 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 --- 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.25.1