From patchwork Mon Mar 10 21:26:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010748 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (mail-bn8nam04on2053.outbound.protection.outlook.com [40.107.100.53]) (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 C6AE41E8350; Mon, 10 Mar 2025 21:28:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.100.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741642106; cv=fail; b=aSmPAmw6MGRcWmsJxVZ5mcgwGNA1Yv1y8BnXXbY0O7odohrMiyVnEABA1lPPfbJJS8M0E9I1jk7q9x4yVhu7U7EnS7HVJQ1AHPJHsCB62c9QmVVpQJ3wDnBb6fy/pngcFMbsdsdFa9ZXl0ahwk8ASyaDzG+kfYPcbFMOhIa4C8w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741642106; c=relaxed/simple; bh=xLoiRds7lAD/qpQGjRoV5KdKajnzqgMgt3YG5aBBOSg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=r7YfGPlci2DJNDu4L+N4bHEE8MM2mFTD9EJz7QbC4oDwaeSRVTkRGysurcKoDfUJyE1wIFH+3ZMj0F/7Z6NqRG0a4MNNDaHGbiIZucrF/7oruoaKQjs9oN1nRahBO9NEzvCfEHnPXQw2Xf0fX8P496AXfKwxy4Sj7QGSQGNlwQg= 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=OqgC13uh; arc=fail smtp.client-ip=40.107.100.53 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="OqgC13uh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OvsQn7YGjZGTSTdNECRcZKhXcLkVLuCUl+NdU+3VrLa9z98a9qlMWr/OLoUxXJ+QYPPbH31V8US9d3DQeyfXkDca9ZP943N5KN+wdgItYpGShOFSvisBHnKbtHfl0gcuxZJ83sTBYlxyEi4BkwrbiFG1C7DJeqSWbaJECYyXZhoLw+KC9rk5OO+e0H4/2NuoFOW2UY3k4Fs1RI7vgiZkZEKKl61gn5DPlN3fJd5INtUh4IeW7Kkeu+zbQsDcbJh1Cm+d5EuWkMk5CLYgjQfNk51cB5JJwCMn8R8XGA9N1VuGFlGCt7httKB6EX7K//1jAhM8z6gKcoABfupwGzo8ag== 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=PD3HIWXc14nlCgHNCXGtwsaw0vlZC53pGwT4+iw8HPg=; b=QhIZcjjZrz6l+ubCRTW6qY6900vwJpcY0Raw/2YDIGQkA4SG2Mr7kMc4+I03k33nJOHOXJbRilRGuuYeUpOQwGm/D2qGkVPA0h2V+2g4tXjM3+GD5HLRNpQOEeHeV9loZTvO7Cf8ovHpgDO5QTibjKUJkT8yYGaY9MB82SRjzuu6ezcrM4QlR0TGnz82lRrEV30xRMz98cIg0N6SYA7/O8tR6kQpaZwqHXcs+biE+IOzqHGbwrT49ePKlBjJY0iOGlimJe6uqykAGHHiqGXPAsw5ieK/zKTRvjJQGXY+mVAjJTVAhY2tK8SDuKeVXFZHUXHDb/SHWWvZPRPs5LcAhA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) 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=PD3HIWXc14nlCgHNCXGtwsaw0vlZC53pGwT4+iw8HPg=; b=OqgC13uhqEYBxUYV/cpeMko2inaKZllkAnJug8kUxM3CsdlUllwEVMsV5e6taH+6xq3QuZhL7YvsykJDFRPhl0TY7FKdJQLrv2vT55AqBTBVitkWx/3GBecejcM1sEtZZsWPU0wh18nxWqZqEuLVkppgYYe4xADtjPavcqqWQK3YeTcpwuNqLow0O/hTsLx4Ig6WKPqva4zYw76YdtzzsayWJEh4HQ7T0d6aGgyBL7q76d5Dg0eGaaP+0xz9wvo8Bqk0fejisilzuAOgDVNdbU3KWKdLb3HdIJhUVNeeOOzrGD5JDG5xKUGuxIKsZzoy+Ieuu1L9lpzR6ireJ4bMuA== Received: from MN2PR05CA0019.namprd05.prod.outlook.com (2603:10b6:208:c0::32) by IA0PR12MB7700.namprd12.prod.outlook.com (2603:10b6:208:430::20) 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:20 +0000 Received: from BL6PEPF00022573.namprd02.prod.outlook.com (2603:10b6:208:c0:cafe::40) by MN2PR05CA0019.outlook.office365.com (2603:10b6:208:c0::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8534.20 via Frontend Transport; Mon, 10 Mar 2025 21:28:20 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BL6PEPF00022573.mail.protection.outlook.com (10.167.249.41) 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:19 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) 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:54 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) 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:53 -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:50 -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 1/4] net/mlx5: Rename devlink rate parent set function for leaf nodes Date: Mon, 10 Mar 2025 23:26:53 +0200 Message-ID: <1741642016-44918-2-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: BL6PEPF00022573:EE_|IA0PR12MB7700:EE_ X-MS-Office365-Filtering-Correlation-Id: 787974c3-b921-4374-73e8-08dd601a7aba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: /YRMvU0YjdNmN4gP0wrYMsNp+ShYl3nhs1kUUksiAqhn+C5y7/Nuo05p9x8sUSf5MozNlC5fKO+5mgpB7eWzwUvq1Wdr8+eQtsj+QLl04+u1mVy9eX3XNMvIb/prM4Ct/+ir1RF5ylXONHg9IrkGjotMCKc6axMbJXs/buaw4rBHZadoGIf7SDscIs/83SRcDZlduTsmkgowLfnnQ80RDuKZkO+1NHfTf01xrwWm7gJM1PizcxZ90daLa6vwOsGHVx5qyCx87qwXlyQES9RpGnu4NSjnaGbJwH1R91nTJd7g44Js7HdZAnXZllF/nWF7BLQ9wcd43Maeekn1AVG4hflX4dXtiRn2mWuYKHVNf1VgFU7sPqPzBs7Oa5H4+2f/pszo2QzQp3saqy/6fIHM4EqnYPVi0HnqmyDqJmrqha7MBzYz/JEwsA4cetWAQW+jT9qvK8v/nmHywcrdQI17zmnuzV2QkEbiBJwq5hNUuMQ+Jx+10naIc5ZHwbJ2CMY98qdE0EIwJA02hJihaMlaL04GWwdfjeiTzbho2YosxPKsUP/DX36YRG+788Gk3xpIsL+nFCcCrQjnEuVOjDMPiBqotUbmixyqNxMTlaB1NS9cnnJ8k8pedKE6iOucbFs/3b2SY0S96wAS2wSFYAp0c1/tBAcy2k9o8XMMkRZpkAfT3XYUNz6L5UDRSKrA+zTTtriVLUsWa/6Cr+VbXXAiwHS/r8mC3jtAqruaaupdXK7aOjVk2JTyfGZdoDOUXl0FzcSTAk2BdRY6ImFJRXOTf+pxxoN+kEy1oBMaRwQUteEhbrVpKwyA2Qc5s217vA/rJio6XclfiLOhEisxennSmkVQ6yfY/diFsk83Gqxfiv76nS2N1XlbP8NH71hP5nuIVQUabUUH2TBYq+UiFsiVEfvBCBrCo5wjthLGurJW/f8+X5l8zGmvw6idA7C++SnR4mG3nnucuqItdJwjN6aKMjvicm3IhZ5HV3OtV6HmFtGnK8yKiuCHXWVFya+s/1eUBwjCHQm/NuK6X4rTeEl8R0MqYgNkCLOv1iqRsJC0kWB1ZnOrHPC0qFtCB/XDDbLr+jBEPxnpQrGzIFjdKg8f7gsNlmItsbJC1GpD25MD6tlY5cFi4gDxKxMw46jWpCfoBWmvaztiZLFcCo1CBXnQEpxxqgVe88CR64KfVDS7Be+hAZDAgpD6dbQcUnxaZjr6WAV+gHdDU25mJ2tzVD0g8c8X6f63z4EsVQNM6ZisduwZj9ItzToZEU8GjtyI2TCuRlBGidWchFeE1XC/3lkR0QyMFmsewIKpb60AXQxs7HKg2Iy4YhtK4MGTvBIA6wmgrFKvdLh/lNb6oBWtpHDQ0TWTgtz7ZD070+pS2IWasNx9Iacc5/rfPx2GnR0xA1yBvEhR7kjun02Cc90PG8PVY8tq1IuUIUXFJGMToosUL+IRiY/Hji6syB5C0fsX2treM+0MHEp3EgnhWKENQwk6FlUKVb3N8Chc23MN6NFvCek= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 21:28:19.9059 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 787974c3-b921-4374-73e8-08dd601a7aba 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.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022573.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7700 From: Carolina Jubran Rename `mlx5_esw_devlink_rate_parent_set()` to `mlx5_esw_devlink_rate_leaf_parent_set()` to distinguish setting a parent for leafs from nodes, which is not yet supported. Signed-off-by: Carolina Jubran Reviewed-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/devlink.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c | 8 ++++---- drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h | 8 ++++---- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c index 98d4306929f3..39202540a142 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c @@ -324,7 +324,7 @@ static const struct devlink_ops mlx5_devlink_ops = { .rate_node_tx_max_set = mlx5_esw_devlink_rate_node_tx_max_set, .rate_node_new = mlx5_esw_devlink_rate_node_new, .rate_node_del = mlx5_esw_devlink_rate_node_del, - .rate_leaf_parent_set = mlx5_esw_devlink_rate_parent_set, + .rate_leaf_parent_set = mlx5_esw_devlink_rate_leaf_parent_set, #endif #ifdef CONFIG_MLX5_SF_MANAGER .port_new = mlx5_devlink_sf_port_new, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c index 823c1ba456cd..c56027838a57 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c @@ -986,10 +986,10 @@ int mlx5_esw_qos_vport_update_parent(struct mlx5_vport *vport, struct mlx5_esw_s return err; } -int mlx5_esw_devlink_rate_parent_set(struct devlink_rate *devlink_rate, - struct devlink_rate *parent, - void *priv, void *parent_priv, - struct netlink_ext_ack *extack) +int mlx5_esw_devlink_rate_leaf_parent_set(struct devlink_rate *devlink_rate, + struct devlink_rate *parent, + void *priv, void *parent_priv, + struct netlink_ext_ack *extack) { struct mlx5_esw_sched_node *node; struct mlx5_vport *vport = priv; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h index 6eb8f6a648c8..43a40bda7d19 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h @@ -29,10 +29,10 @@ int mlx5_esw_devlink_rate_node_new(struct devlink_rate *rate_node, void **priv, struct netlink_ext_ack *extack); int mlx5_esw_devlink_rate_node_del(struct devlink_rate *rate_node, void *priv, struct netlink_ext_ack *extack); -int mlx5_esw_devlink_rate_parent_set(struct devlink_rate *devlink_rate, - struct devlink_rate *parent, - void *priv, void *parent_priv, - struct netlink_ext_ack *extack); +int mlx5_esw_devlink_rate_leaf_parent_set(struct devlink_rate *devlink_rate, + struct devlink_rate *parent, + void *priv, void *parent_priv, + struct netlink_ext_ack *extack); #endif #endif 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; } From patchwork Mon Mar 10 21:26:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010749 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2081.outbound.protection.outlook.com [40.107.96.81]) (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 C01101E47C5; Mon, 10 Mar 2025 21:28:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.96.81 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741642113; cv=fail; b=LmjEVhV/Xy1Rs9w4Cc+kBgW5x2e9GBGxkevwBx11hJpz9nJ8vt3k9lu9ug79oJJ9JD0MoFqti9aIqPGsmJYVyrS3NgnhyUNCq1t+NdcSq9SjuIIxvZBe1LH7uiatCNxW5KZ++Tu2BKxRB9hcLyYjT0E0Az5aozf3R5eCeK26QMo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741642113; c=relaxed/simple; bh=i/bU3aySBLT8akfXvCL9gkTOZYy9/PDhBaR1RCQfIhM=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZG0itnGBq88JUi4C7c3G1mkFsUvC1mv4tsLXwSJYRlufvujWYb42lA2olDgXNpAXfv0WMa83T85dLlTMsaMOWNaot7x0wEhQBHNOYmjKhV2OnsWiRh0NkbP9VtTUel0zPqnCPcU4p5x9/m9DDysQjL+DfeijABKzjiTBuVTAO6U= 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=Pd78Um+7; arc=fail smtp.client-ip=40.107.96.81 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="Pd78Um+7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Uhd/uU3S1TNYPjyVKp8R/WG5szwHCNrIQF4ZLHtFUSXP+JeZvCNb/fjWfCtzhdkbz2O7lhNpauxyJV6ss6lqf0UU3oqIHHS5lTM2uvd0WGb6mgO6/kP6FfCujS7/a5dClGyvn/EHogsgZ/hXc9Bhhamh/yvMLTXRb1i2MQho3Da2ul/58bYz5/+mszjQRA1wFKvi7giFdKIzDmchC//LSAB/IPCcjhok7f2iJR5FtMD+YlnNj4KPMEZzVfgpCTNr1DAaHi+GM8usXtHOUYlOSDA5rNLCGn8gxtWSKREAEjZn3JRYYRVL7I23wGyyCvK5vmCzSv2xZCDX2p33DNSPBQ== 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=/YMerGf34Y3jDuRg4zOxypPBrWSEe5Yp84aqmdmlXO8=; b=bRevsHAxcIi6QP1RPXhR1CQmp5QTNI2k75x3dTR/tylZVA9wZfMO0jBPtmr6757g04a6QjrI2xzeyNtPCoHAYOZhERwwy1w4sVSq5aIa7KP95ieYNDiEFrSfiskzX5VD1A6EkySyNEYpfuQ77d6tdN5UDUmsuAiquXMgDUQew0j0ok7Q8htM9gfEwsV+NxBdhpB/zT+w5/mr85xkVxgmCgCOBNsx3jlh+BiaCZs5LevZHnGOECCIeLno4P2y1QtaxmLDAKpZ4e1QVL6v9/+4YR0VKbmNHgtwaewwVgIaUvTJQsIX4JYyEc7jJ1yH8z2rt6L8txnkcv5bSa+nP9qAJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) 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=/YMerGf34Y3jDuRg4zOxypPBrWSEe5Yp84aqmdmlXO8=; b=Pd78Um+7h2pBF7JMdptWTBv9WAidHWS6eg+SjJYPI+oW/tU0Toli4hl6kchlq/bSjj23C7ZjmYwteC/6aCZx4FL3Vk7OMV5L0Wo9zdBxW0ZvIpQSasFULxjRZWsOt2110NDcZL9F7H3qGzEGlm81i3Uhfg5B/zGeBSDyKyVsTz7+ifPfiM1Ep32GmArusYvUgqFApQKJUoA3+aZid2xkwMhKNjcJ9bL+Nc0iDcXKal18Fr8Izz4rcHydvsebWJ3exWastEowq10XAkLpSP53H+2aEouTO/fYLeBgwLZWzys0gofNnBk06jYun8c+7qu+xXVNZ8mAydVxaBi/tupO0g== Received: from BN9P220CA0016.NAMP220.PROD.OUTLOOK.COM (2603:10b6:408:13e::21) by BY5PR12MB4033.namprd12.prod.outlook.com (2603:10b6:a03:213::22) 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:27 +0000 Received: from BL6PEPF00022572.namprd02.prod.outlook.com (2603:10b6:408:13e:cafe::fc) by BN9P220CA0016.outlook.office365.com (2603:10b6:408:13e::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.26 via Frontend Transport; Mon, 10 Mar 2025 21:28:25 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BL6PEPF00022572.mail.protection.outlook.com (10.167.249.40) 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:24 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.5) 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:28:02 -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:28:02 -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:58 -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 3/4] net/mlx5: Preserve rate settings when creating a rate node Date: Mon, 10 Mar 2025 23:26:55 +0200 Message-ID: <1741642016-44918-4-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: BL6PEPF00022572:EE_|BY5PR12MB4033:EE_ X-MS-Office365-Filtering-Correlation-Id: 7001c6e5-2594-4e60-0097-08dd601a7d9f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: WkHDLRkdsEMBtRBBQD+BZhiv9giEA3TGH2LvuD2IvUgHIr+HQIiYe/+KGE83zUgrkEqC8bt/sm/0sxj3uvcT35/LHwp7Vr+1buAv0PwF1IgEOj4zLsMCJxpCC6VV/RdJi0IrAGV2oKkhNm7iIxD9EehOKoQTP1hiSMypFjNAGta33zrQ7ywYKNDYHptPB4EdJ8vpD24ASYaAoHNfhtMOF086apX+42KZX2WxEMlvF8KxhfnAvpF2I/LK8gmrWESLQYvqOWHRay+RkBoc+qdoarg5ibqMh2oCo/tyzNvEaRUDUTcK1MOXM6JHMQ4BqVClCIJsMJzXuHYeHVkg48WyXZRch8038cIxeD9BTAa8YQusw9wxMbczF13S4j9hKGsfGH7vy+UeZRy77AUzdgMxQrnbJXpIk1Quy1kRQLLjWTH3KoBNWG4myQ6Kpv0cMAXvfpERRLPxBYsCjuNY/R6Hmd0pL8uLTz8h4D9y/4UPNfyJ/KEk9zf5SomgvF+Y3AMDTOZa0qJNdhAINBGr3vXOZj1EVWpEwLspkif7G+bK+27ky5tXe3Wnms6WGW6kEiE324fN1DP02w6di2BVPld+5ZHAFg8S60h1qYJ2O2Tq2ydwGwFTQ4d3RLBjh1+uOjAHmRa90oei1F2knMyTjmjUTap4EZwnBfDZqlhHgYMsr3m782f4S6RbtSfL384oFm3zpxgtCVMA458yPrzNLWQ1AY9MeMq55XnjFcl4AsV/jz7wjetUXZuhqGwrLyttr0q+s4om2bkzOl4yoC4Ui++XjxGETGymekw3VITL3cULxlYp1jR92uDZB7GHg7u1fCkVwAOqa+AnxDPNbw5tThStlaCGn/Qh0Z25b/+sTFDA1xUmWl4a6txLI0p9+w8w990SXErtEGhsFmC/pn+oZl+nZ8PzV44ZutTyam1OTXUGIlzmYlLjnM9kc6EIVleMcIWMO32aMxyjglh9TaHNlMawCWsQRFBoE+M/BTK9JfmSzJSy8xZOClZ9qqU8tp21brZoOkF8z3H+uSgXPjzjruQmrce3ZEDE32VFS3gIc6qgrXCiJ2L8MW/UPb6EOtSDOFPasFmwF67qXweTdxMNGMLAbSnarBbiDx/6cAE3qiGo6gHwKCJo+uPF0PhwU1jDA1vDeDecZmSiAbckQMIELpiNuFOvENn3hYdFmyA3CyIQLfOMQkArjt5Tt2ZmlKhCpkkOuIoU2BWnZXkKEimI/qhioV1crxsjFArGfSs5MYZ1WMH+8tCw4VPZ/Cxy1Mw1hfZ3Q0ZdrUUHypD525T0S+Qv1f5nIHrum5C2VOFjj04v5NO7ap9tH9WKq88dJWPj4WF1b8zol+4QFcZHbRbkBivWtuQoBAO3jzMgL8vgt0uTaOqHk0XsSo6eNE5f7wn+yVcg2TAz0n3qflXYFgzNTpW7xCZM/YSJCQkzv+YV7vIeNPMYW+8ikSABRHib5Zk8IjE1OMQ8XWmSF/NS/Z5Rkm84mLshXiOdJh/5Ouo6LL1/J18= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 21:28:24.7591 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7001c6e5-2594-4e60-0097-08dd601a7d9f 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.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022572.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR12MB4033 From: Carolina Jubran Modify `esw_qos_create_node_sched_elem()` to receive max_rate and bw_share values while maintaining the previous configuration. This change is essential for the upcoming patch that will modify rate nodes and requires the existing settings to be preserved unless explicitly changed. Signed-off-by: Carolina Jubran Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c index 959e4446327d..3c850efb4ca3 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c @@ -320,8 +320,9 @@ static int esw_qos_set_node_min_rate(struct mlx5_esw_sched_node *node, return 0; } -static int esw_qos_create_node_sched_elem(struct mlx5_core_dev *dev, u32 parent_element_id, - u32 *tsar_ix) +static int +esw_qos_create_node_sched_elem(struct mlx5_core_dev *dev, u32 parent_element_id, + u32 max_rate, u32 bw_share, u32 *tsar_ix) { u32 tsar_ctx[MLX5_ST_SZ_DW(scheduling_context)] = {}; void *attr; @@ -338,6 +339,8 @@ static int esw_qos_create_node_sched_elem(struct mlx5_core_dev *dev, u32 parent_ SCHEDULING_CONTEXT_ELEMENT_TYPE_TSAR); MLX5_SET(scheduling_context, tsar_ctx, parent_element_id, parent_element_id); + MLX5_SET(scheduling_context, tsar_ctx, max_average_bw, max_rate); + MLX5_SET(scheduling_context, tsar_ctx, bw_share, bw_share); attr = MLX5_ADDR_OF(scheduling_context, tsar_ctx, element_attributes); MLX5_SET(tsar_element, attr, tsar_type, TSAR_ELEMENT_TSAR_TYPE_DWRR); @@ -409,7 +412,8 @@ __esw_qos_create_vports_sched_node(struct mlx5_eswitch *esw, struct mlx5_esw_sch u32 tsar_ix; int err; - err = esw_qos_create_node_sched_elem(esw->dev, esw->qos.root_tsar_ix, &tsar_ix); + err = esw_qos_create_node_sched_elem(esw->dev, esw->qos.root_tsar_ix, 0, + 0, &tsar_ix); if (err) { NL_SET_ERR_MSG_MOD(extack, "E-Switch create TSAR for node failed"); return ERR_PTR(err); @@ -476,7 +480,8 @@ static int esw_qos_create(struct mlx5_eswitch *esw, struct netlink_ext_ack *exta if (!MLX5_CAP_GEN(dev, qos) || !MLX5_CAP_QOS(dev, esw_scheduling)) return -EOPNOTSUPP; - err = esw_qos_create_node_sched_elem(esw->dev, 0, &esw->qos.root_tsar_ix); + err = esw_qos_create_node_sched_elem(esw->dev, 0, 0, 0, + &esw->qos.root_tsar_ix); if (err) { esw_warn(dev, "E-Switch create root TSAR failed (%d)\n", err); return err; From patchwork Mon Mar 10 21:26:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 14010750 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2054.outbound.protection.outlook.com [40.107.223.54]) (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 AD59A1F098F; Mon, 10 Mar 2025 21:28:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741642115; cv=fail; b=SrCXHodNkjyL2OwafnEu03rpwtENxZ/aRL4VwAc5FJY1ocd0egWSOLk5YsjFWf4yzkP8HkHbEn9JtSf34Z21UKx/XslqZVDklmVrpvYa1vq7wblI813MWlhTzPAq328dSxkfTNumMDs5gUwJCL3gXUhMPW2SMAeP08HA4jU2djA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741642115; c=relaxed/simple; bh=jRuO8yMYJr5BiftK3uSb6ph4e2fc08WTEDQ5E3jiRsE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=TnX/8OLe3ZqbYOWroVYBa9P9ijLuFvUMdNR8l0dStyXOcqH1+FjgGWK7pMRHv1vyqegQUG8o0J9vw2TwBrKpM/msLDsOjKyGsKjS80KhQpEoRQjJ/EfxjDSshdSlE6mDYywtaqxvmPQQq3bApO2Zop10YBMaMzk0wuLqWt3/kVc= 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=WPj2XU/7; arc=fail smtp.client-ip=40.107.223.54 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="WPj2XU/7" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FQMYlkikD//WDQtXDGoyZp0cJ8lJKXgvJzHOfxRoZAcA/x+tWNpETK+09VXw+goGsBWkITPfVRgjBZLbjJriZ9WFst5c7xyX/05pNAFGRufe17Atk/T/q6o7mt7wQSF4texPPj5PcUXkuh9MGsU2W1O1zbgGbJsh+57yxqQRej5sJlEE3FLbYjHVfEigYvplsGdaTedxSM0taQslTHk3XUYW+OqHCtkJtZR1/r1zrt7RSQmKLH4NFWCgvwIFUkL0i0oOTGao2xRdeec9XL1QQ2y7AYbv9Rk5VTw5Qfvpgs77Z+PlRuLg0V8o+86cWF/hrGkVcfYLtzrvdtac/LJkZw== 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=UqMBN9p/+OJ12PcDV6OXtXhrQahv3O3kN1lDd5kUTRE=; b=pgj5gB8GmKXKQGTbbKtwQjwcJTB69PN/ahbsCwXMIm/abBtzs07hmjDvjy00nMlC/K2+PYKKGTIbK4puiuVmga+kGCd6dSdJGX352/M4zwmrjJTDoWewp+1lB+lmUXyScRo/4/D9GwXIvF8yIwE6fhZ5U/GOlHkm3gPoludmHuEDnGPJNhAUmJUJACCCQKSvBVSInPVaBmWNaH1dOt0R0w3zqkrIxe8HNnghvcBiDhtIZ59U72vhR7MRlkhkOkI7yzn5uOOp4efOs3813KRyNAmaO0/7S9CNPOLDDRfO6sR3JCxFvOMQyTTgUjHAqlsugy0Nkl/cyfUihxqwoOmy5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) 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=UqMBN9p/+OJ12PcDV6OXtXhrQahv3O3kN1lDd5kUTRE=; b=WPj2XU/7h48Lb/V2YR5/CCCak5XWm5Hr4FjHx6IjppDCp4eama+EQs/YMYgStvF6oYRayr+QuJaOVcZoMU0S9mLJjIByYaszpFifKFhkE40EP4jrEQGuVlPC5NvXtPkfdgACcNwNOen2OG6wI4o5r4ckeQzZU3GgRaXDFP4GX2K21MBZzMQ+Isi4K6dCdkzyEfc5Q2amviHYUy0W0/d9Si8v+WYVIKVW/8FGLHXrgNA9mt4erKnBi4xA2IrpbROsA9925DMakKOwmDhSuoCqorq5Z4S/Gag5NtAi0RWsaSvKTFMKGEHP2+HXnqYHX85lcrU5JOF0a4VP0GRgsR30CA== Received: from BN7PR06CA0041.namprd06.prod.outlook.com (2603:10b6:408:34::18) by MN0PR12MB6368.namprd12.prod.outlook.com (2603:10b6:208:3d2::15) 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:28 +0000 Received: from BL6PEPF00022571.namprd02.prod.outlook.com (2603:10b6:408:34:cafe::c3) by BN7PR06CA0041.outlook.office365.com (2603:10b6:408:34::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8511.27 via Frontend Transport; Mon, 10 Mar 2025 21:28:28 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by BL6PEPF00022571.mail.protection.outlook.com (10.167.249.39) 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:27 +0000 Received: from drhqmail203.nvidia.com (10.126.190.182) by mail.nvidia.com (10.127.129.5) 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:28:06 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail203.nvidia.com (10.126.190.182) 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:28:06 -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:28:02 -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 4/4] net/mlx5: Add support for setting parent of nodes Date: Mon, 10 Mar 2025 23:26:56 +0200 Message-ID: <1741642016-44918-5-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: BL6PEPF00022571:EE_|MN0PR12MB6368:EE_ X-MS-Office365-Filtering-Correlation-Id: 064c894c-be2c-497c-28ee-08dd601a7f86 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|1800799024|82310400026|376014; X-Microsoft-Antispam-Message-Info: ZzkaU+VMrQwKMRCyCmRYlbt4j9BOAsZ+naR12bLoxRKp22Ylv9Q3y838Y3Ic0Us3LQkgQT2L19075Xlp7GzummCFCkCLbW1/CSNbD5+YDNh+gLsL5HthCjohcosYJF2lruiEBVzJxBpEz39Zvawk1K8C5QiQVYLXY3igFsQc0JP3Om6OJRPG03y5xFvImjlteiBWcXorVnhVMPxtrs/wYGG+FOQiQgcwHH/T72rEzw0IYCMFavqRIO/hHOpy3gcLsGpMsows2PLNsAtBOaftQWbtmyL6FMS/KulRSySnDkylkq+lRAayMqtgI4zA6/gQsYjnrLW4lBRMLdNJUQjG8y8NPu+QeFHRgEx0zKO3c0vZHpbTU5uS4C0rbNe/z0v1AfEk4kHELCzT2rg+e8GRNlbkPqTj1b/mp69Lc9JBsLwkOMHprYCPBUCkK+p+KYttG6uZ3WxP6XYmJqEpD36RUMyidEA6MbliNJMuAGe3GmKINsRI0kzvvmWnIrNToOM7gCmet+aHHs3KoS2IjHLag0iOAljMxiM1xulvuj9emGSCLsK6KmdEBINhgK5Hga5jQJtJaM97ivyZCBOlu5woSxX5r4KIvdwYdpHsy31+WZTg/aXOFS8ALclW9M1NmzNfU3t91bIvsKWyiUhwbka1o+qelM4ncqaVlMOokciskhWFawNUypkCmpFGPUWM39A3+5POVooxwIGHYqVRafHlYagwzygZgoPs/RxXRz3R3Z3q8KJSFu3189ow+oPQS91T5Xai9WlpXwl7nBPJxI2m7NwKZGGN72qzkDoKdUmpdRo0mIpXsGFK4EqOBhaAPlmngFYvdlHyAA79G8G0NtKet7hV5V9ylynCxJZIAuks70yy2cZ/hr6wJ2V6/lS9+bp2jm8C6UqAJbUNivVAG+il9fVvW/d+jYW94ECMRoIeclHv2SJtVqKmkfbO5Va6kk/6JV8KUPk7uCoBnUFaPYkhin41t5xkZfuUzxwDj4sCHWCTEnDemMTb64g9X8l2HHkfVOgQ14vdAQCJr0rnTI1/FZInpjun5JrEV2TTbTjHYDstLqDbUvqe7CcEjWa1wsTe0vC/9sI/lUd8TngCU25HUsgpLfSYelhiSwZYdvm1DWU4K0zEZQMxcbWpI+p4twShsd2vDAriDrsE+e48L345A7JApYVD6Pm87r4zbFdZVUQpp4ksiFznailVEKNprw/dEahSCukfX8D8aKNDWFLjCuFEFg60LJeqayesgw/vXteyf9t2tjRb3+KlqfufAHXq8cIiy+r5xj+jKahRZEfhFz5DU2up7QjVH+2inygt156UiyWOT2PWra7Ozf4ktVwZjZYttcCFqTNQNzrCXR0GgL2lmjk/UN5+A/oUF8EGozkfYeek6P4QybCkAu92L/FFUhkq/72inviFuWsnlcVq3J6r4f24Tfby/rsNzWpD3CNZCu9Ng+cdBPK4E915xOB6lxtjSDA7Fx2Z0ras9M3F6irSQpdZMQezUfIQGwZGU9c= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(1800799024)(82310400026)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2025 21:28:27.9205 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 064c894c-be2c-497c-28ee-08dd601a7f86 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.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BL6PEPF00022571.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6368 From: Carolina Jubran Introduce `mlx5_esw_devlink_rate_node_parent_set()` to allow assigning a parent to scheduling nodes. Implement `mlx5_esw_qos_node_update_parent()` and `mlx5_esw_qos_node_validate_set_parent()` to enforce constraints on node reassignment. Don't allow reassignment of nodes with active rate objects. Update `esw_qos_node_set_parent()` to handle cases where the parent is NULL. A NULL parent indicates that the scheduling element is attached to the root scheduling element, and since only rate nodes can be connected to the root, this update is now necessary. Signed-off-by: Carolina Jubran Reviewed-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- .../net/ethernet/mellanox/mlx5/core/devlink.c | 1 + .../net/ethernet/mellanox/mlx5/core/esw/qos.c | 108 +++++++++++++++++- .../net/ethernet/mellanox/mlx5/core/esw/qos.h | 4 + 3 files changed, 110 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c index 39202540a142..df5a2e717ddd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c @@ -325,6 +325,7 @@ static const struct devlink_ops mlx5_devlink_ops = { .rate_node_new = mlx5_esw_devlink_rate_node_new, .rate_node_del = mlx5_esw_devlink_rate_node_del, .rate_leaf_parent_set = mlx5_esw_devlink_rate_leaf_parent_set, + .rate_node_parent_set = mlx5_esw_devlink_rate_node_parent_set, #endif #ifdef CONFIG_MLX5_SF_MANAGER .port_new = mlx5_devlink_sf_port_new, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c index 3c850efb4ca3..b6ae384396b3 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.c @@ -111,9 +111,9 @@ esw_qos_node_set_parent(struct mlx5_esw_sched_node *node, struct mlx5_esw_sched_ { list_del_init(&node->entry); node->parent = parent; - list_add_tail(&node->entry, &parent->children); - node->esw = parent->esw; - node->level = parent->level + 1; + if (parent) + node->esw = parent->esw; + esw_qos_node_attach_to_parent(node); } void mlx5_esw_qos_vport_qos_free(struct mlx5_vport *vport) @@ -1018,3 +1018,105 @@ int mlx5_esw_devlink_rate_leaf_parent_set(struct devlink_rate *devlink_rate, node = parent_priv; return mlx5_esw_qos_vport_update_parent(vport, node, extack); } + +static int +mlx5_esw_qos_node_validate_set_parent(struct mlx5_esw_sched_node *node, + struct mlx5_esw_sched_node *parent, + struct netlink_ext_ack *extack) +{ + u8 new_level, max_level; + + if (parent && parent->esw != node->esw) { + NL_SET_ERR_MSG_MOD(extack, + "Cannot assign node to another E-Switch"); + return -EOPNOTSUPP; + } + + if (!list_empty(&node->children)) { + NL_SET_ERR_MSG_MOD(extack, + "Cannot reassign a node that contains rate objects"); + return -EOPNOTSUPP; + } + + new_level = parent ? parent->level + 1 : 2; + max_level = 1 << MLX5_CAP_QOS(node->esw->dev, log_esw_max_sched_depth); + if (new_level > max_level) { + NL_SET_ERR_MSG_MOD(extack, + "Node hierarchy depth exceeds the maximum supported level"); + return -EOPNOTSUPP; + } + + return 0; +} + +static int esw_qos_vports_node_update_parent(struct mlx5_esw_sched_node *node, + struct mlx5_esw_sched_node *parent, + struct netlink_ext_ack *extack) +{ + struct mlx5_esw_sched_node *curr_parent = node->parent; + struct mlx5_eswitch *esw = node->esw; + u32 parent_ix; + int err; + + parent_ix = parent ? parent->ix : node->esw->qos.root_tsar_ix; + mlx5_destroy_scheduling_element_cmd(esw->dev, + SCHEDULING_HIERARCHY_E_SWITCH, + node->ix); + err = esw_qos_create_node_sched_elem(esw->dev, parent_ix, + node->max_rate, 0, &node->ix); + if (err) { + NL_SET_ERR_MSG_MOD(extack, + "Failed to create a node under the new hierarchy."); + if (esw_qos_create_node_sched_elem(esw->dev, curr_parent->ix, + node->max_rate, + node->bw_share, + &node->ix)) + esw_warn(esw->dev, "Node restore QoS failed\n"); + + return err; + } + esw_qos_node_set_parent(node, parent); + + return 0; +} + +static int mlx5_esw_qos_node_update_parent(struct mlx5_esw_sched_node *node, + struct mlx5_esw_sched_node *parent, + struct netlink_ext_ack *extack) +{ + struct mlx5_esw_sched_node *curr_parent; + struct mlx5_eswitch *esw = node->esw; + int err; + + err = mlx5_esw_qos_node_validate_set_parent(node, parent, extack); + if (err) + return err; + + esw_qos_lock(esw); + curr_parent = node->parent; + err = esw_qos_vports_node_update_parent(node, parent, extack); + if (err) + goto out; + + esw_qos_normalize_min_rate(esw, curr_parent, extack); + esw_qos_normalize_min_rate(esw, parent, extack); + +out: + esw_qos_unlock(esw); + + return err; +} + +int mlx5_esw_devlink_rate_node_parent_set(struct devlink_rate *devlink_rate, + struct devlink_rate *parent, + void *priv, void *parent_priv, + struct netlink_ext_ack *extack) +{ + struct mlx5_esw_sched_node *node = priv, *parent_node; + + if (!parent) + return mlx5_esw_qos_node_update_parent(node, NULL, extack); + + parent_node = parent_priv; + return mlx5_esw_qos_node_update_parent(node, parent_node, extack); +} diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h index 43a40bda7d19..ed40ec8f027e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/qos.h @@ -33,6 +33,10 @@ int mlx5_esw_devlink_rate_leaf_parent_set(struct devlink_rate *devlink_rate, struct devlink_rate *parent, void *priv, void *parent_priv, struct netlink_ext_ack *extack); +int mlx5_esw_devlink_rate_node_parent_set(struct devlink_rate *devlink_rate, + struct devlink_rate *parent, + void *priv, void *parent_priv, + struct netlink_ext_ack *extack); #endif #endif