From patchwork Wed Feb 19 08:58:08 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tariq Toukan X-Patchwork-Id: 13981776 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2080.outbound.protection.outlook.com [40.107.223.80]) (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 4E85D1DFDBB; Wed, 19 Feb 2025 08:59:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.80 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739955587; cv=fail; b=OgEWKwu1I8JAgVJIFkqbMxcEotLUmeD9bT1iV6xBQl+Moz8hGVP4FzKuWm7JDhe/dviy8p/izSBcQn2lVO2BFKeirNcx/p569Wt95TT4AQWx9lKJpJTh6Wemke2oJ5lBR0ecvQySMJtRGRkVndg1RayU66mqkeL0To+a9Y8kEu0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1739955587; c=relaxed/simple; bh=Fx+pT4FCDMNrxIlT86N/d5wGa3UgPXlboITg+i6jEa4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=i+q3XyYUJX4BFXoxp+jrZQZ4wp0jYr0jC0IFMDEk0REpuvW+E4FFa7svwnmOVo3oJjzmBxuaXoCFQnC3/844OZg+F4yRu/2WOgx2/LQSQIY3ipiaGwMSmpALuWOteF2uPW4hVw0hcg/pNJBq9JwrZTzMTN+iHqPnNrMNh/pKqT4= 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=OKa/3bAg; arc=fail smtp.client-ip=40.107.223.80 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="OKa/3bAg" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BAUQZoRFtYUQReQrYjSnps8IIyrL5TSo3IqxKniZhK6w8q+C3zSc8RXflG08WWd8NWdQiapsNz+ufjBV9zZib2HT+uNsTEeqtaBdjaJPKQFyJejD1PTOJUR/6NQaR8aN5c2iq4Mba1VGs30ALYcnJe7yoOyXlH1uLC7w4B57/LVIrlPpH+J+9HunTNLp00qXVZkKtN1FdSTVgSWoWL3+Nu0qJHtD5UwP2SlqN1ZCs1CGBVrmjCxFey2kY5gt7OOCpI2wmJwYhCQYtS43r0BScFUWe03Gc60TnbvDE9q/CQ9hquWEhiP4DkTo1WouyrhfS3HLNTWjYYgClD0ByyKPzg== 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=RT3qwyh2zncn13fq2aeIHLSE+2VGQ5dXr+wXzV68JGg=; b=TNLGa5Fs+kg0nE2BZ4Li9cvtlCcPYV4kYhv/OTHb5EjJ7VHTUOLiAuQNr0CLHC6SnKI7omJi7Gcmnbn4dwMDD5Fp4hWTXIQGaYzU42IPuEGvcEfiq72kdZMPTN6YehJovWhRpwgUF02lbty2COFS3zHKptpVwB0LSj93SnM7jsdwQFlDB3VtESOeqLGRyZtULrl9mFq1+IHx083TcZ2zY1FJIEFVo0O/oTE/TTo/HcMBPobVJiH308KRfnwFaLXQ+Zy1bB0JyNQ100cFp9WNmjqhFx14ydxLYPpxUs5mm+AQXCzJettnRwP542u7LnXVPGcN0jLWvU2d9IFBKdZcjw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=kernel.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=RT3qwyh2zncn13fq2aeIHLSE+2VGQ5dXr+wXzV68JGg=; b=OKa/3bAg2K9RaBChLQNQJghnEQLvsV/y5eI5SOrBygJSphxnXdBaTIo7AZdQPDs72jry8kPlevhrjMtaiMK0FpwcsaVwoUdo5NMGmNX46qzORSAfQ6oYM/O+c9KZaHHHSitLrt7KXP615AZONSWu9CG7DLoFeDK90goDYhKmTqq9cB5AyjixtvZotuyUlaV5BJ6mqfMFr5i9LYHyC9WNcwnffkWNPDQlnQ2IXb+MzO/Qo0gwrzLoBCtEMWyyvHGIwwyd8GjO8Bk94oMXwjJ+JBBpf7G1ifVBJVm8pDhF0XbPDiD3sHmg5W//Oevnhl2ga8dmKpHmctZrhrB2Lm8bjg== Received: from BL1P223CA0030.NAMP223.PROD.OUTLOOK.COM (2603:10b6:208:2c4::35) by PH7PR12MB7116.namprd12.prod.outlook.com (2603:10b6:510:1ef::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.19; Wed, 19 Feb 2025 08:59:41 +0000 Received: from BN3PEPF0000B072.namprd04.prod.outlook.com (2603:10b6:208:2c4:cafe::47) by BL1P223CA0030.outlook.office365.com (2603:10b6:208:2c4::35) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8445.16 via Frontend Transport; Wed, 19 Feb 2025 08:59:41 +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 BN3PEPF0000B072.mail.protection.outlook.com (10.167.243.117) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8466.11 via Frontend Transport; Wed, 19 Feb 2025 08:59:40 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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; Wed, 19 Feb 2025 00:59:28 -0800 Received: from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail205.nvidia.com (10.129.68.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 19 Feb 2025 00:59:27 -0800 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.9) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 19 Feb 2025 00:59:24 -0800 From: Tariq Toukan To: Leon Romanovsky CC: Gal Pressman , Mark Bloch , "Saeed Mahameed" , Leon Romanovsky , Tariq Toukan , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , , , , "Patrisious Haddad" , Maor Gottlieb Subject: [PATCH mlx5-next 2/2] net/mlx5: Change POOL_NEXT_SIZE define value and make it global Date: Wed, 19 Feb 2025 10:58:08 +0200 Message-ID: <20250219085808.349923-3-tariqt@nvidia.com> X-Mailer: git-send-email 2.45.0 In-Reply-To: <20250219085808.349923-1-tariqt@nvidia.com> References: <20250219085808.349923-1-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: BN3PEPF0000B072:EE_|PH7PR12MB7116:EE_ X-MS-Office365-Filtering-Correlation-Id: c0bc2e49-7472-46f8-c27d-08dd50c3bf13 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: iOGCCXBDCYmX8i3DaxLZ/1pGrsz1U1Kj0eaYZyVDgl0MQ8bN+3t44aS90JF+VCajPigM/+GPUZtL0mxP1p/k7nc7x3T2LA9/9Y53alcNlaMK8PhRBQ5JpnFNJPLB+skHWqS5rw0UV0/5L8rIGGPpnRe94wAq876wyxP3/3zLfrqkjALQXK3OWjRTRLmyyEVNi6F85CMJ1WLPP5QKjvZyWSmQ80v2/+qC0BCUMZGDvA2OowrnAkEMIHjZw8GFmPjL6Nuh8bL5WNuay4WVaoH4zsbQWODoiCALvjtgG9ZiZ7yonCzJWaJERFQ3RHvUM+RMj9wKmJPZEYVsfCnbyRXR9TV0paNFOxXaXPzRCvQX05Es2rINgy+Bc5t/8vqnPHUVpT3VauPTBFnGFQ1PWWncG50X4Ena6LOXxxEA++4nb/+jLtJ6DZwS2OQYGhD2HzoalKSpikL8CiRyPJQUKBIY1CmLb199ICct/ZPY8x1AMPtzuCMphhmuSASQdSYzH+V4v58MXJmBoLLGcOMTgKgE36q0xl/mI91uXhTp2IfTkx+q2cVY7VGjNqdzfYfUtKHmMuHziHmn+9YljDvlA+C4aJ7keUAikTTc8yjyLbZuxvvisvKK6lhwR8aB2uhOGDGfhQrrlIKqenbuP/gAZWiCaN5d3VNCeVT9418ZecJEFXKgprBWGOq58Yl/bVyWiH+rlkTDheRzDHVpbVd8HbIUcuR2eSdgkwR2NCgWpQBTiNCR2fe3wD4edsM2GEIDeUBpEfmGDQhznbLCjkFYfFo2vqUGkcgbiEv2AeZQrRGQNnE5ztNhKgCQbo4ULccics7oBmhpTnvDZ4ZORd0GPhQDqlaICOxD4BnUg89a/IPGMyJttaXWnfuX2+WF2Y33MKdkmczC0yYP97dddq5WN41zsPocDJhm87uij2+UuqOe2W2bf1vswSyIZ9tPrJ2Toioqw720cjdPP2+EdhBwAqQlvArHoM0Www8IlgwT/Scj0T2fscngiQnJrhHy1YxnW1VRtVYcrKwEGSScJaxi4x9Vrp7Nww6pkmHwPMNPMPWAHl7fysm5iBwaBHd9tA2V0Pkpc1hn3OCvGwOcD04QOflU+mNDpyB/4zYuGOCuxIyC29WHDn9XPyQr/LX03kiLXgYHd681RMlnjRUj0sAAWQJECHLoF8+5DHlGHJfCxFPWvPY1t4Rk+2iAP0UeTFqQCJ3gh67/YKl7snuHgyStPJ/MFyYRWcfbAUNkhiKtIiqkzVQuGsB9YWgdeklFMAQW86h8OJtjhYGK86byucn2O4uYNMljunZiys71SohtIorZADu4Oi6W1rkc8YxiaFC1Bg0h5d89Zkt/7UexkYvEeGlLeV3T8NHdB6b0y3N05RskpFwP0AuZ32HiJGFQuNLF+hhSny9hX2kjChzM3G3Ji8drplr1LfsFc+QyUOcg0QpzUeqHhzflb7l41nQIKZVi4ui82jjf1vHg7+/ZATVB8m28q8lW6Hgm2vEf4+wMhwJg3EM= 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:(13230040)(36860700013)(376014)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Feb 2025 08:59:40.9035 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c0bc2e49-7472-46f8-c27d-08dd50c3bf13 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: BN3PEPF0000B072.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7116 From: Patrisious Haddad Change POOL_NEXT_SIZE define value from 0 to BIT(30), since this define is used to request the available maximum sized flow table, and zero doesn't make sense for it, whereas some places in the driver use zero explicitly expecting the smallest table size possible but instead due to this define they end up allocating the biggest table size unawarely. In addition move the definition to "include/linux/mlx5/fs.h" to expose the define to IB driver as well, while appropriately renaming it. Signed-off-by: Patrisious Haddad Reviewed-by: Maor Gottlieb Reviewed-by: Mark Bloch Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c | 6 ++++-- drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.h | 2 -- drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c | 3 ++- include/linux/mlx5/fs.h | 2 ++ 5 files changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c index 45183de424f3..76382626ad41 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/legacy.c @@ -96,7 +96,7 @@ static int esw_create_legacy_fdb_table(struct mlx5_eswitch *esw) if (!flow_group_in) return -ENOMEM; - ft_attr.max_fte = POOL_NEXT_SIZE; + ft_attr.max_fte = MLX5_FS_MAX_POOL_SIZE; ft_attr.prio = LEGACY_FDB_PRIO; fdb = mlx5_create_flow_table(root_ns, &ft_attr); if (IS_ERR(fdb)) { diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c b/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c index c14590acc772..f6abfd00d7e6 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.c @@ -50,10 +50,12 @@ mlx5_ft_pool_get_avail_sz(struct mlx5_core_dev *dev, enum fs_flow_table_type tab int i, found_i = -1; for (i = ARRAY_SIZE(FT_POOLS) - 1; i >= 0; i--) { - if (dev->priv.ft_pool->ft_left[i] && FT_POOLS[i] >= desired_size && + if (dev->priv.ft_pool->ft_left[i] && + (FT_POOLS[i] >= desired_size || + desired_size == MLX5_FS_MAX_POOL_SIZE) && FT_POOLS[i] <= max_ft_size) { found_i = i; - if (desired_size != POOL_NEXT_SIZE) + if (desired_size != MLX5_FS_MAX_POOL_SIZE) break; } } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.h b/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.h index 25f4274b372b..173e312db720 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/fs_ft_pool.h @@ -7,8 +7,6 @@ #include #include "fs_core.h" -#define POOL_NEXT_SIZE 0 - int mlx5_ft_pool_init(struct mlx5_core_dev *dev); void mlx5_ft_pool_destroy(struct mlx5_core_dev *dev); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c index a80ecb672f33..c862dd28c466 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/fs_chains.c @@ -161,7 +161,8 @@ mlx5_chains_create_table(struct mlx5_fs_chains *chains, ft_attr.flags |= (MLX5_FLOW_TABLE_TUNNEL_EN_REFORMAT | MLX5_FLOW_TABLE_TUNNEL_EN_DECAP); - sz = (chain == mlx5_chains_get_nf_ft_chain(chains)) ? FT_TBL_SZ : POOL_NEXT_SIZE; + sz = (chain == mlx5_chains_get_nf_ft_chain(chains)) ? + FT_TBL_SZ : MLX5_FS_MAX_POOL_SIZE; ft_attr.max_fte = sz; /* We use chains_default_ft(chains) as the table's next_ft till diff --git a/include/linux/mlx5/fs.h b/include/linux/mlx5/fs.h index 2a69d9d71276..01cb72d68c23 100644 --- a/include/linux/mlx5/fs.h +++ b/include/linux/mlx5/fs.h @@ -40,6 +40,8 @@ #define MLX5_SET_CFG(p, f, v) MLX5_SET(create_flow_group_in, p, f, v) +#define MLX5_FS_MAX_POOL_SIZE BIT(30) + enum mlx5_flow_destination_type { MLX5_FLOW_DESTINATION_TYPE_NONE, MLX5_FLOW_DESTINATION_TYPE_VPORT,