From patchwork Mon Mar 10 21:26:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010746 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2070.outbound.protection.outlook.com [40.107.237.70]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B3551E105E; Mon, 10 Mar 2025 21:28:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.70 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741642093; cv=fail; b=E3b+v2D8zwP2wsK6ZSJ2epBHypc4MmcdQxpAYBeHRJdXDw+0Ia1gR6PhLyJUGhNh4jyElVCzm7czAb2BWcsM4KubqE4DxNwHBVEtrQ5VMzViNIfE1i6HPJvxHHo4z/CzXXbYF3ANsRPwBPjaZwruW8u3aDGCDRwf6IwV/laTGwY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741642093; c=relaxed/simple; bh=9rOCnpkskcmBArRdBbxkAgboZxv6B1PsQaZ0dQh1H/I=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=r2/MT1FBokrA4bGyUjt6Pd+XAsbR9fJlEp9cevcSNHNpJ7etEiqdbjQ/ij6zW/SLnDikJMdDVZEBM/W+zTW8fBrwX8cNzjf9U9yYjgj+xzHQKh+ZthAmrtf1gVwN0LULvpnuk6uSne62E+yZzmUtm1qOwfzgdAkqVl9gav4vzys= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com; spf=fail smtp.mailfrom=nvidia.com; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b=PcQMr5gS; arc=fail smtp.client-ip=40.107.237.70 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nvidia.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nvidia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=Nvidia.com header.i=@Nvidia.com header.b="PcQMr5gS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qXB3k3Vv7uQ0iVs0SZYUSqS4M673D2LYgO45Q764v0bMA2QgbWtvMpPwZ/UA+H9eorT94mswTr+BApNS/maE7osGJelnrcozeSQUZWntT6u/af89qMPxMyux9hFvTGcGl9Wn0uTuLqfbdjDISdSPZByZGa/1/TloVO+oDcSVGudC5h5tcRov97OzcSIx8F6+S6ZS8XI8NaEDG8fwIuQLdMkvupvH88iawxuEcTOEIie50aHC4T50oy84XrPooBpJpw/dgxe/bru1FjhUXyunqTto78Ehy8XZmzbgo7nTHKRG1TW/cDMexGWn3ZAkVa8ibABa9ky7wvczCtEqUjGjpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=zzlFCeuyRwkNlFfYu+td4y3TitB/gk/XjZI8PsY+rpQ=; b=qM4PKPNJI0Vgjxivo1pL0rUrSfvcGuQAown/gO1j+lw1GgRF/NPcKNgqOU+0mLi7N7ypm0Y7DxIag/OvPNphzyTzBj2Ei2I/JCEdnuqoVSk7pp5jcGypzPyYVDI27QtssgS+vC3tbvSiCD42WaG3m58wAx09yMi0rJ5HzI0WH8u6APY2SF8AIB5oqGOtqdq7AF5IegzmqTfWTvmxLIn5p03mAOU33r86oVSHrcHHOZOEAQ1mxs8A48LDzVy6vwa0X8cgACsTzMjI8p+NqrC9wrNVa7AkLM+lKtmHZim1H6HHcXxRfhs8AV+9p+DvSELmyySSVru4rvCBwQuvCQRP3A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.233) smtp.rcpttodomain=davemloft.net 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=zzlFCeuyRwkNlFfYu+td4y3TitB/gk/XjZI8PsY+rpQ=; b=PcQMr5gSVbhXW3eXJ4Tj3Q9oW/ygyN9DbBihH9DfArVwa7VLE488O5l6qizcYPhOqMJ4nGKFUhcM2YzaYByR2b5ablQAPX0HYX86s56ra4as4UI26Z9B+KLxhODdP0zwYvJyfpLOcvA+LIX2gFPIWVN5ghpCoyZRcQhnaI0POjR3O3KbaFGuXiWn2PO11+9AZbSHruzS292hDlCJpPC4O36ncqw08dwgy4x+m6IZh7CJUZAT8PslDJH7s7ZDwd4TcOuu5L6wm1+kJ6w4pTVU4WIGi66o9b+Mjtc7L3yC5r7u1JR3rY/Xg1IGze2JVy3RX+YiPRYFDZSt7anlpcwluA== Received: from MW2PR2101CA0028.namprd21.prod.outlook.com (2603:10b6:302:1::41) by BY5PR12MB4274.namprd12.prod.outlook.com (2603:10b6:a03:206::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.27; Mon, 10 Mar 2025 21:28:05 +0000 Received: from SJ1PEPF00001CDE.namprd05.prod.outlook.com (2603:10b6:302:1:cafe::e0) by MW2PR2101CA0028.outlook.office365.com (2603:10b6:302:1::41) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.14 via Frontend Transport; Mon, 10 Mar 2025 21:28:05 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.233) 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.118.233 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.233; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.233) by SJ1PEPF00001CDE.mail.protection.outlook.com (10.167.242.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 21:28:05 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Mon, 10 Mar 2025 14:27:58 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Mon, 10 Mar 2025 14:27:57 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Mon, 10 Mar 2025 14:27:54 -0700 From: Tariq Toukan To: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn CC: Gal Pressman , Mark Bloch , "Moshe Shemesh" , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , , , , Carolina Jubran , "Cosmin Ratiu" , Dragos Tatulea Subject: [PATCH net-next 2/4] net/mlx5: Introduce hierarchy level tracking on scheduling nodes Date: Mon, 10 Mar 2025 23:26:54 +0200 Message-ID: <1741642016-44918-3-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1741642016-44918-1-git-send-email-tariqt@nvidia.com> References: <1741642016-44918-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-rdma@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: AnonymousSubmission X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CDE:EE_|BY5PR12MB4274:EE_ X-MS-Office365-Filtering-Correlation-Id: 0b85fb42-74bc-4ba6-9c5c-08dd601a71fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?UuBsiH0QC+pGhu0Mxzll6/zMf4EWI1H?= =?utf-8?q?TgneuzI6php8KGsb8X5MZDv5bPrc0D6s6yd9ItagpQFdxhdU2yyrz62X2TYeDIY9l?= =?utf-8?q?9v2QboxiYTK/fr0J7ZKPm97NN6nzL4OQMKFzVeyQz9iQzrdH/u1SItxrd9YAPTYd+?= =?utf-8?q?zbuLHNEnVqxnjulKTdeJE2usVPMVLNdTCtTXwKsN7EZAJrMwn5qlFvmn3jV6ZBfYO?= =?utf-8?q?evzT6Sn5QoEjW09caFpdbJxzflUO8qdKG5+yZJCoyFJ4xLwezNrUb+Hl/BFfTKMM8?= =?utf-8?q?PFvbQtW/kzbYppf9B58R8iXKasdDvQ/Gh9fn+I0zTrxnffKIKIi2KCwZOmZpTzYe6?= =?utf-8?q?JOqWWzvpzZj8syBbQLNQW/6SuwxDR8kvByxDQ84EyV7gLP0DHC4xLpVnmgwoiSC2R?= =?utf-8?q?Bqnf5/eBXoWw2BiDdgeeCChFICetvx0EYLOer0BXjIX/CU+kZH8b7pemnsBEz6Bhg?= =?utf-8?q?Deg0vRXWE0nkHREaQS8DhsgRYKOoGQFMyQeNArQo82AVf8XYYCOOahSgCXc1lB/oV?= =?utf-8?q?AVYxQl/MBivwGvYTRnxZxIKQ1or0qONfPcOrfKuJXVcEAnhPmLAr4bCge2xYl+kfD?= =?utf-8?q?CFhS1HWwCZFqRLLjR6E5KLlTIOtFYgwLNnLJm9Z8iryzoF5JhVan7v2VdhKx1Z0AF?= =?utf-8?q?daTPFKoBqYAcyNo0LKU4ix4aEQgX/pTe8vCWBhihYZmzGzDU7xAca3cYaV86MEWkR?= =?utf-8?q?/5MRgi85HOSqY4nW1TpARDcgGntdMsHAcr3NdsBR0FqVeIAZTQlUTGK1Wvha0X6YS?= =?utf-8?q?wYydaUweOmMuLUf3wdz85p0ZEVYFc9TQYfHLbXENGwbeR53HOdYAGzBMqCoOkHP82?= =?utf-8?q?GMb2xat9BWDRwubVKY3ha9/q8bmo1wyqAVM2l0GBKK6CKYsl1MXIiDR7u3ytM5eWF?= =?utf-8?q?as5KCmOGo9RCUBqOBCHqIns37TekE+bPTkIIQpmjbO6JTMTCMtvVxNsADNwsSyALq?= =?utf-8?q?YGEfqtMnw25ff2QtgDZVoEYLnyuJ40BmX53khJpdHyy0IOPSmTVXneei6xX1IICk2?= =?utf-8?q?bSHlTHIsYNEadWOnJEVRWPAfxPhm72DgFCgzVez7h6b8XPbcTt0LVBO9rt6dCCsH2?= =?utf-8?q?gU/5JHxbECBpWrea73B7BpY5l6lh5Ghbhk+4JyoIUGsd4dzdjtVZ0TweemsaOySD2?= =?utf-8?q?kMULUEeVVg5Zfkyxv+sHKLem6f3jeFp24O/1/429FfqQ0O1gRDsDrj9D8or3e2uhx?= =?utf-8?q?sdQ2ClM5dEoByO3FaJE7Za0r4zF1ZJLb9se01iNUK4CnvteexzVCDP1jfQcXxjJAN?= =?utf-8?q?xLWGOrMRccgtJvSOfwyiVAN/195QB24RhvfHKgXzWxW7X1w/QDP+wBOioFE68LfyD?= =?utf-8?q?LeanenT+AJ9KBrXgA/TyWfuV8AdR8AdhTij4yLoQHTHNsanbXW91q/Stnz4lrv4K7?= =?utf-8?q?UYu+3OJJtDKDEIqYROFidqOWW5HiZYuUk5p8AmqP1zVo8Wp7Nmvi/o=3D?= X-Forefront-Antispam-Report: CIP:216.228.118.233;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 21:28:05.4184 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0b85fb42-74bc-4ba6-9c5c-08dd601a71fd X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.233];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CDE.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4274 From: Carolina Jubran Add a `level` field to `mlx5_esw_sched_node` to track the hierarchy depth of each scheduling node. This allows enforcement of the scheduling depth constraints based on `log_esw_max_sched_depth`. Modify `esw_qos_node_set_parent()` and `__esw_qos_alloc_node()` to correctly assign hierarchy levels. Ensure that nodes inherit their parent’s level incrementally. Signed-off-by: Carolina Jubran Reviewed-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- .../net/ethernet/mellanox/mlx5/core/esw/qos.c | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c index c56027838a57..959e4446327d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c @@ -90,8 +90,22 @@ struct mlx5_esw_sched_node { struct list_head children; /* Valid only if this node is associated with a vport. */ struct mlx5_vport *vport; + /* Level in the hierarchy. The root node level is 1. */ + u8 level; }; +static void esw_qos_node_attach_to_parent(struct mlx5_esw_sched_node *node) +{ + if (!node->parent) { + /* Root children are assigned a depth level of 2. */ + node->level = 2; + list_add_tail(&node->entry, &node->esw->qos.domain->nodes); + } else { + node->level = node->parent->level + 1; + list_add_tail(&node->entry, &node->parent->children); + } +} + static void esw_qos_node_set_parent(struct mlx5_esw_sched_node *node, struct mlx5_esw_sched_node *parent) { @@ -99,6 +113,7 @@ esw_qos_node_set_parent(struct mlx5_esw_sched_node *node, struct mlx5_esw_sched_ node->parent = parent; list_add_tail(&node->entry, &parent->children); node->esw = parent->esw; + node->level = parent->level + 1; } void mlx5_esw_qos_vport_qos_free(struct mlx5_vport *vport) @@ -358,7 +373,6 @@ static struct mlx5_esw_sched_node * __esw_qos_alloc_node(struct mlx5_eswitch *esw, u32 tsar_ix, enum sched_node_type type, struct mlx5_esw_sched_node *parent) { - struct list_head *parent_children; struct mlx5_esw_sched_node *node; node = kzalloc(sizeof(*node), GFP_KERNEL); @@ -370,8 +384,7 @@ __esw_qos_alloc_node(struct mlx5_eswitch *esw, u32 tsar_ix, enum sched_node_type node->type = type; node->parent = parent; INIT_LIST_HEAD(&node->children); - parent_children = parent ? &parent->children : &esw->qos.domain->nodes; - list_add_tail(&node->entry, parent_children); + esw_qos_node_attach_to_parent(node); return node; }