From nobody Thu Oct 2 21:47:17 2025 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2087.outbound.protection.outlook.com [40.107.237.87]) (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 56D9330C635; Wed, 10 Sep 2025 10:25:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.87 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499939; cv=fail; b=t8wN9M+nbvUo0vaFw1rwJ99QeyHIm7QZ1Yrc1FXuI7nM4u/57/eTFrven3DhJVxCUlsLTaVod+XZioxO20JeSTZ0MFNIqKguXpMGf2uqIjI228C2GiGAn1BtxPh2QxMqCvYYZW8JnIDrHJz/mAACQlgbhTzPJFspz8Kj8y917qM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499939; c=relaxed/simple; bh=P1d3K8e9NGosJK3nnxXCFzCCmEtFYZaJXk06dhdy8tY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=rdG5HI4L5cjM14WXe9UinCv0HrAThZtzEN49ze2rNfisVtWlH0kkGn+CSgQQncjwsEq+yPEwKtcE3nrYNvgNM0rFMioBaS02E2yW67YJ95E8Wr+/IyXvsLebdpz4/3O/1YrHuz53tuwaAXuABo1dnk1XE63byfj7ikYG5S9JKi0= 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=D0MYVZfU; arc=fail smtp.client-ip=40.107.237.87 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="D0MYVZfU" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uMklkVw/sh/5t7ijLHVMTYR4Le5GZil3A+mmRDHbkdjsrPdNNGyCUrwvBkUlYJyLmgVnBtUYZclTh4dXNUXI/weOl9yDczTj6hM0s0Z68ij4eikylaqTGd8cZEPp4wMVyepSRBKuEGFWhh1FgfuIE6mTXjZsT70T3x7iKoIhT8aPPPQrmezaCNig8LghYIK4BvYWV2r3R6HrKrG5RTaYvJA1/TpUGf6T0u/M6mgSoSKM7xyzwwkZWtGTDAdqc1uDqE75e/wIsFafVICxvvCTbgYDbFSohBsf2B6ZyUoROA+M+OJMuc4BB47Y1d6DDQXfrawDazG9Zwax74sabZuOOg== 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=ia2pCsiipcnyk81IrtZjBhhe6S2s1pxR3vlzaq3jN2s=; b=ns120yF9k0DIZi/uFMVDppVVcTXHjyddFsoFkOviNgS8Ac/0kAyGzV6czTJ9Qz89I0KDZOhq6zCq7OO7V3Uk7RLVL3taP2HKyxbDNV9IY9z/9qhjPqAl5IiNUS8b+7cmi2UXhHj800TIuwg7VvjHDTuG/BCkeJeRqKhbg9N8QABfsSBeJtdou+Hv+9bJimkA8y/lxrSSTLoTxHjC1PtHHlyy7VLeXeUnNBDb+iG6uXWICdPhLWtkXgF9u98OAnmjfAwkU3nwuRACXzblggVMW9Z3t6vocFZdPvBExJ077SDW2SEsz4sU/tUIhfiz37WA08O0PCiis62wxtXHDPJysA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=google.com 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=ia2pCsiipcnyk81IrtZjBhhe6S2s1pxR3vlzaq3jN2s=; b=D0MYVZfU28ZNBOQR8Im7Ugzd+IIheBd+ApABUkVyrsXSCrTaHSJRSq5AfTO31GDvqDiOsYnbD3tFTmfYkx0yA2Mbjsup0VFN6tnZ3srr1SrmJb/3JcmH91TP92BcLb/wYhxKaVaUGEF95zCHKjPieMY7jsmJWPYoO35kNir4sv63znKWNmtJc+W7TdTloP1Bm1B5ZsnxGuthnp4JPiuhrTQSCNEegQehF+Wo+97e5yj6hzTAQOE1gpvUtIPcbVm+1+kffsiczokFpD9vEho25jEBhoKZMXpIGEA9mOcphio7Lb07KmrF/QW2011qI6QwKRGy3s8lD4sXVk0x/0/JSw== Received: from MW4PR04CA0329.namprd04.prod.outlook.com (2603:10b6:303:82::34) by DM3PR12MB9435.namprd12.prod.outlook.com (2603:10b6:0:40::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:25:34 +0000 Received: from CO1PEPF000044F0.namprd05.prod.outlook.com (2603:10b6:303:82:cafe::24) by MW4PR04CA0329.outlook.office365.com (2603:10b6:303:82::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.15 via Frontend Transport; Wed, 10 Sep 2025 10:25:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000044F0.mail.protection.outlook.com (10.167.241.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:25:34 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 10 Sep 2025 03:25:09 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 10 Sep 2025 03:25:09 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:03 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 01/10] net/mlx5: Fix typo of MLX5_EQ_DOORBEL_OFFSET Date: Wed, 10 Sep 2025 13:24:42 +0300 Message-ID: <1757499891-596641-2-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044F0:EE_|DM3PR12MB9435:EE_ X-MS-Office365-Filtering-Correlation-Id: 25bbc07d-dbe9-46e2-8aa4-08ddf0546099 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700013|1800799024|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0EDjjjirK/MTnehGHYP2mGs1R0lln5ZovkYsYOpR2PdOI/7LeIyqSVr8ICzb?= =?us-ascii?Q?EyuI6Ppgbks2GFw0c4rTiOeACUkMNc7QX5Eo+YZwc9x3s2j+T/0RsHKskIx4?= =?us-ascii?Q?Pbm3rrLe9t70nwSWhQBQ5I2Ev4vVaf6Ap2JLXY1mQsXTDtxhm5TjujUewTuk?= =?us-ascii?Q?1C6aTJijJkQr6YxgHVd3KXjJ/Vu7sYD9lvA510X8FhVRHl5v/x74bXypzqXR?= =?us-ascii?Q?B+mSOD+TplRAAatKUZLXz4sa6oTWjP7VS0E8vAOhVVAc8uEcXeng6keG0iWU?= =?us-ascii?Q?uV88leNRQuI3NE7VVMfH0BEtbj+Wi9w6giBxNmAbX2TBsSbNAcwfq6lvhLsx?= =?us-ascii?Q?VZdaf8RM19GXef+/Oka/tdyMWzBWKxmCsSvqct3w6XL4hIycD3R0/i6Tzskf?= =?us-ascii?Q?MdYqjZUltd+V/aN0KCqq2xiBozCy3fxVRhbaxYz9jEd1/dmtNkGIR/d0fkaa?= =?us-ascii?Q?jSv1rqW9BrDyigoM2KtdJnKO3w7AZf5MAhb1A5Yg0MHR0N2Nrs+9FDYFktW8?= =?us-ascii?Q?/2NSd40ArFEPJPObE/Y0gwO7bY7RftovgIFe+wW5+ZSZBUt04BieSByfnWiI?= =?us-ascii?Q?xERRYY0wNBydbWVPb70ncY55lQJdw8ZI3JoYNr8T01sXApeTLZlx1KyauYJK?= =?us-ascii?Q?6xcdwPyZXrU/Z1IOtpHSBWhwVj6bAOCoO1a4h/jtF98YRpYzIpO0iooDUp+H?= =?us-ascii?Q?6OWLbQM7tddGFT7vwCBdrOLdrK3oOI0CIFTo8ongiTkYvVvDiSFdZlm20mhp?= =?us-ascii?Q?98gzsA+q9kcsHTK3AdAphaCt+kUrgFi9x5lEzkvfb/1o2snBP5654HMRDd/d?= =?us-ascii?Q?aoGLf8urlz1k3pDcM/BLo3qzDzL3cR9SFT68LSn6/Z1e6NjcStLX7pfmBujH?= =?us-ascii?Q?4xk7esWSYfDaltYvKFC/twp3Gbtgvzcy/Q2nkcAU0BUnPMbSCke7x4pcj9c+?= =?us-ascii?Q?WN980GBfvzFdM9TL/+cihSSyGkOSWCGLVErwP/Cp/g+FFDCyLMtDTsD+KDxQ?= =?us-ascii?Q?JlrLw6pgm/cG6ahWy+K02qXXUbBZqSPjbHMIhcMN8OJdzG+0PTw0aWPnbXCW?= =?us-ascii?Q?JmXRe+OPLurm2DZuUIQ6xTLaQL0d949Vsn5459ameSR1byLUEruYrQYDSrjZ?= =?us-ascii?Q?a2TzmUSceHWK/8sZ7+mYaipnkEMANZTunCp8czEm1wJkGwFcy0Jvb5yzwQy8?= =?us-ascii?Q?sri6hEljqynnySPQiRMGcu/USwRl+yvOh5D9K90l96NmQ7duLTgAnRsoHEvI?= =?us-ascii?Q?jOLGgiKYP0FAalVCPJ01kzwde6YPPhVRGVnoZTeaUJVeRvDfoN1sEgvnDI1l?= =?us-ascii?Q?9BZ9hwZF8DldnvyRUUaJHPoExvuRCwwEn//QBPnLUO2PxctpHaMdA1Zx3mCD?= =?us-ascii?Q?swNZgnXPf25PIZ6Wlbf0tmp9Jy0oHO1oTSi0vl+a0LhMaE78WjufJdEFLMZ/?= =?us-ascii?Q?8H/mpX9jEmeyu2ZM1bUw3MpezkknQfkbZcQEqF2F5c2+/6k/I4orkaOOXCvH?= =?us-ascii?Q?o/3+7VNGG4HHMcy+pxrNmvAdnViuOiDjm/CS?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(82310400026)(36860700013)(1800799024)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:25:34.3047 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 25bbc07d-dbe9-46e2-8aa4-08ddf0546099 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044F0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR12MB9435 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu Also convert it to a simple define. Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/eth= ernet/mellanox/mlx5/core/eq.c index 1ab77159409d..f3c714ebd9cb 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c @@ -32,9 +32,7 @@ enum { MLX5_EQ_STATE_ALWAYS_ARMED =3D 0xb, }; =20 -enum { - MLX5_EQ_DOORBEL_OFFSET =3D 0x40, -}; +#define MLX5_EQ_DOORBELL_OFFSET 0x40 =20 /* budget must be smaller than MLX5_NUM_SPARE_EQE to guarantee that we upd= ate * the ci before we polled all the entries in the EQ. MLX5_NUM_SPARE_EQE is @@ -322,7 +320,7 @@ create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq= *eq, eq->eqn =3D MLX5_GET(create_eq_out, out, eq_number); eq->irqn =3D pci_irq_vector(dev->pdev, vecidx); eq->dev =3D dev; - eq->doorbell =3D priv->uar->map + MLX5_EQ_DOORBEL_OFFSET; + eq->doorbell =3D priv->uar->map + MLX5_EQ_DOORBELL_OFFSET; =20 err =3D mlx5_debug_eq_add(dev, eq); if (err) --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2085.outbound.protection.outlook.com [40.107.102.85]) (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 7895530C635; Wed, 10 Sep 2025 10:25:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.102.85 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499951; cv=fail; b=c2FO0gGXiIdYh9HbyjzFYiQPP2eCH6p4+4XpdB3D+kiK9Y0+zlwinCCcMULE0X0+WvVvRaWT8JbXdFMWS+BEsUDby284QXT766RGhX4tiriE6gnm9gOSC1THNkLhGA8FWzqybC9CTC0GMCFqcdw24KvHmEPBichXuQeBow3thNs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499951; c=relaxed/simple; bh=KH+CmzkfS5fJrZkpksUfnaDscStSRmNdk2M1CSnnjXI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=B/25Y5NoOWg4Iw4y9pR4SwUVji1mD97ExDDFKa6qYsNLpn6d9zGflNeb8wHik/M3cqiVMQKsXwy2hZ5n+7HD2bASchXx74lsd//B4onrY687QhVPF6i3YS6/RETKylaoaUJUWQ+u5Vf+MAOa+UBTDAV2MWugmgLFCcdD2ppJGzQ= 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=Kn3YLwiu; arc=fail smtp.client-ip=40.107.102.85 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="Kn3YLwiu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GpDQH6RUC+CzoBkmMshpsq/luYgebubxoD4DfUMrdisHXvTtP4ZJx1co0uW2BwV0DcV5vSNij7qRDshMWGD2fNnMktb24mVHnaavf65g32YZGSrm4qeqjx6raXUGliVGkzQPskqv5w3xUogk2cVBqMe/BOu8Ss50dx22T38PM7ZvxJ9PztIbtmNjoRxc3E6wVGaop+ZfDIS/FBe+UwH+RyhMio6Zi94EX5zF+gYTdUBNNZGK9vBhtd7qG3RZmja1ckTrbxsP6v3ZcMVSv06wE+GF0O1Yo5/CGmCFEV+eY+QXWZJ+oDyZUrSgbPrtKbJuuqdv5KOwmmOafgaC3SeTNw== 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=gJXE+myfLkG9n9/wSbm20MzuplAyS0ccxJDIiVUn6Ks=; b=WNi9f+AG2ACr5ZmBGSWmY9dMCFn5Q9MToBi9M0tzdbWFu/A452FB6StRnxcrL30rRs1ElfTVq3A6q/5Dg8YuWzt/Vv1fcydc2v9nM0ZAxk6OqEHlHqNHlLcI0fCY+H2kveKwNwM9bm2Aym0tw6UlwaqXipNBSS2SnXA0YuRTbKfH6moGsx27JFHF7P55hvSvgu8NC/Bmg5pdoAJAZSlWxQleiHhYKJKPDzUp7mrk7N+eGSr6Z06eypo7KEZYVzcZJwXWqd6Gbf41m3DTYa2Ap6S20n933qDmU4tKh+OPABZMCQOprsQRLyalqDj+dO/jyidQ1vo258c5/JQ+9V+j1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=google.com 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=gJXE+myfLkG9n9/wSbm20MzuplAyS0ccxJDIiVUn6Ks=; b=Kn3YLwiuWTh1T08zT/0Xs41jB9wfZv5zlTrCb1cilHG7l6++Xh6mUE7pbqw9DzIrUA8wlCQyQ9tQe4mkU4p5WqAnldfi0t2mnaOFIz0ZNTgAzBJl4KRsBaQPrtQGfHlV4Tf5KyzhV5KgVSmpho8npxzvsXwqtIne64Bvo3To25qbapyscKsvhJy/0TrwNBVcUXCT9KjklUffdHp3do9vfETcq+IhC7V6HvAZify5FDRzIo1aKFV8PKDO4ajsPABiff30MLrbJ+guWo4LZuK3l1yEEVFYXHxiYFwiBuFb/q1pJz9NZxWVbEMy2h5B/oVrGNcDMMCtMd0JvO8+oeKedg== Received: from CH2PR07CA0030.namprd07.prod.outlook.com (2603:10b6:610:20::43) by LV2PR12MB5968.namprd12.prod.outlook.com (2603:10b6:408:14f::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:25:43 +0000 Received: from CH2PEPF0000009A.namprd02.prod.outlook.com (2603:10b6:610:20:cafe::d7) by CH2PR07CA0030.outlook.office365.com (2603:10b6:610:20::43) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.15 via Frontend Transport; Wed, 10 Sep 2025 10:25:43 +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 CH2PEPF0000009A.mail.protection.outlook.com (10.167.244.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:25:43 +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.14; Wed, 10 Sep 2025 03:25:19 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.14; Wed, 10 Sep 2025 03:25:16 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:09 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 02/10] net/mlx5: Remove unused 'offset' field from mlx5_sq_bfreg Date: Wed, 10 Sep 2025 13:24:43 +0300 Message-ID: <1757499891-596641-3-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000009A:EE_|LV2PR12MB5968:EE_ X-MS-Office365-Filtering-Correlation-Id: 047ff07b-9075-4304-b74a-08ddf05465f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|36860700013|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?egA4T4GjBjLc9MRVjCwpZ7qSp3sZYhoTPSEh+S/p/ivsNRUku+rNhvnZrcxG?= =?us-ascii?Q?CGMWT5HBjOpNGgp4S5ggnO+azBAv6Y1p+wdjc+4TwtjfcaIF12JJ4jNzjQE3?= =?us-ascii?Q?i5hTtnb6FmXPUq9ouOR+3eDdqUZ39RB5EmEUfPU+U8XrUEFmszJyRG9iy/1T?= =?us-ascii?Q?XDdSW2nAvWbVc+25aTEkmACvOgYblezYZNUhJ74XGOIDrY8+e3D1K+MI/Y0P?= =?us-ascii?Q?VgSgLqhXavfvrSGbtMKngXXKkatcX32e1WtF5eJqkOp0Mi+W3Zp9PI5hkW/e?= =?us-ascii?Q?MdbA4ybW9yxQCVYM9j3DyW9WpfvvvugjLV76C00fRh659OrKpFH+WUbYYJAn?= =?us-ascii?Q?iFSnmAfe2x3NEZxX1VeA1qA8hxweKlofzHdwi8DJnMZjPcYr5dwiaZW2kPS/?= =?us-ascii?Q?LpsQCkDwAPSbeg9oymIPfHf1qKjtqITRP9YXkM1nx4Mh1g2P3PoSmU0Kzwmp?= =?us-ascii?Q?Vg73ByYTUNDfuOj1iDnZV5LHt+KYOcl80wp/rWg9i//QxsR24K6P273fqTET?= =?us-ascii?Q?SS6zI1yBZzg2BNSsaS+/IFVehMqS70MDlf9ih6OdgLWQtACcti2zvhI+LTgi?= =?us-ascii?Q?+TkA4796M5mOHbs+Il1Qqj9JSmD27lr0R3qDMyyfvp7ov9tQa63JcgPhlBSV?= =?us-ascii?Q?LJQ3yMjp8hXNtgM+cV985IT5aO2KZdeMrrxfik6nzoHYjJ7wBoWABujLc52L?= =?us-ascii?Q?fmY5pUL2dxXUfFVtJhBK6x8jjq2YdY/T2ApDjtefE/ZHwNtSWTWdCWdlBJcW?= =?us-ascii?Q?M5xUmIbzfQgqJN/eIAKrO1glfwjJKlPpzn1fXbx8WRNx8p7ZFJ7m74x633NY?= =?us-ascii?Q?B49q8XG9mQekb+sgh97uOe5bPiHy7ybFJDJWirt9V7JT50ya01CdHCC21kXl?= =?us-ascii?Q?LdfWTbsJMeHovVGxsEs/xO+WVKm4RfaEeLYNlN8p/LxmjV4qKggwOGWUFG26?= =?us-ascii?Q?kkXH03Q/2hF9zojyZqq/jGmEuBXwGQ61Eu3L7HGn7be9sObKyZX+K4FjRHMY?= =?us-ascii?Q?2WxcbeeMKlxJ45GW5wQDuwU4mJJw/3LsrbxzcNjPJn+OF36kSYQxVaMCio7W?= =?us-ascii?Q?0tVH84wsD1j1BDgbUa52AF18LFNQnRmEcUGVK+Y+crWPHaecwW7zccMs8IrH?= =?us-ascii?Q?L+Zp85yIL4Cfm4MV5FzZouZO0qVjRnZ4Gu1isbqPZJoFZXijKXEZw8dwFZrs?= =?us-ascii?Q?C7najDuS/UeIr9+IGNMRYXjvP4b5eA4vcSsBaw86N4qcntRzTae/p1jQmXYb?= =?us-ascii?Q?BXdgdBf0+xJSEyA/HyaCXLhNSASS3Q9DdE/iMbA16+ML5ShKij535TYeuE0o?= =?us-ascii?Q?/ZIZ9iCU7n1V1MgSukgDpwxiSkBg2eAFpYki78gT13e9oJm3u/5rTLlbJ2ta?= =?us-ascii?Q?SpiOi3mIDtNiDquRvt3MhxCLY7VmPrf1EOjTUXl/G9/yuKvtS8iTRDFp3Yc7?= =?us-ascii?Q?4TeZnIUjbrkLO8CZiR6ZABH4wCBVimj3tlImqandyiu0B4ZKY0kESAD2emXM?= =?us-ascii?Q?ptK4vKmw7LGC0lCrwdpPytmHZ3OO1ENHl40b?= 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)(376014)(1800799024)(36860700013)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:25:43.2740 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 047ff07b-9075-4304-b74a-08ddf05465f4 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: CH2PEPF0000009A.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV2PR12MB5968 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu The 'offset' field was introduced in the original commit [1] and never used until commit [2], which added an unnecessary use. Remove the field and refactor the write-combining test to use a local variable instead. [1] commit a6d51b68611e ("net/mlx5: Introduce blue flame register allocator") [2] commit d98995b4bf98 ("net/mlx5: Reimplement write combining test") Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/wc.c | 12 +++++++----- include/linux/mlx5/driver.h | 1 - 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/wc.c b/drivers/net/eth= ernet/mellanox/mlx5/core/wc.c index 2f0316616fa4..276594586404 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/wc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/wc.c @@ -255,7 +255,8 @@ static void mlx5_wc_destroy_sq(struct mlx5_wc_sq *sq) mlx5_wq_destroy(&sq->wq_ctrl); } =20 -static void mlx5_wc_post_nop(struct mlx5_wc_sq *sq, bool signaled) +static void mlx5_wc_post_nop(struct mlx5_wc_sq *sq, unsigned int *offset, + bool signaled) { int buf_size =3D (1 << MLX5_CAP_GEN(sq->cq.mdev, log_bf_reg_size)) / 2; struct mlx5_wqe_ctrl_seg *ctrl; @@ -288,10 +289,10 @@ static void mlx5_wc_post_nop(struct mlx5_wc_sq *sq, b= ool signaled) */ wmb(); =20 - __iowrite64_copy(sq->bfreg.map + sq->bfreg.offset, mmio_wqe, + __iowrite64_copy(sq->bfreg.map + *offset, mmio_wqe, sizeof(mmio_wqe) / 8); =20 - sq->bfreg.offset ^=3D buf_size; + *offset ^=3D buf_size; } =20 static int mlx5_wc_poll_cq(struct mlx5_wc_sq *sq) @@ -332,6 +333,7 @@ static int mlx5_wc_poll_cq(struct mlx5_wc_sq *sq) =20 static void mlx5_core_test_wc(struct mlx5_core_dev *mdev) { + unsigned int offset =3D 0; unsigned long expires; struct mlx5_wc_sq *sq; int i, err; @@ -358,9 +360,9 @@ static void mlx5_core_test_wc(struct mlx5_core_dev *mde= v) goto err_create_sq; =20 for (i =3D 0; i < TEST_WC_NUM_WQES - 1; i++) - mlx5_wc_post_nop(sq, false); + mlx5_wc_post_nop(sq, &offset, false); =20 - mlx5_wc_post_nop(sq, true); + mlx5_wc_post_nop(sq, &offset, true); =20 expires =3D jiffies + TEST_WC_POLLING_MAX_TIME_JIFFIES; do { diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index fcfc18bfeba9..5a85b6d91ba3 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -434,7 +434,6 @@ struct mlx5_sq_bfreg { struct mlx5_uars_page *up; bool wc; u32 index; - unsigned int offset; }; =20 struct mlx5_core_health { --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2053.outbound.protection.outlook.com [40.107.237.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 1CBB8319848; Wed, 10 Sep 2025 10:25:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.53 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499956; cv=fail; b=NJu8vWqtxfTzcZfZnz+RYjkMmNh/xFez05XS/ljM3F0JXT66meqQUSs4Z0YtVn2gG8rYuAWi1R6gB/DN75Wa8DeyZEHhXcttzyALBZ7JKc7V5fRQVsY1Js8fmQ3RXakuWEOM1ZWfT3Eb01dbfyhMuL7IHDXqveWzHdLao8QLd0M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499956; c=relaxed/simple; bh=nazo57QJUKzzloxe+PZVTh3FcqlvIFzHSu9eXsbDz5M=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=X0WkOWnoriW9NXp5EwuWehNLdygl7QCuSE5+EpibtF97nwC5FJulEUvyzfz1pImyIGXEs29s+CuJfE0jr+/5KRS08FS0bUiTZGrLwNNA8yXujHAuVokXNPonWeulDAnON2plMcvBxRF3blRIpW9V7tdLoeAFVMEr4beC2dbxNnI= 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=jcatDgok; arc=fail smtp.client-ip=40.107.237.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="jcatDgok" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=g5fU0s8QXs0pY6KjWqTtfXWVJdomWtc9DnY7p2hPbD7B4G61u7vZaipqW3tHThDd6drA8ymlkYKQd08xGUz+X8oHlQeqc5+J93Gayq7y5RQK6IkxOwb7fV3FmW4xlQljf0O1Skei6A6wnXYdsValuxNozPQPhAZHtyOjyqkCktKYLmd9HEYv/z5d+E8APowxgutfZifarojW9V3BkBYs6istQCubvlDB51SznApz1hJJ3KSpAiyxI+AUa2PEiIgVWDDcZqAprv0r2twM6jbZTxA0XVLQ1Y2pq7FC8KXPv8ugjytsIuEZBCe4vq07IVo9gB1n0n1nLCcYoaS3/UvIkw== 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=xdHtfWwkeP09jxPwOFIL2Z9wXiF7nuMuVAjBFcdgbXA=; b=FTOQ5O9JmUYNS3rUzEmEdr/7Av+C9bPfL0OkSFkrJegLb/Bj5l4ntRN+/PFoC+RmNGypYtlq7lQxAJk2sZ7DgCpgPMaE5C2RNDChL2gs1A7d+U/e7mXjR91jvRcVu9iB69JQ72yElN8mM+QFLQ6cvMtyCtQqQAonq5+TmbTtjR/ouZam/7vuWa2fEq0riPyqOtjQh9a2F8sZnK56+nE0l5q1DJ4n8cUndVll4NUEqZLEj57S2U07ZGcnwUNd6OiO4LOvlCjtjptKa7v6RbqWhnjIaO7Eu2cYvZKrPbAf0VcN5xlLzr2OUZx/WUy06/PLEznBguCZULnHkEbiV+Q86g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=google.com 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=xdHtfWwkeP09jxPwOFIL2Z9wXiF7nuMuVAjBFcdgbXA=; b=jcatDgokEgknpy8WtxeQDdl2KLvA/7RBeXaeAdTAisiGJyE7mDtLP6wxczdmQ12olFDSBZEuBhyQjJqLSEO7NDAXdiju8uB50vA1qOnQj5tDaD9bK6NN/XlK8pedzQcs6uQ9smmC8JbMP4N+p3C5jQ0LUpIgLzsoLtOEQ5ltMkJ3Cw53wtLlU0mbCUdcwVd8BSew7Zm44U0rYelghktO+RdAhMEPBH9voiD31d2pISAATUPJJcNN0w50w71iA0guz5NQTsYRBbvXtLc04WHWA5M00OXjTfm6h5Mck3jVe9/dHceKxtZ+r0fR0f7G89zueVVJfd5gMq8U1NmC+068oQ== Received: from CH2PR04CA0014.namprd04.prod.outlook.com (2603:10b6:610:52::24) by DS0PR12MB8562.namprd12.prod.outlook.com (2603:10b6:8:164::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:25:50 +0000 Received: from CH2PEPF0000009C.namprd02.prod.outlook.com (2603:10b6:610:52:cafe::83) by CH2PR04CA0014.outlook.office365.com (2603:10b6:610:52::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.15 via Frontend Transport; Wed, 10 Sep 2025 10:25:50 +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 CH2PEPF0000009C.mail.protection.outlook.com (10.167.244.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:25:50 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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.14; Wed, 10 Sep 2025 03:25:23 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail203.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.14; Wed, 10 Sep 2025 03:25:22 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:16 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 03/10] net/mlx5e: Remove unused 'xsk' param of mlx5e_build_xdpsq_param Date: Wed, 10 Sep 2025 13:24:44 +0300 Message-ID: <1757499891-596641-4-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF0000009C:EE_|DS0PR12MB8562:EE_ X-MS-Office365-Filtering-Correlation-Id: 807df9c9-960d-4335-8fa2-08ddf0546a20 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|7416014|376014|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?AbeNFkiDLVaA6Ts1q7zPD33kg1L1GOhf6/ecvL+cCgg1fFqzH6xnoujAUiGa?= =?us-ascii?Q?hM162lwQ2A0ZBsFF0tUhzzpYWPDKGXk0A7g3ILC7+kTL7P9i/0L0CSORobTy?= =?us-ascii?Q?FKuzVD5pIxck4rfnbHi0ED8emEoQ8WjREJVZurPKRJSFlayR6Fpmgl7mVp0b?= =?us-ascii?Q?kURHuLszlDHIFW+RfcR4X6iJt1rFbYgCs9uTyguH06d7zShFSez1r2yt1m9O?= =?us-ascii?Q?13r8ViiP6jX7jO4uiY+FG3DVPGsMeWcp7MY29tFjHxffqdhAivhqND6hPTiE?= =?us-ascii?Q?8kMxPeDPGvWig2t+b0SBGLxvlDHaa4WyWV4aQVKDMe6mB5YAPKcsAfACRu4J?= =?us-ascii?Q?Mdv1Y7DDWUP1lH4ytZ/IkuFAczhTK2xS4a6CwLodoKe7p8sve4C+N/oQpT/G?= =?us-ascii?Q?Z0KStavbJvbg+23L0/4WeZHsb9B+GOine9avJqFPTXMyA0rBo9ESYBNSPBXs?= =?us-ascii?Q?kIfvOFyDls4q6oy8pDxRdW9mVh0QR+wiN1fVtc49U2XeVrc4Fl4M/wJkwSNK?= =?us-ascii?Q?CK9bmMIlUmiJzzm+m4Zi4ZxMWDVEz4/ufKHfKRAvDd/2VT4LLsYxrQ7m5Cnw?= =?us-ascii?Q?/whGVOgs0RXjwCkLoCk9/1zftVVuVvgSgl+pDI7olhE3R2gQ0TywQ3kgHOo/?= =?us-ascii?Q?ie9LCp05VXsF4V/jEhSuREvUGyVAMZpVbs6uXSoOlpqWOYQ7EaPnV0IVlDhv?= =?us-ascii?Q?wheVhbkoG6brgbOhfHitYIt1C7c70v0qlrTOR0CBUlvsMR6wtDfrcpSuiF1l?= =?us-ascii?Q?Bwk8risf7q8P7qjeLGue02zj/jNXB8AkqsHHT5kGo0i2kX75PmeqGEziRjXj?= =?us-ascii?Q?38xumqfBDIqum0X2aofqFpflyGIIh9tzGYj0WFYI4vV21tVcs629DDwk+CAw?= =?us-ascii?Q?na+nlRiXlvZF9xiE8bCsH4+CemRR3djUReB2y0z32jFdFo27r0tOjtduWDCr?= =?us-ascii?Q?Ev8y8PFK62zbzDyembp9UA/VujuZjAzEUSbbxSEJWKvef4m3SY0sStENwng5?= =?us-ascii?Q?t4un+9FoiAqhiSUgyoUtiWInn/qQmZj3+N0OFfbLx3eJxlR+SmLRjbJjmftn?= =?us-ascii?Q?aGycR/gaEh0IyVzv5stnUOGfkUpWCkAOzg195T3/Grm+FJpcMxb1UFl5/jcw?= =?us-ascii?Q?/bqiBbfVm3czGXvYHogteAKEL9oGDlaFOhFwtYMV56Ex72R/wP9B3MMkUNgC?= =?us-ascii?Q?PC200ok93b2kG1Rg8yNsopnVyVXfUcE2enSUghtMobDFmTLPYUGGN6LYACOs?= =?us-ascii?Q?fRVLqUg6hxICViv9bVy5dPPR1Y8h/coBMgsfo0jRqPXSX9e4GVNAM/4Y8uSU?= =?us-ascii?Q?lOJxyN7CTP311sgs9578qxJTiO5GZyZjfTH34WVqtUtlQ1DaKk/t5uiuNq+y?= =?us-ascii?Q?2U6hmQD9PO3LqSnNp9vnEem1i/JYQt1dQfX4Q5ZL8NZNK4SyNwTZCdkjfC0I?= =?us-ascii?Q?T6T5IHwSHBZRF7iIV9vUGd9i95/WlkT579g8pOFso56ihER26CKJ56N7I9jY?= =?us-ascii?Q?qIGxCXQmFSDRxEMXMs5DVHAqjp5athvKZIIr?= 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)(82310400026)(1800799024)(7416014)(376014)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:25:50.0497 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 807df9c9-960d-4335-8fa2-08ddf0546a20 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: CH2PEPF0000009C.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8562 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu This was added in commit [1], but its only use removed in commit [2]. The parameter is unused, so remove it from the function parameter list. [1] commit 9ded70fa1d81 ("net/mlx5e: Don't prefill WQEs in XDP SQ in the multi buffer mode") [2] commit 1a9304859b3a ("net/mlx5: XDP, Enable TX side XDP multi-buffer support") Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/en/params.c | 3 +-- drivers/net/ethernet/mellanox/mlx5/core/en/params.h | 1 - drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c b/drivers/= net/ethernet/mellanox/mlx5/core/en/params.c index 3cca06a74cf9..31e7f59bc19b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c @@ -1229,7 +1229,6 @@ static void mlx5e_build_async_icosq_param(struct mlx5= _core_dev *mdev, =20 void mlx5e_build_xdpsq_param(struct mlx5_core_dev *mdev, struct mlx5e_params *params, - struct mlx5e_xsk_param *xsk, struct mlx5e_sq_param *param) { void *sqc =3D param->sqc; @@ -1256,7 +1255,7 @@ int mlx5e_build_channel_param(struct mlx5_core_dev *m= dev, async_icosq_log_wq_sz =3D mlx5e_build_async_icosq_log_wq_sz(mdev); =20 mlx5e_build_sq_param(mdev, params, &cparam->txq_sq); - mlx5e_build_xdpsq_param(mdev, params, NULL, &cparam->xdp_sq); + mlx5e_build_xdpsq_param(mdev, params, &cparam->xdp_sq); mlx5e_build_icosq_param(mdev, icosq_log_wq_sz, &cparam->icosq); mlx5e_build_async_icosq_param(mdev, async_icosq_log_wq_sz, &cparam->async= _icosq); =20 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h b/drivers/= net/ethernet/mellanox/mlx5/core/en/params.h index 488ccdbc1e2c..e3edf79dde5f 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h @@ -132,7 +132,6 @@ void mlx5e_build_tx_cq_param(struct mlx5_core_dev *mdev, struct mlx5e_cq_param *param); void mlx5e_build_xdpsq_param(struct mlx5_core_dev *mdev, struct mlx5e_params *params, - struct mlx5e_xsk_param *xsk, struct mlx5e_sq_param *param); int mlx5e_build_channel_param(struct mlx5_core_dev *mdev, struct mlx5e_params *params, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c b/drive= rs/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c index d743e823362a..dbd88eb5c082 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/xsk/setup.c @@ -54,7 +54,7 @@ static void mlx5e_build_xsk_cparam(struct mlx5_core_dev *= mdev, struct mlx5e_channel_param *cparam) { mlx5e_build_rq_param(mdev, params, xsk, &cparam->rq); - mlx5e_build_xdpsq_param(mdev, params, xsk, &cparam->xdp_sq); + mlx5e_build_xdpsq_param(mdev, params, &cparam->xdp_sq); } =20 static int mlx5e_init_xsk_rq(struct mlx5e_channel *c, --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2074.outbound.protection.outlook.com [40.107.212.74]) (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 C03833168EB; Wed, 10 Sep 2025 10:26:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.74 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499965; cv=fail; b=JSONxALpUQ7oM+hUfmED5hvFgw/wd0q2o73sqeFB4FVWN0u+xoBX8nB2pdzhX45ts+ohOkG3ksaYi6ubd267wNW3EAcczm551ZQZct5mgE4r0zmSZKZpDQm+rOEaE2zhu4NhLlMRy5BDzKjlvfDCF0eYAYX8mOiAwib72t+X7kQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499965; c=relaxed/simple; bh=RGnfpjivlCd47IfeEWWycynYhsHSKlBqS6+/2Sa3ce8=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Kjzld2Lr5RPU/zhdgFd6FfunDe2TbjNoFMsK8P68Z+pbZvQxQWOIb0nZ5RWw4BGEgs+xZl2dpcSxdz7DqsoKwj/ybNKz5s3YM5G5ku+u9Ca8T0gc8SZEckWZ/AuVlqBx3NwYhs6c3z+4QIq0XKeztPGPEZxbya0tHDnGIyf5tK4= 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=V3EvF64j; arc=fail smtp.client-ip=40.107.212.74 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="V3EvF64j" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Fk4Ztzb2CAKuT2oFoAmVpJs3Jv7HskxTO7cTLQXg5gYWtl3kagiWLaphx2CGkCRTwQ2x0rIa6xSH4xyB3gxAPQAOlGRjCQTLwBaZt74z8gSKEnfFJnEk235VYyTbpavy5JIRf1L5Zm55XCNhms9IEfz2l3ZJ5D1cBYlHsjsCZF7SmJA+W4PEXhi/C4+oTn0beHZD+cKPXnvTDXZFp5pzQ5fJzlyxCE6TExPDhSC0J9CRBPQu5FaR1qi2brwB9SmHtgc/R291zwdxbkjve3963UtQkXd+NT98Ic51bh0F++XfZEYpJSEn3Mg83a6g8HrWew3G55+j8Hlc96viS8U0pA== 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=yPn6eJYl5/tDQAea7TzyNQkztRML83XiJ+xSJ6PRF5s=; b=A9NCvM3YdM3RSf+8qiygj+JXahSTX11N3YMeXkD0WhpI4NMd3N2dYfd+nztlaNiCbbJOYb2mqG9EREnlieRE9EEi5IyMWr8v9T3kPVwovDMWLIlJmZmuWdvWBpck/yKQU59pcoAiknJcUnh2N8SS0TXIU4wbKIU6GfaxE1w5Pjnnj2BABXwIKkMbpmcAFujOqhoDglUH9PiVtg2YAoT2aaZDU2ErwyumCC/4dVwKGXwbP79hX5+dKHZBuu9KF8zkB/WvJYLhsEbXMPYzcIy6nxXkdP7wywMjrSLWOeSURyVfeF4SZASmgL39qnnetv4FJoR+EosNicx3yJxCTljodA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=google.com 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=yPn6eJYl5/tDQAea7TzyNQkztRML83XiJ+xSJ6PRF5s=; b=V3EvF64jbSWikFuJx5oq/Xr+aT2aFUuGexm083rtPWa3GITd6MVLEez319tlsjkAywGrDeJ9/a7qFA8ckayLlzH03p9TcLMN6o/WEI2CPV8EYQrZnaht8MIu4QsodiZhEwRo/I+XQuuH5Op2RtgaloX/5VxVENmwxru43iQPW3hysAXCNt21fQ7qCMk+uxuWa7k6dY2apEj4NqUFai+1Wmh8tiTRT6jjUcWCgFtidvwPhO2GnZ7urXZasm+QIxn2HGm64ZFngRa+8uG6a/JlojSVMOaldXxblePDBFNJ3uU0tBppOTB/yQ1TyDF/ckZ2qsl8fZiZcq1Nk7iRq7zX/Q== Received: from BY1P220CA0012.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:59d::8) by DM4PR12MB6568.namprd12.prod.outlook.com (2603:10b6:8:8f::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:25:54 +0000 Received: from CO1PEPF000044F5.namprd05.prod.outlook.com (2603:10b6:a03:59d:cafe::c3) by BY1P220CA0012.outlook.office365.com (2603:10b6:a03:59d::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.16 via Frontend Transport; Wed, 10 Sep 2025 10:25:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000044F5.mail.protection.outlook.com (10.167.241.75) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:25:54 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 10 Sep 2025 03:25:30 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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.14; Wed, 10 Sep 2025 03:25:29 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:23 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 04/10] net/mlx5: Store the global doorbell in mlx5_priv Date: Wed, 10 Sep 2025 13:24:45 +0300 Message-ID: <1757499891-596641-5-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044F5:EE_|DM4PR12MB6568:EE_ X-MS-Office365-Filtering-Correlation-Id: 445f40eb-ef85-40e2-1af7-08ddf0546c56 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LLIncueXclIZi+HLU5y6qvw+VgCjNwbW1PTmDelWUJPuiEyy11Z6/HKTAAyO?= =?us-ascii?Q?egP7UZhNEJeHaRiJTg4Te5CuUg9LUWq/BiJIbXkr7gcg72nRAwJ67NutuqC2?= =?us-ascii?Q?+rNq8rNxBMHQMYDZJwY5nLV54ShWBoR/50fLT+X6b/+JFGdS9mL6WmC2QYgJ?= =?us-ascii?Q?pWGzGi3hv2OG5ADMu9LyZiHus0oThnddV3ByQmMqVDRtSy6lM7Ug7CDBBsQh?= =?us-ascii?Q?dJFRdfPnq5wXZLGayJy4gpMpy14Jz2E1FCjbFi0/QZ1qM8e7w4AFyXDfdkkK?= =?us-ascii?Q?iM3wwT581r3bZdTRmfPSEt7IiHQ1T8MLfiIzn6BAE4HwUX5c3M8lLcY5f4N2?= =?us-ascii?Q?FQji2iBEFXUh2osPcy7BWNYE3y0KpqtSDTaFCpRAZCdbOeNBdYYugtZim6Oz?= =?us-ascii?Q?vXCXRBLkVZqKipmkp8VlaExYAGhhGA+SO4zvsWtgCUEpMyOTMUsOK1TCkYRN?= =?us-ascii?Q?IuIeGl1ZUjRWjOLoxOLMIoNw1Oo9/CD6iRcrCbN9dpR9MPUAiYuEyWWsirQx?= =?us-ascii?Q?Gmi3jYIUX7loqkT+yfObNkl5CEcJvUg+fsbRDkjUM0V8UB4w7mJQdUEAlA16?= =?us-ascii?Q?6Re3JMzu+W7WcSJx6YyyN+iSFS4RT9DWeByhrNTRYkqou1o6PWFN0H6qjwE0?= =?us-ascii?Q?QJiEiEBlHUHQB6ZzIe5sqf8TaTKoUWYjG/pN30Qr44cCm4r8597oxRdnx3GP?= =?us-ascii?Q?jH37gDZ8QjXz6kX1jLohesOcRWfGbTFxJUal0nybZibPqgmajyCtsRcgXoXI?= =?us-ascii?Q?vE6Q7kpZe4JspimIEN1Lt709Pa9ae7iIar7Mj1uSCUWDSwlawwJ54A30v7U6?= =?us-ascii?Q?Rzz2XleSld8n/eXWBajzQK/AnoWuh83Wu+1f80jAwEAsMB9vbxF0c5eRd664?= =?us-ascii?Q?iFPwF6KD1cNKPyWgiBpbVGcnfLS6IXaJm+mnddiqbgrU73qNOw+3SwnBJry3?= =?us-ascii?Q?0Ybg27iTG/O1m8/fxgIMxNuHutPedjYzqdZj1CfeWhpxlOSeavk2bzDWWtw2?= =?us-ascii?Q?Lrsbkn26DHGdrP628Dw3lIZPszmjFZec/hQAw5wVRb40u2XHMKkKV1qjKsv2?= =?us-ascii?Q?k+Tutt58Lfc8rLoKwtzB2fbGcj24UdYabbsmMklOthMltFaHJVsthiVBQXjM?= =?us-ascii?Q?sGPjLk3FKezPfeKd6/92WlHZjStEdPmYRYizdTxFpNEgKAxn8dgWkMhdYUZK?= =?us-ascii?Q?uo8Wlmcynff+lC2FLMddy+ekAhgE9OTv8fzOP+jLB96GiQlrP2GytzBqXati?= =?us-ascii?Q?+fKEtgxd4V6Lnydjwf1KWi0veeKCzSv3sVDFy3+/D3X0EJOG4lHVdg+pgWKD?= =?us-ascii?Q?38h6Y+KgS0f6xOMp7r1yfBpx6xYnzo/HOqycI8kyK/tDrjEDjWgYT8MNgMq5?= =?us-ascii?Q?5fpJaxEmM+4NnhqP1Yeq3T5GHtdA8D7yb4FkIGFvs4hnCnDQWcDqTdNyLhhc?= =?us-ascii?Q?QSALdh5FXFeRKZZYfyUy5KTbsA7W0swtuTdTKpBgDn6/u7oK3BFADVZfvmkf?= =?us-ascii?Q?WKABXdqIDKCxz/fm1M9/mZ6GXd0aYJDQ4lfr?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:25:54.0325 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 445f40eb-ef85-40e2-1af7-08ddf0546c56 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044F5.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6568 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu The global doorbell is used for more than just Ethernet resources, so move it out of mlx5e_hw_objs into a common place (mlx5_priv), to avoid non-Ethernet modules (e.g. HWS, ASO) depending on Ethernet structs. Use this opportunity to consolidate it with the 'uar' pointer already there, which was used as an RX doorbell. Underneath the 'uar' pointer is identical to 'bfreg->up', so store a single resource and use that instead. For CQ doorbells, care is taken to always use bfreg->up->index instead of bfreg->index, which may refer to a subsequent UAR page from the same ALLOC_UAR batch on some NICs. This paves the way for cleanly supporting multiple doorbells in the Ethernet driver. Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/infiniband/hw/mlx5/cq.c | 4 ++-- drivers/net/ethernet/mellanox/mlx5/core/cq.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en/params.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 2 +- drivers/net/ethernet/mellanox/mlx5/core/en_common.c | 11 +---------- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 10 +++++----- drivers/net/ethernet/mellanox/mlx5/core/eq.c | 4 ++-- drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c | 8 ++++---- drivers/net/ethernet/mellanox/mlx5/core/main.c | 11 +++++------ .../ethernet/mellanox/mlx5/core/steering/hws/send.c | 8 ++++---- drivers/net/ethernet/mellanox/mlx5/core/wc.c | 4 ++-- include/linux/mlx5/driver.h | 3 +-- 12 files changed, 29 insertions(+), 40 deletions(-) diff --git a/drivers/infiniband/hw/mlx5/cq.c b/drivers/infiniband/hw/mlx5/c= q.c index 9c8003a78334..a23b364e24ff 100644 --- a/drivers/infiniband/hw/mlx5/cq.c +++ b/drivers/infiniband/hw/mlx5/cq.c @@ -648,7 +648,7 @@ int mlx5_ib_arm_cq(struct ib_cq *ibcq, enum ib_cq_notif= y_flags flags) { struct mlx5_core_dev *mdev =3D to_mdev(ibcq->device)->mdev; struct mlx5_ib_cq *cq =3D to_mcq(ibcq); - void __iomem *uar_page =3D mdev->priv.uar->map; + void __iomem *uar_page =3D mdev->priv.bfreg.up->map; unsigned long irq_flags; int ret =3D 0; =20 @@ -923,7 +923,7 @@ static int create_cq_kernel(struct mlx5_ib_dev *dev, st= ruct mlx5_ib_cq *cq, cq->buf.frag_buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); =20 - *index =3D dev->mdev->priv.uar->index; + *index =3D dev->mdev->priv.bfreg.up->index; =20 return 0; =20 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cq.c b/drivers/net/eth= ernet/mellanox/mlx5/core/cq.c index 1fd403713baf..35039a95dcfd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/cq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/cq.c @@ -145,7 +145,7 @@ int mlx5_create_cq(struct mlx5_core_dev *dev, struct ml= x5_core_cq *cq, mlx5_core_dbg(dev, "failed adding CP 0x%x to debug file system\n", cq->cqn); =20 - cq->uar =3D dev->priv.uar; + cq->uar =3D dev->priv.bfreg.up; cq->irqn =3D eq->core.irqn; =20 return 0; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c b/drivers/= net/ethernet/mellanox/mlx5/core/en/params.c index 31e7f59bc19b..b6b4ae7c59fa 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c @@ -810,7 +810,7 @@ static void mlx5e_build_common_cq_param(struct mlx5_cor= e_dev *mdev, { void *cqc =3D param->cqc; =20 - MLX5_SET(cqc, cqc, uar_page, mdev->priv.uar->index); + MLX5_SET(cqc, cqc, uar_page, mdev->priv.bfreg.up->index); if (MLX5_CAP_GEN(mdev, cqe_128_always) && cache_line_size() >=3D 128) MLX5_SET(cqc, cqc, cqe_sz, CQE_STRIDE_128_PAD); } diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c b/drivers/net= /ethernet/mellanox/mlx5/core/en/ptp.c index 391b4e9c9dc4..7c1d9a9ea464 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c @@ -334,7 +334,7 @@ static int mlx5e_ptp_alloc_txqsq(struct mlx5e_ptp *c, i= nt txq_ix, sq->mdev =3D mdev; sq->ch_ix =3D MLX5E_PTP_CHANNEL_IX; sq->txq_ix =3D txq_ix; - sq->uar_map =3D mdev->mlx5e_res.hw_objs.bfreg.map; + sq->uar_map =3D mdev->priv.bfreg.map; sq->min_inline_mode =3D params->tx_min_inline_mode; sq->hw_mtu =3D MLX5E_SW2HW_MTU(params, params->sw_mtu); sq->stats =3D &c->priv->ptp_stats.sq[tc]; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c b/drivers/= net/ethernet/mellanox/mlx5/core/en_common.c index 6ed3a32b7e22..e9e36358c39d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c @@ -163,17 +163,11 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev = *mdev, bool create_tises) goto err_dealloc_transport_domain; } =20 - err =3D mlx5_alloc_bfreg(mdev, &res->bfreg, false, false); - if (err) { - mlx5_core_err(mdev, "alloc bfreg failed, %d\n", err); - goto err_destroy_mkey; - } - if (create_tises) { err =3D mlx5e_create_tises(mdev, res->tisn); if (err) { mlx5_core_err(mdev, "alloc tises failed, %d\n", err); - goto err_destroy_bfreg; + goto err_destroy_mkey; } res->tisn_valid =3D true; } @@ -190,8 +184,6 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev *m= dev, bool create_tises) =20 return 0; =20 -err_destroy_bfreg: - mlx5_free_bfreg(mdev, &res->bfreg); err_destroy_mkey: mlx5_core_destroy_mkey(mdev, res->mkey); err_dealloc_transport_domain: @@ -209,7 +201,6 @@ void mlx5e_destroy_mdev_resources(struct mlx5_core_dev = *mdev) mdev->mlx5e_res.dek_priv =3D NULL; if (res->tisn_valid) mlx5e_destroy_tises(mdev, res->tisn); - mlx5_free_bfreg(mdev, &res->bfreg); mlx5_core_destroy_mkey(mdev, res->mkey); mlx5_core_dealloc_transport_domain(mdev, res->td.tdn); mlx5_core_dealloc_pd(mdev, res->pdn); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/en_main.c index 714cce595692..02a538ec2ecb 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -1532,7 +1532,7 @@ static int mlx5e_alloc_xdpsq(struct mlx5e_channel *c, sq->pdev =3D c->pdev; sq->mkey_be =3D c->mkey_be; sq->channel =3D c; - sq->uar_map =3D mdev->mlx5e_res.hw_objs.bfreg.map; + sq->uar_map =3D mdev->priv.bfreg.map; sq->min_inline_mode =3D params->tx_min_inline_mode; sq->hw_mtu =3D MLX5E_SW2HW_MTU(params, params->sw_mtu) - ETH_FCS_LEN; sq->xsk_pool =3D xsk_pool; @@ -1617,7 +1617,7 @@ static int mlx5e_alloc_icosq(struct mlx5e_channel *c, int err; =20 sq->channel =3D c; - sq->uar_map =3D mdev->mlx5e_res.hw_objs.bfreg.map; + sq->uar_map =3D mdev->priv.bfreg.map; sq->reserved_room =3D param->stop_room; =20 param->wq.db_numa_node =3D cpu_to_node(c->cpu); @@ -1702,7 +1702,7 @@ static int mlx5e_alloc_txqsq(struct mlx5e_channel *c, sq->priv =3D c->priv; sq->ch_ix =3D c->ix; sq->txq_ix =3D txq_ix; - sq->uar_map =3D mdev->mlx5e_res.hw_objs.bfreg.map; + sq->uar_map =3D mdev->priv.bfreg.map; sq->min_inline_mode =3D params->tx_min_inline_mode; sq->hw_mtu =3D MLX5E_SW2HW_MTU(params, params->sw_mtu); sq->max_sq_mpw_wqebbs =3D mlx5e_get_max_sq_aligned_wqebbs(mdev); @@ -1778,7 +1778,7 @@ static int mlx5e_create_sq(struct mlx5_core_dev *mdev, MLX5_SET(sqc, sqc, flush_in_error_en, 1); =20 MLX5_SET(wq, wq, wq_type, MLX5_WQ_TYPE_CYCLIC); - MLX5_SET(wq, wq, uar_page, mdev->mlx5e_res.hw_objs.bfreg.index); + MLX5_SET(wq, wq, uar_page, mdev->priv.bfreg.index); MLX5_SET(wq, wq, log_wq_pg_sz, csp->wq_ctrl->buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); MLX5_SET64(wq, wq, dbr_addr, csp->wq_ctrl->db.dma); @@ -2273,7 +2273,7 @@ static int mlx5e_create_cq(struct mlx5e_cq *cq, struc= t mlx5e_cq_param *param) MLX5_SET(cqc, cqc, cq_period_mode, mlx5e_cq_period_mode(param->cq_period_= mode)); =20 MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn); - MLX5_SET(cqc, cqc, uar_page, mdev->priv.uar->index); + MLX5_SET(cqc, cqc, uar_page, mdev->priv.bfreg.up->index); MLX5_SET(cqc, cqc, log_page_size, cq->wq_ctrl.buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); MLX5_SET64(cqc, cqc, dbr_addr, cq->wq_ctrl.db.dma); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/eth= ernet/mellanox/mlx5/core/eq.c index f3c714ebd9cb..25499da177bc 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c @@ -307,7 +307,7 @@ create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq= *eq, =20 eqc =3D MLX5_ADDR_OF(create_eq_in, in, eq_context_entry); MLX5_SET(eqc, eqc, log_eq_size, eq->fbc.log_sz); - MLX5_SET(eqc, eqc, uar_page, priv->uar->index); + MLX5_SET(eqc, eqc, uar_page, priv->bfreg.up->index); MLX5_SET(eqc, eqc, intr, vecidx); MLX5_SET(eqc, eqc, log_page_size, eq->frag_buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); @@ -320,7 +320,7 @@ create_map_eq(struct mlx5_core_dev *dev, struct mlx5_eq= *eq, eq->eqn =3D MLX5_GET(create_eq_out, out, eq_number); eq->irqn =3D pci_irq_vector(dev->pdev, vecidx); eq->dev =3D dev; - eq->doorbell =3D priv->uar->map + MLX5_EQ_DOORBELL_OFFSET; + eq->doorbell =3D priv->bfreg.up->map + MLX5_EQ_DOORBELL_OFFSET; =20 err =3D mlx5_debug_eq_add(dev, eq); if (err) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/lib/aso.c index 58bd749b5e4d..129725159a93 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/lib/aso.c @@ -100,7 +100,7 @@ static int create_aso_cq(struct mlx5_aso_cq *cq, void *= cqc_data) =20 MLX5_SET(cqc, cqc, cq_period_mode, MLX5_CQ_PERIOD_MODE_START_FROM_EQE); MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn); - MLX5_SET(cqc, cqc, uar_page, mdev->priv.uar->index); + MLX5_SET(cqc, cqc, uar_page, mdev->priv.bfreg.up->index); MLX5_SET(cqc, cqc, log_page_size, cq->wq_ctrl.buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); MLX5_SET64(cqc, cqc, dbr_addr, cq->wq_ctrl.db.dma); @@ -129,7 +129,7 @@ static int mlx5_aso_create_cq(struct mlx5_core_dev *mde= v, int numa_node, return -ENOMEM; =20 MLX5_SET(cqc, cqc_data, log_cq_size, 1); - MLX5_SET(cqc, cqc_data, uar_page, mdev->priv.uar->index); + MLX5_SET(cqc, cqc_data, uar_page, mdev->priv.bfreg.up->index); if (MLX5_CAP_GEN(mdev, cqe_128_always) && cache_line_size() >=3D 128) MLX5_SET(cqc, cqc_data, cqe_sz, CQE_STRIDE_128_PAD); =20 @@ -163,7 +163,7 @@ static int mlx5_aso_alloc_sq(struct mlx5_core_dev *mdev= , int numa_node, struct mlx5_wq_param param; int err; =20 - sq->uar_map =3D mdev->mlx5e_res.hw_objs.bfreg.map; + sq->uar_map =3D mdev->priv.bfreg.map; =20 param.db_numa_node =3D numa_node; param.buf_numa_node =3D numa_node; @@ -203,7 +203,7 @@ static int create_aso_sq(struct mlx5_core_dev *mdev, in= t pdn, MLX5_SET(sqc, sqc, ts_format, ts_format); =20 MLX5_SET(wq, wq, wq_type, MLX5_WQ_TYPE_CYCLIC); - MLX5_SET(wq, wq, uar_page, mdev->mlx5e_res.hw_objs.bfreg.index); + MLX5_SET(wq, wq, uar_page, mdev->priv.bfreg.index); MLX5_SET(wq, wq, log_wq_pg_sz, sq->wq_ctrl.buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); MLX5_SET64(wq, wq, dbr_addr, sq->wq_ctrl.db.dma); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/e= thernet/mellanox/mlx5/core/main.c index 0951c7cc1b5f..89b224d76186 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -1340,10 +1340,9 @@ static int mlx5_load(struct mlx5_core_dev *dev) { int err; =20 - dev->priv.uar =3D mlx5_get_uars_page(dev); - if (IS_ERR(dev->priv.uar)) { - mlx5_core_err(dev, "Failed allocating uar, aborting\n"); - err =3D PTR_ERR(dev->priv.uar); + err =3D mlx5_alloc_bfreg(dev, &dev->priv.bfreg, false, false); + if (err) { + mlx5_core_err(dev, "Failed allocating bfreg, %d\n", err); return err; } =20 @@ -1454,7 +1453,7 @@ static int mlx5_load(struct mlx5_core_dev *dev) err_irq_table: mlx5_pagealloc_stop(dev); mlx5_events_stop(dev); - mlx5_put_uars_page(dev, dev->priv.uar); + mlx5_free_bfreg(dev, &dev->priv.bfreg); return err; } =20 @@ -1479,7 +1478,7 @@ static void mlx5_unload(struct mlx5_core_dev *dev) mlx5_irq_table_destroy(dev); mlx5_pagealloc_stop(dev); mlx5_events_stop(dev); - mlx5_put_uars_page(dev, dev->priv.uar); + mlx5_free_bfreg(dev, &dev->priv.bfreg); } =20 int mlx5_init_one_devl_locked(struct mlx5_core_dev *dev) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c b/= drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c index b0595c9b09e4..24ef7d66fa8a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/hws/send.c @@ -690,7 +690,7 @@ static int hws_send_ring_alloc_sq(struct mlx5_core_dev = *mdev, size_t buf_sz; int err; =20 - sq->uar_map =3D mdev->mlx5e_res.hw_objs.bfreg.map; + sq->uar_map =3D mdev->priv.bfreg.map; sq->mdev =3D mdev; =20 param.db_numa_node =3D numa_node; @@ -764,7 +764,7 @@ static int hws_send_ring_create_sq(struct mlx5_core_dev= *mdev, u32 pdn, MLX5_SET(sqc, sqc, ts_format, ts_format); =20 MLX5_SET(wq, wq, wq_type, MLX5_WQ_TYPE_CYCLIC); - MLX5_SET(wq, wq, uar_page, mdev->mlx5e_res.hw_objs.bfreg.index); + MLX5_SET(wq, wq, uar_page, mdev->priv.bfreg.index); MLX5_SET(wq, wq, log_wq_pg_sz, sq->wq_ctrl.buf.page_shift - MLX5_ADAPTER_= PAGE_SHIFT); MLX5_SET64(wq, wq, dbr_addr, sq->wq_ctrl.db.dma); =20 @@ -940,7 +940,7 @@ static int hws_send_ring_create_cq(struct mlx5_core_dev= *mdev, (__be64 *)MLX5_ADDR_OF(create_cq_in, in, pas)); =20 MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn); - MLX5_SET(cqc, cqc, uar_page, mdev->priv.uar->index); + MLX5_SET(cqc, cqc, uar_page, mdev->priv.bfreg.up->index); MLX5_SET(cqc, cqc, log_page_size, cq->wq_ctrl.buf.page_shift - MLX5_ADAPT= ER_PAGE_SHIFT); MLX5_SET64(cqc, cqc, dbr_addr, cq->wq_ctrl.db.dma); =20 @@ -963,7 +963,7 @@ static int hws_send_ring_open_cq(struct mlx5_core_dev *= mdev, if (!cqc_data) return -ENOMEM; =20 - MLX5_SET(cqc, cqc_data, uar_page, mdev->priv.uar->index); + MLX5_SET(cqc, cqc_data, uar_page, mdev->priv.bfreg.up->index); MLX5_SET(cqc, cqc_data, log_cq_size, ilog2(queue->num_entries)); =20 err =3D hws_send_ring_alloc_cq(mdev, numa_node, queue, cqc_data, cq); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/wc.c b/drivers/net/eth= ernet/mellanox/mlx5/core/wc.c index 276594586404..999d6216648a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/wc.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/wc.c @@ -94,7 +94,7 @@ static int create_wc_cq(struct mlx5_wc_cq *cq, void *cqc_= data) =20 MLX5_SET(cqc, cqc, cq_period_mode, MLX5_CQ_PERIOD_MODE_START_FROM_EQE); MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn); - MLX5_SET(cqc, cqc, uar_page, mdev->priv.uar->index); + MLX5_SET(cqc, cqc, uar_page, mdev->priv.bfreg.up->index); MLX5_SET(cqc, cqc, log_page_size, cq->wq_ctrl.buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); MLX5_SET64(cqc, cqc, dbr_addr, cq->wq_ctrl.db.dma); @@ -116,7 +116,7 @@ static int mlx5_wc_create_cq(struct mlx5_core_dev *mdev= , struct mlx5_wc_cq *cq) return -ENOMEM; =20 MLX5_SET(cqc, cqc, log_cq_size, TEST_WC_LOG_CQ_SZ); - MLX5_SET(cqc, cqc, uar_page, mdev->priv.uar->index); + MLX5_SET(cqc, cqc, uar_page, mdev->priv.bfreg.up->index); if (MLX5_CAP_GEN(mdev, cqe_128_always) && cache_line_size() >=3D 128) MLX5_SET(cqc, cqc, cqe_sz, CQE_STRIDE_128_PAD); =20 diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 5a85b6d91ba3..15c434fedff7 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -612,7 +612,7 @@ struct mlx5_priv { struct mlx5_ft_pool *ft_pool; =20 struct mlx5_bfreg_data bfregs; - struct mlx5_uars_page *uar; + struct mlx5_sq_bfreg bfreg; #ifdef CONFIG_MLX5_SF struct mlx5_vhca_state_notifier *vhca_state_notifier; struct mlx5_sf_dev_table *sf_dev_table; @@ -658,7 +658,6 @@ struct mlx5e_resources { u32 pdn; struct mlx5_td td; u32 mkey; - struct mlx5_sq_bfreg bfreg; #define MLX5_MAX_NUM_TC 8 u32 tisn[MLX5_MAX_PORTS][MLX5_MAX_NUM_TC]; bool tisn_valid; --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2076.outbound.protection.outlook.com [40.107.212.76]) (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 8F88E31A072; Wed, 10 Sep 2025 10:26:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.212.76 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499969; cv=fail; b=l1vWHTbRQoaCIo/zYqJgX/kGURi8ZymqaH+2CxbWbnACuJh3cfSLK6YtVH4nn+2O5AB9ZSHXO4bCmjTZ7/ciFB5ZbaYiSuxcSmTgIvJgYQhlauhwtbgKnIIid8ZA34tR0A1eqzzViwWPvD1KdtHwtJD1d88/e45V6gx/5qUGdYI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499969; c=relaxed/simple; bh=cAaqKBoxnbEhz+yra4VDImmUtw46PoymDKTYMEersnQ=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cmyEMKG8oe2DI2uAOJ7GfpjHoo31DRmNbTPOGucWtJb9U/aUhAOFPgUL02DGvZehnMbeELYkG/Kl4w7VNFuQYS37wbmB9AZEHjDmsSvwNrwFFIUvp1WOwfIEKdgSC1bY9vckY+5r4fReMR3u8Os2FsbAJq/5GodQeC9nPwqzqmM= 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=q+6zOHsI; arc=fail smtp.client-ip=40.107.212.76 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="q+6zOHsI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=t0YddecHfVZ9fBdEqJV7+vC2juQzBRvyQUFEkuFbE92IEPHWVTdJ0HbUo4lOPgQ4RQQ+DFOtmG81GNZ8fTSHsvFrx9O5rJQ5fldkJMQY0xRTfriBn2os2xO8vZ+O0NIFixjiwNquIx75IcBWQwNXXaPDMCAk0WzyKY4Szv57x1pE7z2G2L/ZPfkWsopoH/w4ZaU9GYKyN5dROZb4+9OLra5QPG2DxfjO4EekDrdYFVa/KEkp+HfiYBNzLgvPwp8RdzCISy3jbOsYZbuDQEtbRe+GsS0Tfw9AP52WlPAzQ05AeL76LyVMttuvgsjqVpSI5Pvk25hEb2/Hjqu4QANB9A== 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=oxhb0YwSQptaFEa/268dyDggWbw63UzW76xYEwJR+nM=; b=qqe0L+c+4Jn5iRvuxH8GAAXPS7FS6QrsGt5H9CMRlDq+xvquB0egsic5gE03fLskdvskzh9dit0/AH796O5HY6Zcl79deIRwbSDQ9w9ZkKXucFxGuRS7hAkGbzqfcfvIaOTCeNDcHAc0qDknh0BwxYxruUoxyZeEmPZHluHJJVkJU5otP3kF62wxUGtYRarZXL8fxtLt7EBj5BsVFpOC2a2ZLuzb8EBYkTMdItzc5yuYDMSrK6LNk0y5Y1GSHedLLdUu3ddPKugBhQQSuLqW+HFlTUCBMzhBGK1E2jie06fE6PGa+SXkGRaz9GCgzzoROs7SZIFBn9IplY7A0aLuKA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=google.com 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=oxhb0YwSQptaFEa/268dyDggWbw63UzW76xYEwJR+nM=; b=q+6zOHsIydnLzrIfbp6IvRzVQx+la5P35+tFqotQzQjdsQS9+2+2zbRnrzbpnWcOV55m3p8kfBKdTvwlNs9cvBmMgXf7IEszzIuKXcJa+tVs3JcA68yMuRZwfvl+hPuF04bvrmVhKckrbRFXgEp1VJORCu8x+q6DX+ObM3ho/QJ0UOMglPXNxzJE6wvInORqXlE2v6d1pFQZ7Z9fTh8Sqla5vVah8+t5Dihto1WpJqQcEdVG1G8W+D/+2GybxD/L7GuQdYjJ55gTANwL5lC73V52LcCwx6MZcnM2/LmirrBz0YkKylsjBL61mHqItIi/pbxDjUbSW9wy5o2TRc1kVQ== Received: from MW4PR04CA0319.namprd04.prod.outlook.com (2603:10b6:303:82::24) by DS7PR12MB6006.namprd12.prod.outlook.com (2603:10b6:8:7d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:26:02 +0000 Received: from CO1PEPF000044F0.namprd05.prod.outlook.com (2603:10b6:303:82:cafe::ad) by MW4PR04CA0319.outlook.office365.com (2603:10b6:303:82::24) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9094.23 via Frontend Transport; Wed, 10 Sep 2025 10:26:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000044F0.mail.protection.outlook.com (10.167.241.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:26:01 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 10 Sep 2025 03:25:38 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail203.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.14; Wed, 10 Sep 2025 03:25:35 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:29 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 05/10] net/mlx5e: Prepare for using multiple TX doorbells Date: Wed, 10 Sep 2025 13:24:46 +0300 Message-ID: <1757499891-596641-6-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044F0:EE_|DS7PR12MB6006:EE_ X-MS-Office365-Filtering-Correlation-Id: eaf4e50e-17d6-4159-59bb-08ddf054711c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|82310400026|376014|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6WnsRexnj6L3J88B/cvAJHxdddUDOqGozg+ny404zLlcZ90VShQQz5nFPU/5?= =?us-ascii?Q?B2KtQd0gROZejclf87MmCSGuX/N5Q4tLkO+7lbTDdG2f9SWHUsB7NDUiinXL?= =?us-ascii?Q?0WG0SI1Dtca6smbCaOIRFAJEDQFV7dKC6bBweOW9NKBxRUF899pvEtrUUL9E?= =?us-ascii?Q?ey0Pl21FnqONazgPiNTuCbsIq9AB0Yr4CmkiDVPYdlV/uUsRWtIW6FMnmkFi?= =?us-ascii?Q?DbReMOFc7humHmrTQC1a3lxMmHTqOJ4r3xg7OF2/cY9v/isURpdi4HDKbZ7p?= =?us-ascii?Q?ehVyVZUbmZzI6l8sh7RHciYiaLv4oOyvDckiKKDYQAo/lKgrFnDTB1Lp1z60?= =?us-ascii?Q?zqVmJ3+p/Zyy0oW5gtEWSFy3+YFiUBvMvsCX6bvbVBHi6r8W/TxXZcSz2wt6?= =?us-ascii?Q?/OLgoBbcDl2xPhfiH3shbpkHJZF4sbEGMMs+9ffFL7mcCh+XIW3OKSZAz/+5?= =?us-ascii?Q?TP3QJzxqwKJxYu2zpnq/d2oNkcNZH9Q+7WY1wcI1sCOvHRwQMexil8YaMjWQ?= =?us-ascii?Q?jCXI6honln18b+3rk8tMYkENw5XkWOPtVID/Y9KdLVmHGnrBZSw1viWK2Bf7?= =?us-ascii?Q?3nKw4wWzZriK1+3rQuq7pQFz3qgTZkpdOs2Q1yi5HIXTzZikpph8Cq0G/AW7?= =?us-ascii?Q?54LrACGb0jWzKf9dA8ZERBLi3Zx+svLrSBmgvp6z3Mdv79V0jKhx6OcLCbyp?= =?us-ascii?Q?4KtHZWRtSjx0Q//8SoIxNa6EDjjB2OzO4SEu1/DY56IL4bAB5FMQYlaXsjR5?= =?us-ascii?Q?02l64pgPZtmb1zdscw3Ymo53VqxgX80D/hG3mHHQqOwthBLr8MazNVFC/ibr?= =?us-ascii?Q?h8T78ClKGqbLcKVuDR3fr6FWs6hr8ztgORL9N8i9siqjv95G2Q9lnwmmxvto?= =?us-ascii?Q?Ez1NZsmuIksnv5ZqXFOogbC7cT7wRvhetYyQGttv5F7AcsMs0ezG8/5kmm/F?= =?us-ascii?Q?KuWlCHF1MHYLt/hOxcOT3ANRCvz/wU/+qrAgDREdvalflKESKsIlZ0iwNMSL?= =?us-ascii?Q?DVtLo6Oxw5Hg0WrQQ8ml6MncXXRcqUOAoOr9yNj7esAjNUHFyKZwRLrYFg40?= =?us-ascii?Q?zV6jalWkcLxcTNN3Ptc4CTyjKZulJYPoggOvFJu0TfC9LolP+xXKa98UFJZs?= =?us-ascii?Q?jCYnT7JWB0BiA3SRn4dTKLxqfk3fIZ5E/ThSeMG57VBQ/sM6/mVToqRIU0FJ?= =?us-ascii?Q?Cg6+SDlZiYvWy15c00TDi8Xee6mTf29Ef/ed8Xf8IlY7uiPoXrPwjtM342g4?= =?us-ascii?Q?z9ECjgLvjF57pepoAM8IP/BhGsDXbvg2b5FNjpqZs1aZmg/AnuSuj5cyfD7c?= =?us-ascii?Q?uQOzL/4sEEjzHiFv5r1w8rXI4xLggMOlOEtyed3NIhBDl6UIdY/pQDRJUSR4?= =?us-ascii?Q?laZR9+QWkFHwsQgv22yJ9WHCeSzv6GrhQQsxY5DGO88dcaAs6D5+8FBoVLau?= =?us-ascii?Q?zSXKuQ49s9qzzu2hCVLqh8RwxK3NQqt+e8v5Wu9MgSCQhItXKzcF07+ETWQG?= =?us-ascii?Q?cfgHTPhf12n2hNwIlUEVKXsM+/EWdBX8C2a+?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(7416014)(82310400026)(376014)(36860700013)(1800799024);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:26:01.9541 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eaf4e50e-17d6-4159-59bb-08ddf054711c 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044F0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB6006 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu The driver allocates a single doorbell per device and uses it for all Send Queues (SQs). This can become a bottleneck due to the high number of concurrent MMIO accesses when ringing the same doorbell from many channels. This patch makes the doorbells used by channel queues configurable. mlx5e_channel_pick_doorbell() is added to select the doorbell to be used for a given channel, picking the default for now. When opening a channel, the selected doorbell is saved to the channel struct and used whenever channel-related queues are created. Finally, 'uar_page' is added to 'struct mlx5e_create_sq_param' to control which doorbell to use when allocating an SQ, since that can happen outside channel context (e.g. for PTP). Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 + .../ethernet/mellanox/mlx5/core/en/params.h | 1 + .../net/ethernet/mellanox/mlx5/core/en/ptp.c | 4 +++- .../net/ethernet/mellanox/mlx5/core/en/ptp.h | 1 + .../net/ethernet/mellanox/mlx5/core/en_main.c | 18 ++++++++++++++---- 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/eth= ernet/mellanox/mlx5/core/en.h index 0dd3bc0f4caa..9c73165653bf 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -788,6 +788,7 @@ struct mlx5e_channel { int vec_ix; int sd_ix; int cpu; + struct mlx5_sq_bfreg *bfreg; /* Sync between icosq recovery and XSK enable/disable. */ struct mutex icosq_recovery_lock; =20 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h b/drivers/= net/ethernet/mellanox/mlx5/core/en/params.h index e3edf79dde5f..00617c65fe3c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.h @@ -51,6 +51,7 @@ struct mlx5e_create_sq_param { u32 tisn; u8 tis_lst_sz; u8 min_inline_mode; + u32 uar_page; }; =20 /* Striding RQ dynamic parameters */ diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c b/drivers/net= /ethernet/mellanox/mlx5/core/en/ptp.c index 7c1d9a9ea464..a392578a063c 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c @@ -334,7 +334,7 @@ static int mlx5e_ptp_alloc_txqsq(struct mlx5e_ptp *c, i= nt txq_ix, sq->mdev =3D mdev; sq->ch_ix =3D MLX5E_PTP_CHANNEL_IX; sq->txq_ix =3D txq_ix; - sq->uar_map =3D mdev->priv.bfreg.map; + sq->uar_map =3D c->bfreg->map; sq->min_inline_mode =3D params->tx_min_inline_mode; sq->hw_mtu =3D MLX5E_SW2HW_MTU(params, params->sw_mtu); sq->stats =3D &c->priv->ptp_stats.sq[tc]; @@ -486,6 +486,7 @@ static int mlx5e_ptp_open_txqsq(struct mlx5e_ptp *c, u3= 2 tisn, csp.wq_ctrl =3D &txqsq->wq_ctrl; csp.min_inline_mode =3D txqsq->min_inline_mode; csp.ts_cqe_to_dest_cqn =3D ptpsq->ts_cq.mcq.cqn; + csp.uar_page =3D c->bfreg->index; =20 err =3D mlx5e_create_sq_rdy(c->mdev, sqp, &csp, 0, &txqsq->sqn); if (err) @@ -900,6 +901,7 @@ int mlx5e_ptp_open(struct mlx5e_priv *priv, struct mlx5= e_params *params, c->num_tc =3D mlx5e_get_dcb_num_tc(params); c->stats =3D &priv->ptp_stats.ch; c->lag_port =3D lag_port; + c->bfreg =3D &mdev->priv.bfreg; =20 err =3D mlx5e_ptp_set_state(c, params); if (err) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h b/drivers/net= /ethernet/mellanox/mlx5/core/en/ptp.h index 883c044852f1..1b3c9648220b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.h @@ -66,6 +66,7 @@ struct mlx5e_ptp { struct mlx5_core_dev *mdev; struct hwtstamp_config *tstamp; DECLARE_BITMAP(state, MLX5E_PTP_STATE_NUM_STATES); + struct mlx5_sq_bfreg *bfreg; }; =20 static inline bool mlx5e_use_ptpsq(struct sk_buff *skb) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/en_main.c index 02a538ec2ecb..0425f0e3d3a0 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -1532,7 +1532,7 @@ static int mlx5e_alloc_xdpsq(struct mlx5e_channel *c, sq->pdev =3D c->pdev; sq->mkey_be =3D c->mkey_be; sq->channel =3D c; - sq->uar_map =3D mdev->priv.bfreg.map; + sq->uar_map =3D c->bfreg->map; sq->min_inline_mode =3D params->tx_min_inline_mode; sq->hw_mtu =3D MLX5E_SW2HW_MTU(params, params->sw_mtu) - ETH_FCS_LEN; sq->xsk_pool =3D xsk_pool; @@ -1617,7 +1617,7 @@ static int mlx5e_alloc_icosq(struct mlx5e_channel *c, int err; =20 sq->channel =3D c; - sq->uar_map =3D mdev->priv.bfreg.map; + sq->uar_map =3D c->bfreg->map; sq->reserved_room =3D param->stop_room; =20 param->wq.db_numa_node =3D cpu_to_node(c->cpu); @@ -1702,7 +1702,7 @@ static int mlx5e_alloc_txqsq(struct mlx5e_channel *c, sq->priv =3D c->priv; sq->ch_ix =3D c->ix; sq->txq_ix =3D txq_ix; - sq->uar_map =3D mdev->priv.bfreg.map; + sq->uar_map =3D c->bfreg->map; sq->min_inline_mode =3D params->tx_min_inline_mode; sq->hw_mtu =3D MLX5E_SW2HW_MTU(params, params->sw_mtu); sq->max_sq_mpw_wqebbs =3D mlx5e_get_max_sq_aligned_wqebbs(mdev); @@ -1778,7 +1778,7 @@ static int mlx5e_create_sq(struct mlx5_core_dev *mdev, MLX5_SET(sqc, sqc, flush_in_error_en, 1); =20 MLX5_SET(wq, wq, wq_type, MLX5_WQ_TYPE_CYCLIC); - MLX5_SET(wq, wq, uar_page, mdev->priv.bfreg.index); + MLX5_SET(wq, wq, uar_page, csp->uar_page); MLX5_SET(wq, wq, log_wq_pg_sz, csp->wq_ctrl->buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); MLX5_SET64(wq, wq, dbr_addr, csp->wq_ctrl->db.dma); @@ -1882,6 +1882,7 @@ int mlx5e_open_txqsq(struct mlx5e_channel *c, u32 tis= n, int txq_ix, csp.cqn =3D sq->cq.mcq.cqn; csp.wq_ctrl =3D &sq->wq_ctrl; csp.min_inline_mode =3D sq->min_inline_mode; + csp.uar_page =3D c->bfreg->index; err =3D mlx5e_create_sq_rdy(c->mdev, param, &csp, qos_queue_group_id, &sq= ->sqn); if (err) goto err_free_txqsq; @@ -2052,6 +2053,7 @@ static int mlx5e_open_icosq(struct mlx5e_channel *c, = struct mlx5e_params *params csp.cqn =3D sq->cq.mcq.cqn; csp.wq_ctrl =3D &sq->wq_ctrl; csp.min_inline_mode =3D params->tx_min_inline_mode; + csp.uar_page =3D c->bfreg->index; err =3D mlx5e_create_sq_rdy(c->mdev, param, &csp, 0, &sq->sqn); if (err) goto err_free_icosq; @@ -2112,6 +2114,7 @@ int mlx5e_open_xdpsq(struct mlx5e_channel *c, struct = mlx5e_params *params, csp.cqn =3D sq->cq.mcq.cqn; csp.wq_ctrl =3D &sq->wq_ctrl; csp.min_inline_mode =3D sq->min_inline_mode; + csp.uar_page =3D c->bfreg->index; set_bit(MLX5E_SQ_STATE_ENABLED, &sq->state); =20 err =3D mlx5e_create_sq_rdy(c->mdev, param, &csp, 0, &sq->sqn); @@ -2740,6 +2743,11 @@ void mlx5e_trigger_napi_sched(struct napi_struct *na= pi) local_bh_enable(); } =20 +static void mlx5e_channel_pick_doorbell(struct mlx5e_channel *c) +{ + c->bfreg =3D &c->mdev->priv.bfreg; +} + static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix, struct mlx5e_params *params, struct xsk_buff_pool *xsk_pool, @@ -2794,6 +2802,8 @@ static int mlx5e_open_channel(struct mlx5e_priv *priv= , int ix, c->aff_mask =3D irq_get_effective_affinity_mask(irq); c->lag_port =3D mlx5e_enumerate_lag_port(mdev, ix); =20 + mlx5e_channel_pick_doorbell(c); + netif_napi_add_config_locked(netdev, &c->napi, mlx5e_napi_poll, ix); netif_napi_set_irq_locked(&c->napi, irq); =20 --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2060.outbound.protection.outlook.com [40.107.223.60]) (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 DC3D631691C; Wed, 10 Sep 2025 10:26:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.223.60 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499979; cv=fail; b=thCu56UPBTSD4XkNAbNeLYPfhu6PVewR9nU0rGNx6EjRh/7M9z3qI1ZSeBpCdy7HOgN1PtazbiYn3NIMXdGfjDkzsVHzEU9uXON0jaHmHnFCvmeEDYK8lWtVEP3L66GGyi+P9DvYoLrVlpizfg/Y1LloHdMoDvFZy1b3ZGhQDqA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499979; c=relaxed/simple; bh=vpd1dukzLde31aeuOlxlT0sns0OE7J5AD5m3OPOHpWE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=X7+ZbBxE+5k19cC6nSO1lkQYjdLbSvPysWCl3SgBqM+WiYoVY3G7sumCd37Cmga3pQLG2L0Fhkasvbh18IIsJZMaKbR8HBAsoScGgFUGWEt5cdTruOvBpp+D4UvuVdHC2OfEk0C33EFRjtOL+l3OPs1TfcSgnGxYWk3vwKGaqms= 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=k1xQ9JuW; arc=fail smtp.client-ip=40.107.223.60 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="k1xQ9JuW" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WVPX+ADTm4eGIgKRNPFvYvtHl26EmB6OAwX9HjCZGgH8Lhu421RWb4PSIs5D1gcKIE/E1ZGF0Buom1Z7nwqkvj4P2KPLLEAsTqVFrEK65Q5O2NLofj91VHuFGMWtMfucw4grDUXWz2crf8fKDZxC6BZOWI3vqY9Pd2DrQLzKlDqR2+qp171CjqQijjOE6kQfU46IO70R6fKrRofj71BQRZikKWOqn0epY1pVdEKMPopXp9E0BOivHqKZQzVJJSJdjdHAR7vfY3Ch2I8wctgjofabYymJAaZhRDq0GBcS3F8x5005o5zq2jDvgfcp+yDAY9RRvWxPhaYyE/mdFw8lEw== 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=l0FK8KLvOgyKV8Bk17NKjZv9+JmbFwcJEKdtUD3LSyk=; b=roFOQ42olAIiu/lAbV9x2AEVXtzijWVZ1vF416ysZg03sH0QuRF3IhOKyep3dcQZMyrNhro/ScYaTM/YbFi+l5bgg6HsbRRjCUHD2wsRCY3QG6W07HVyFS4hvIlKnXYQHlI17lYO0NyBKMWY1Jki1+8q2mEyTklCTvx/qRgEO67dMk8XZmvcKhCtobYteXVs6QErkqNurCWq3YqOcRYVMcA0vsl9WDQqQXGiyTxYxcTpIc2mab9l8kYltrCggUn1HA/KdkhWsZkj4HVBL4SC+rv+YlH8oVZcuYRPLjuI4P2OruI4HUfLtEZXoGfHj+V2wZh5MhjlpXnZoXFPGw32mQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=google.com 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=l0FK8KLvOgyKV8Bk17NKjZv9+JmbFwcJEKdtUD3LSyk=; b=k1xQ9JuWMDh9FL6yXxuxkYn4iu6Gw8wKu65OPFaC1qOGH4nTEKC9Im1PFZo7DjtRd/dzqat660TrX6qanbRWpe5ksSqjgtCOOX713PL0d2PYae/fwpo3VXvfxH9VjhO1JPkkWfuMuaWUVnlNRIJQF8lnevfA68C1jNCDdHBbODRyACQtdUnaa989oHh7gZ0sITqtJsZm1XE5riFdTQ9owwtCq7UrqZC/HjirC59/PwDJ/FE4CjjhlS/CgskPGLBOfn9XPNvc6rguKzKjkP1mS1C5Z8E2eH/iOJjhn9ppsSxMK2uGalW+uQBPrTI5wW4U5V5ZtvlgbPqwo+y3bQaBsg== Received: from MW4PR04CA0310.namprd04.prod.outlook.com (2603:10b6:303:82::15) by PH7PR12MB6956.namprd12.prod.outlook.com (2603:10b6:510:1b9::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:26:12 +0000 Received: from CO1PEPF000044F0.namprd05.prod.outlook.com (2603:10b6:303:82:cafe::7c) by MW4PR04CA0310.outlook.office365.com (2603:10b6:303:82::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.15 via Frontend Transport; Wed, 10 Sep 2025 10:26:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000044F0.mail.protection.outlook.com (10.167.241.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:26:11 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 10 Sep 2025 03:25:44 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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, 10 Sep 2025 03:25:42 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:36 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 06/10] net/mlx5e: Prepare for using different CQ doorbells Date: Wed, 10 Sep 2025 13:24:47 +0300 Message-ID: <1757499891-596641-7-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044F0:EE_|PH7PR12MB6956:EE_ X-MS-Office365-Filtering-Correlation-Id: c4604837-c021-4014-a8ca-08ddf0547706 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|1800799024|36860700013|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sE8dv7pqBX0mYpF94cemC+RwgTrvZijlXBG+2fFZH/eBmaMGvwPVuGbMEnTg?= =?us-ascii?Q?W0AxxtteMR0Ywqz9XWkKpQPlxI402ObMwOkL8IzJCEap+fy4ZAWS08veOxkE?= =?us-ascii?Q?ABUnq+R4IDfqIh0FmAbyuFFx++K9gnaIQUBBUkTIF/pCAN6fqSCWi8mlDY8L?= =?us-ascii?Q?/x1YLkBtQ8V98VbO5YOQE8lb3HMnY0HmcUaF6GKZuIvFC0/2lTll0rvz57iZ?= =?us-ascii?Q?eIuJdPGwDVAyuvm5U2Q/TkKR8FmOuXehoyc9gBEt38r6nXep1F9WmfKXYDO2?= =?us-ascii?Q?eklqnVlAwUd32YwJyO1nV2vA8X1WCO1caRKE5wzok95Qket92T5+B+pyo1mh?= =?us-ascii?Q?65DPUFyonMvymosVZmNgBD9XJLtMy9CkRdrHPPNejvCv/CiKuxtye4BRDgWn?= =?us-ascii?Q?HvV3CLReNzbpaxLjI8k1O2Irjf6UhkSfBviRAh2y+HQfeFKz148i8nzo9XUY?= =?us-ascii?Q?UKvWrl60Bhav4u5dNU5qw7r7C0IsnuJnVZM4DowAiPdE9aHvrBnFrWMZUtCr?= =?us-ascii?Q?sMZIcsp6uBv98am9khUT7oZLMa4/jor09c0O48pT7MTb4AyGZn4u0gOT8F5w?= =?us-ascii?Q?dKa/FzdaREXM/8Ja2XzWqeiEanJUjhyouFiTgzeD/sYAxvtqc+fH9rSrvE5m?= =?us-ascii?Q?NqobZX6MMWPTLZRQDhRLz/LcNXnHDXOS1XXJ0qapMhDabyqwgzwkXuhM3zac?= =?us-ascii?Q?53iGE8xtqey3qB+YLreEmI/xOuVVuCwH+M8PII9sEkK+3sOObf6OuaQ6qDLs?= =?us-ascii?Q?BXtaLkTdu3K7n27p9k3Jmk5nD+7G8ZmX+Q30YNFhIa/xXQ/dPcSSYym1L2KZ?= =?us-ascii?Q?5HQLlMllRupJjgrixKlX2qA680atpBxeODs4qttd4G/LdmNIR9WoflZpN1bI?= =?us-ascii?Q?lGVWLQRhcKmz9Jn9o+BREhqw9e9JOPqrlT9iT3yhD07p7mCTVEhmW4hSb7Xd?= =?us-ascii?Q?PekKNuGEhU7UfubzAwh2rHZOco+Czn8GdLARH4H1mcN0xkCokTlGzU2mQw++?= =?us-ascii?Q?AYWuaeYFHZ1G5hS8PJI2gEfmsGu/izcTYqe3oWZUOxISjEWUHK9E/sz3SfMp?= =?us-ascii?Q?desWCwbkG3+DNP+8fxpZqZMa8N2xyZgDhCV/GJRIB56vlim/0/StblTF/EqK?= =?us-ascii?Q?jcJhW2bSZl2DMzXazoQJrhGaLQDqwJ8+e+aeGNTo9xEbpbNOHoxKWIRYHqpw?= =?us-ascii?Q?MvVQqufXeBvaaEN8tHcBMqpiKH1Yxv40r2bnMiYdcTNYddomAkAPBb1OnoY9?= =?us-ascii?Q?RNZLtRKvY9vCeiGf1l5u7B7Sf2lsC8qyLaNOh2afsDEYNtMeul0TMNT29YO7?= =?us-ascii?Q?d+u7D4/YuYRIcfUlK4excZGXWuF0GDhgmKo3mwEPI4k+PAx3lWDe0z1Klhqo?= =?us-ascii?Q?wwXnwV4K6njp1NH6hMXoVeSIouF27n5uAtk2rpZ+ypACykV+OpyDu0LNUXwf?= =?us-ascii?Q?K1eahAg1+PbXrlK8Q+yHGTUGXx7V1N3PWWst95mHwqLW66Jm0QmOGlHWNtgR?= =?us-ascii?Q?EC6Fj7cp+JW4dJ+HYyWQ9+oTG6JgSH7PTUWh?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(7416014)(1800799024)(36860700013)(376014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:26:11.7066 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c4604837-c021-4014-a8ca-08ddf0547706 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044F0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6956 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu Completion queues (CQs) in mlx5 use the same global doorbell, which may become contended when accessed concurrently from many cores. This patch prepares the CQ management code for supporting different doorbells per CQ. This will be used in downstream patches to allow separate doorbells to be used by channels CQs. The main change is moving the 'uar' pointer from struct mlx5_core_cq to struct mlx5e_cq, as the uar page to be used is better off stored directly there. Other users of mlx5_core_cq also store the UAR to be used separately and therefore the pointer being removed is dead weight for them. As evidence, in this patch there are two users which set the mcq.uar pointer but didn't use it, Software Steering and old Innova CQ creation code. Instead, they rang the doorbell directly from another pointer. The 'uar' pointer added to struct mlx5e_cq remains in a hot cacheline (as before), because it may get accessed for each packet. Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/cq.c | 1 - drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h | 5 +---- drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 10 +++++++--- drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c | 1 - .../ethernet/mellanox/mlx5/core/steering/sws/dr_send.c | 1 - include/linux/mlx5/cq.h | 1 - 7 files changed, 9 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cq.c b/drivers/net/eth= ernet/mellanox/mlx5/core/cq.c index 35039a95dcfd..e9f319a9bdd6 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/cq.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/cq.c @@ -145,7 +145,6 @@ int mlx5_create_cq(struct mlx5_core_dev *dev, struct ml= x5_core_cq *cq, mlx5_core_dbg(dev, "failed adding CP 0x%x to debug file system\n", cq->cqn); =20 - cq->uar =3D dev->priv.bfreg.up; cq->irqn =3D eq->core.irqn; =20 return 0; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/eth= ernet/mellanox/mlx5/core/en.h index 9c73165653bf..1cbe3f3037bb 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -344,6 +344,7 @@ struct mlx5e_cq { /* data path - accessed per napi poll */ u16 event_ctr; struct napi_struct *napi; + struct mlx5_uars_page *uar; struct mlx5_core_cq mcq; struct mlx5e_ch_stats *ch_stats; =20 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h b/drivers/ne= t/ethernet/mellanox/mlx5/core/en/txrx.h index 5dc04bbfc71b..6760bb0336df 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h @@ -309,10 +309,7 @@ mlx5e_notify_hw(struct mlx5_wq_cyc *wq, u16 pc, void _= _iomem *uar_map, =20 static inline void mlx5e_cq_arm(struct mlx5e_cq *cq) { - struct mlx5_core_cq *mcq; - - mcq =3D &cq->mcq; - mlx5_cq_arm(mcq, MLX5_CQ_DB_REQ_NOT, mcq->uar->map, cq->wq.cc); + mlx5_cq_arm(&cq->mcq, MLX5_CQ_DB_REQ_NOT, cq->uar->map, cq->wq.cc); } =20 static inline struct mlx5e_sq_dma * diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/en_main.c index 0425f0e3d3a0..ef7598e048b2 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -2185,6 +2185,7 @@ static void mlx5e_close_xdpredirect_sq(struct mlx5e_x= dpsq *xdpsq) static int mlx5e_alloc_cq_common(struct mlx5_core_dev *mdev, struct net_device *netdev, struct workqueue_struct *workqueue, + struct mlx5_uars_page *uar, struct mlx5e_cq_param *param, struct mlx5e_cq *cq) { @@ -2216,6 +2217,7 @@ static int mlx5e_alloc_cq_common(struct mlx5_core_dev= *mdev, cq->mdev =3D mdev; cq->netdev =3D netdev; cq->workqueue =3D workqueue; + cq->uar =3D uar; =20 return 0; } @@ -2231,7 +2233,8 @@ static int mlx5e_alloc_cq(struct mlx5_core_dev *mdev, param->wq.db_numa_node =3D ccp->node; param->eq_ix =3D ccp->ix; =20 - err =3D mlx5e_alloc_cq_common(mdev, ccp->netdev, ccp->wq, param, cq); + err =3D mlx5e_alloc_cq_common(mdev, ccp->netdev, ccp->wq, + mdev->priv.bfreg.up, param, cq); =20 cq->napi =3D ccp->napi; cq->ch_stats =3D ccp->ch_stats; @@ -2276,7 +2279,7 @@ static int mlx5e_create_cq(struct mlx5e_cq *cq, struc= t mlx5e_cq_param *param) MLX5_SET(cqc, cqc, cq_period_mode, mlx5e_cq_period_mode(param->cq_period_= mode)); =20 MLX5_SET(cqc, cqc, c_eqn_or_apu_element, eqn); - MLX5_SET(cqc, cqc, uar_page, mdev->priv.bfreg.up->index); + MLX5_SET(cqc, cqc, uar_page, cq->uar->index); MLX5_SET(cqc, cqc, log_page_size, cq->wq_ctrl.buf.page_shift - MLX5_ADAPTER_PAGE_SHIFT); MLX5_SET64(cqc, cqc, dbr_addr, cq->wq_ctrl.db.dma); @@ -3589,7 +3592,8 @@ static int mlx5e_alloc_drop_cq(struct mlx5e_priv *pri= v, param->wq.buf_numa_node =3D dev_to_node(mlx5_core_dma_dev(mdev)); param->wq.db_numa_node =3D dev_to_node(mlx5_core_dma_dev(mdev)); =20 - return mlx5e_alloc_cq_common(priv->mdev, priv->netdev, priv->wq, param, c= q); + return mlx5e_alloc_cq_common(priv->mdev, priv->netdev, priv->wq, + mdev->priv.bfreg.up, param, cq); } =20 int mlx5e_open_drop_rq(struct mlx5e_priv *priv, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c b/drivers/= net/ethernet/mellanox/mlx5/core/fpga/conn.c index c4de6bf8d1b6..cb1319974f83 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/conn.c @@ -475,7 +475,6 @@ static int mlx5_fpga_conn_create_cq(struct mlx5_fpga_co= nn *conn, int cq_size) *conn->cq.mcq.arm_db =3D 0; conn->cq.mcq.vector =3D 0; conn->cq.mcq.comp =3D mlx5_fpga_conn_cq_complete; - conn->cq.mcq.uar =3D fdev->conn_res.uar; tasklet_setup(&conn->cq.tasklet, mlx5_fpga_conn_cq_tasklet); =20 mlx5_fpga_dbg(fdev, "Created CQ #0x%x\n", conn->cq.mcq.cqn); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c= b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c index 4fd4e8483382..077a77fde670 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/steering/sws/dr_send.c @@ -1131,7 +1131,6 @@ static struct mlx5dr_cq *dr_create_cq(struct mlx5_cor= e_dev *mdev, *cq->mcq.arm_db =3D cpu_to_be32(2 << 28); =20 cq->mcq.vector =3D 0; - cq->mcq.uar =3D uar; cq->mdev =3D mdev; =20 return cq; diff --git a/include/linux/mlx5/cq.h b/include/linux/mlx5/cq.h index 991526039ccb..7ef2c7c7d803 100644 --- a/include/linux/mlx5/cq.h +++ b/include/linux/mlx5/cq.h @@ -41,7 +41,6 @@ struct mlx5_core_cq { int cqe_sz; __be32 *set_ci_db; __be32 *arm_db; - struct mlx5_uars_page *uar; refcount_t refcount; struct completion free; unsigned vector; --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2048.outbound.protection.outlook.com [40.107.236.48]) (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 0211231770B; Wed, 10 Sep 2025 10:26:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.236.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499984; cv=fail; b=hcPiP666mup0Mx30Jq4XX75ppvn6wF/bI3Xd3xsNcyKL4u1+u4g4cFo5GH9zKu2Sz1Iu978K/I3r4n2iv2nfRIqAbuHYVgcZzsF0Fnv1Sni/+R3QOsvUDV4qc1W628fvBYQl3e2hTRjhm5sUQbdb64rFKd/8alshOOJJIN0ikeg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499984; c=relaxed/simple; bh=7lfJnaf1uzVEdcjWU+tgkFWedFsB+wFPo28b8l7M+kg=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=jJgM5sUMFfo7XrOZ9os7sdNOh6dc06lMTHgashRxhDQvDMBwuwi2XO2x8YfGLWAIbzKjm+Yhl4MCttIDKMrWYQOMjM5OOb35zJ5ll2HNhU0UsOWghgSTBfAvHGACwk1jb46DF8rnp8i2ROUAQ9MwHuh7od3gnQX2SLLFWqZ7Z04= 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=IWxEkgGy; arc=fail smtp.client-ip=40.107.236.48 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="IWxEkgGy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RjE0aLOiq2IrPDniAc2nb2qcZ2aHHqw0qgLSRvNa1jy75+nbz6VlWRzBM9cboxgTopyX3iJcJQYcT/LVP3e8IjVFxWt9gRxZqNs/A999kmm/7P9pUM7hKRvXmMPIUy9BXZejy+ZNbuT20pLKjd9eslxaaAPK9x33WxO+Wwjvjd9i5a2k6ho+bNPvkVEkaW9b8h7kSQ4ET5EcJx6dUv8QSsrBZzsXvnmv+1lIVoVvA5YjDJEuIo3siyPM8AjMXHUv5nacI+V8Uvf+jWZkuUs1BnnLD95mdyDPcFA1ZyVA7Q6h3cnKgdnc6xytGyae2qOus+LMmDJokVNrvEP1x4G+fg== 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=XCyGNhOPsUGCPEwYuGGIUZsOM6G8cj/dX8iYsrHaDM8=; b=i75mumd9kftjZyONK72DmQOzozXytRTxdj6//8oVtUSgoXzDCtGBPAl+PVmrKEgv6DC6EKRBl7qLAh5SM8ZXIPmAS8spcK905VW3IYmH0yQw7mmOgn95L6KKxl3qNl93BNTokx6mC4exVxTh3QTfHMdq8/Rs9wRsGy7P/jP2EqDnmCmvRqMyr6eiPVEe3CAuQepW7m5iN9IUCmTNussuY3iZqmXkSCsQ7UqlU52a+H9kDcNA6w02ZxXXb+Dm/mLjz6ZxouJDD3SvE+zH+T/Sfg15/NMr0/+YzRN5y2mZT0zNhrg2UoRnyJNwrNVsWWMkwvJriwE/EgaRvP6Bj2hSDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=google.com 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=XCyGNhOPsUGCPEwYuGGIUZsOM6G8cj/dX8iYsrHaDM8=; b=IWxEkgGyMQBVO07kckt8R/TKn317y20M78jY2ZgtOD4y+DVat8sZAIXz3LUkj5YyIwUmFiniA/tMP64ahKgLLDwizCE3HWdwmnh3dH1Bv+ni0c2FnQW7Alkn08HtE2jWqgzGWYzgmbo1TEoeJqi7Y+tjHrmtc7oJYdh9TYNZ/nBnIR1OwD4Qqw6rRDXyRpfDTBuGRVr81fzpDZ5D2sXHXq7U/GlRmOdtDlYd2VgpzRO+zL9ESYKSw34hQFTX/V43CMTvrfzk5uNqU/CoXN9g7oJEVh7kpWeudYuSHxL5B4BW2xokRERKPIFCNX0WQ/hko5skf3WEu/3ziCV9oeLxFA== Received: from BYAPR06CA0059.namprd06.prod.outlook.com (2603:10b6:a03:14b::36) by DS0PR12MB8479.namprd12.prod.outlook.com (2603:10b6:8:155::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:26:18 +0000 Received: from CO1PEPF000044EF.namprd05.prod.outlook.com (2603:10b6:a03:14b:cafe::a2) by BYAPR06CA0059.outlook.office365.com (2603:10b6:a03:14b::36) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.15 via Frontend Transport; Wed, 10 Sep 2025 10:26:17 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000044EF.mail.protection.outlook.com (10.167.241.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:26:17 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 10 Sep 2025 03:25:51 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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, 10 Sep 2025 03:25:49 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:43 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 07/10] net/mlx5e: Use multiple TX doorbells Date: Wed, 10 Sep 2025 13:24:48 +0300 Message-ID: <1757499891-596641-8-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044EF:EE_|DS0PR12MB8479:EE_ X-MS-Office365-Filtering-Correlation-Id: 935f220a-9422-4098-b54b-08ddf0547a61 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700013|1800799024|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?E+yWW/MgKorBq9cJEpgvvuP37dF5f5lipbT4VRmSjH9U5sLxkMoX3jQ0ZSty?= =?us-ascii?Q?vMDB+H7Pp8a231zXBkEmWCs5usyb2nkflqZi/jFoJhsSq0LhJ7KFO5xzU01c?= =?us-ascii?Q?H4dM3EWmL85U18kDlpjorDTe68lK7A1vEI1zEhsPIylpQZIMtYplLKVOkd7f?= =?us-ascii?Q?zTAGS2IlGA5OojojQVlvHiNoZt8nPkgFiuhNALywdM20nqE5gCPjE8ddx4A6?= =?us-ascii?Q?Zg3zDJf1nRetRsO8wPyTmiu9R1iln/DRkG1PDbKo4f7zdlYT6113LKFoZtgW?= =?us-ascii?Q?CFjR/0twaKAPTOyv+id0kjIQp0vLChuLbrKtuAW/OrFU9wlAqRZX/iCj6LBG?= =?us-ascii?Q?T+ACFWPyEQZ7J7LGqXF0EC/mHVnkV+CA+HLFq36cijzAe2K7w0c41Liy+X+D?= =?us-ascii?Q?pXmMbashgm8I+zwIZqKUkGROwOJBnrThGjfPqc2l4JMudWDKoTAlBGQBuHQZ?= =?us-ascii?Q?vul8/ge7tOpo8Nx01+7oLlTlNgSX3aG7oyn3giHEWNrldXnWP9IEuyt1nV6s?= =?us-ascii?Q?SRM/XwWaJiNnEJYRxD6fqDwAPlpNXn1ooCb7GkmIc1rZJYdfE/0ncBM46++N?= =?us-ascii?Q?eREMtR7qbA4wiUarUJvev1EdS+GJWXtGwykIhdWPcEvxe6O8yOQiEPg/VUeD?= =?us-ascii?Q?hbyQVDmyGJwYbGZXTxsn/fkm8Q4OzIJFEn1+O0gri7mINWWUNvnK0nL/9zf8?= =?us-ascii?Q?vGx7A4a/SUegSBAMwDrRB/ol8zqO7MH7OzmnZNCWRJ0f5xPddY9OOU9StHpG?= =?us-ascii?Q?buPfZhWDfgP1hcf4VBY1L38cLpw8rtQQUvZ3H+NKEP3MdwHV4hZHDnpm3Wch?= =?us-ascii?Q?ZskY+zDpQzuetyg0S793pDJUvyGHQT7uUZlQ+0ZI0bVnvAriIoIXlykX5GKk?= =?us-ascii?Q?KGXzHBvXSMZ4J+XfUFeNwXLlDDw71QhUJP2RDrMqLMWEm5M2iYAoZis2yXdN?= =?us-ascii?Q?GUAEqiFIVSaS2y3kgllIRYGgPBqtsfmwN5qtQ8ImLmvu9aGBNY3hJv0a9k3B?= =?us-ascii?Q?h/uxDVXvdEzVw+qRxzLYe7g0qPmcMprsAIV5Gh9gpRqd/dpj2MkP7zXGfY4u?= =?us-ascii?Q?GCTolGbD8pxieS3rJJwNTLeU3IcD/6sXLvA6fsTcw9fazhq/HsipMnalBJF5?= =?us-ascii?Q?gFdqWJULoUV6a8fhAbVCAljkd5H47hR7cJud30V7BuSw8AnKo50//oRLlNEG?= =?us-ascii?Q?yvQpu1iwUDcMcwGzys/M/SjYqPVb+i43SZlYGvR9M1im6aSIYWv+WxF8y6WF?= =?us-ascii?Q?NI4++Ittg400vOmmDY2wT91pxQTIN0ZwokbbctvVWeIuKKQkFawjd7kejVg0?= =?us-ascii?Q?o6oSzU/JQzNHn4hkD8ha6yX8vaHsNWvTFjryYd6mLc330qTOkk9v0JXDoBqt?= =?us-ascii?Q?B7/JZIcLRnjC6BTEHtkf0es81c5bbTOWaIAKdqgx3tIcfKQOejMC5k6q5irh?= =?us-ascii?Q?/6DizjLnetRzTOuejq5qIXxcVvBXHyZVjzNPzrSa/7IQc4nH11txzLnnjSm0?= =?us-ascii?Q?qWjckYIx3gMjHBgpubSjo5I/vQLXI/PQkb5v?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700013)(1800799024)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:26:17.6581 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 935f220a-9422-4098-b54b-08ddf0547a61 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044EF.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB8479 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu First, allocate more doorbells in mlx5e_create_mdev_resources: - one doorbell remains 'global' and will be used by all non-channel associated SQs (e.g. ASO, HWS, PTP, ...). - allocate additional 'num_doorbells' doorbells. This defaults to minimum between 8 and max number of channels. mlx5e_channel_pick_doorbell() now spreads out channel SQs across available doorbells. Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- .../ethernet/mellanox/mlx5/core/en_common.c | 29 ++++++++++++++++++- .../net/ethernet/mellanox/mlx5/core/en_main.c | 11 ++++++- include/linux/mlx5/driver.h | 4 +++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c b/drivers/= net/ethernet/mellanox/mlx5/core/en_common.c index e9e36358c39d..d13cebbc763a 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c @@ -143,6 +143,7 @@ static int mlx5e_create_tises(struct mlx5_core_dev *mde= v, u32 tisn[MLX5_MAX_PORT int mlx5e_create_mdev_resources(struct mlx5_core_dev *mdev, bool create_ti= ses) { struct mlx5e_hw_objs *res =3D &mdev->mlx5e_res.hw_objs; + unsigned int num_doorbells, i; int err; =20 err =3D mlx5_core_alloc_pd(mdev, &res->pdn); @@ -163,11 +164,30 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev = *mdev, bool create_tises) goto err_dealloc_transport_domain; } =20 + num_doorbells =3D min(MLX5_DEFAULT_NUM_DOORBELLS, + mlx5e_get_max_num_channels(mdev)); + res->bfregs =3D kcalloc(num_doorbells, sizeof(*res->bfregs), GFP_KERNEL); + if (!res->bfregs) { + err =3D -ENOMEM; + goto err_destroy_mkey; + } + + for (i =3D 0; i < num_doorbells; i++) { + err =3D mlx5_alloc_bfreg(mdev, res->bfregs + i, false, false); + if (err) { + mlx5_core_warn(mdev, + "could only allocate %d/%d doorbells, err %d.\n", + i, num_doorbells, err); + break; + } + } + res->num_bfregs =3D i; + if (create_tises) { err =3D mlx5e_create_tises(mdev, res->tisn); if (err) { mlx5_core_err(mdev, "alloc tises failed, %d\n", err); - goto err_destroy_mkey; + goto err_destroy_bfregs; } res->tisn_valid =3D true; } @@ -184,6 +204,10 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev *= mdev, bool create_tises) =20 return 0; =20 +err_destroy_bfregs: + for (i =3D 0; i < res->num_bfregs; i++) + mlx5_free_bfreg(mdev, res->bfregs + i); + kfree(res->bfregs); err_destroy_mkey: mlx5_core_destroy_mkey(mdev, res->mkey); err_dealloc_transport_domain: @@ -201,6 +225,9 @@ void mlx5e_destroy_mdev_resources(struct mlx5_core_dev = *mdev) mdev->mlx5e_res.dek_priv =3D NULL; if (res->tisn_valid) mlx5e_destroy_tises(mdev, res->tisn); + for (unsigned int i =3D 0; i < res->num_bfregs; i++) + mlx5_free_bfreg(mdev, res->bfregs + i); + kfree(res->bfregs); mlx5_core_destroy_mkey(mdev, res->mkey); mlx5_core_dealloc_transport_domain(mdev, res->td.tdn); mlx5_core_dealloc_pd(mdev, res->pdn); diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/en_main.c index ef7598e048b2..4dee4c6d048d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -2748,7 +2748,16 @@ void mlx5e_trigger_napi_sched(struct napi_struct *na= pi) =20 static void mlx5e_channel_pick_doorbell(struct mlx5e_channel *c) { - c->bfreg =3D &c->mdev->priv.bfreg; + struct mlx5e_hw_objs *hw_objs =3D &c->mdev->mlx5e_res.hw_objs; + + /* No dedicated Ethernet doorbells, use the global one. */ + if (hw_objs->num_bfregs =3D=3D 0) { + c->bfreg =3D &c->mdev->priv.bfreg; + return; + } + + /* Round-robin between doorbells. */ + c->bfreg =3D hw_objs->bfregs + c->vec_ix % hw_objs->num_bfregs; } =20 static int mlx5e_open_channel(struct mlx5e_priv *priv, int ix, diff --git a/include/linux/mlx5/driver.h b/include/linux/mlx5/driver.h index 15c434fedff7..99b34e4809ae 100644 --- a/include/linux/mlx5/driver.h +++ b/include/linux/mlx5/driver.h @@ -658,6 +658,8 @@ struct mlx5e_resources { u32 pdn; struct mlx5_td td; u32 mkey; + struct mlx5_sq_bfreg *bfregs; + unsigned int num_bfregs; #define MLX5_MAX_NUM_TC 8 u32 tisn[MLX5_MAX_PORTS][MLX5_MAX_NUM_TC]; bool tisn_valid; @@ -801,6 +803,8 @@ struct mlx5_db { int index; }; =20 +#define MLX5_DEFAULT_NUM_DOORBELLS 8 + enum { MLX5_COMP_EQ_SIZE =3D 1024, }; --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2062.outbound.protection.outlook.com [40.107.220.62]) (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 2EDB531B83D; Wed, 10 Sep 2025 10:26:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.220.62 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499986; cv=fail; b=q6nplmR3KuJeJgDFV72UHNwLwUsUNIh7yeDfOcmHYIQ9nZ7nM1oxgqhGg9S1I2Wd94oNMBMDFoIiEC3v3AvFbbosPoo3dQYCmjbSkvtWfyTwiqsIBXZmlRKMVcW2nkxE9AayUSI/kcrA8goCv68P/TropbZLt+NUEn0yHeZRpCA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757499986; c=relaxed/simple; bh=DpG7dFBiJuvG2ycHkZmRyTcJFSmO47ARNSXA1pxhUe4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=BX2H5JGsibZ9Y5PGiOLvBmJQJrAwGXoGQMd3DxZ7vo/LxNQzyViPHoeoUM+JxrkGF3S84cXzqLStLeaUG/MqMNQoR6eOOCgd+4O05/kv1+X7ierj2OpnCl9Xqm9IGOF34EbsWOvtByqKfVLdB24iKmq7MhiNDXk5E5XLFas6G/Q= 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=VqHUQBfc; arc=fail smtp.client-ip=40.107.220.62 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="VqHUQBfc" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AeZMoTFR1uD9ajLFbCuGO1gptXU60ZzO2QMfWDQJyKgOehdYKnZ4hW+nBtlBd1ug3z8OhK6EVITOhg1JSyXu0LV6sgbrPMkmBq+btmW81E3I1kZKoNcZm7mYy5Sga3wCM8EC2n9wksDephvAHvIYshmcDVbSCgd637hJjqJt36t/3FM9VTol3POofmwD++fS/yieaPoW9sjsq8nnClCROvhrnlV6PeFYVGoBLQ2ZPoKN/w9/j3FC7M4F5iWHlC6HO0+eebGJJ1eFom42C9UDLnbZ9KjuzMohN+kXGXFp2qMKVOYJwwGm83LHE3lGQ6jAXht2ED/Piw7VVLwds3pHWw== 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=8eJbF73S51SOhgc/oD7fpYeBLLLNUnotMkhSMZT47ZU=; b=rZT0XJR0OFUxoTLXop7uonoEPwoBB2X/FAx5UlGAPkXbGsFpkSr5yomCOGXI2fjn1I+Tre7acBAS6miwxqHdUEY+Jh0Z7pZ0CcEpjK/ehj85nZJtr+oQhlYzH2KLyaF6NSMAh2P/J1yb3ETnGZipgdwI3FaXdkeEMXLyq3vQ6d8r2ZUrq5McNouiJfF36Y4jVRFKb3IV0kaIZsx++C52Q3UpIeko7rDO5oecbWScAlc+xvlDuhaQ4tCBOzoRE5FlsjZzHDkGm4HaCJbn0xXe0L1OuL+5dRliNpuuZvQJoRs0wKKYnqkN3r1mrRewANT4t8peqDgbQO++E74aNfdEJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=google.com 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=8eJbF73S51SOhgc/oD7fpYeBLLLNUnotMkhSMZT47ZU=; b=VqHUQBfcJSSJGoNO/NTq7fw4J7KvzeegZOvNpFHiR6+e6vtv97e52lOQlxVzMu0ZWBErF/LzKAbh5VvMVDxMt/9UvYwzX61rGglzq22+ILMrekfsFfB6zX6O4Ha0bseyQfnoNy41zEiPd7w1Bcv292FM5i0G1qiBUBRu+go7Zsk5lJ+H8jJAWESU6OWKyfLcUCOpYRWsjAdsepA4Uv/Ab+EhybZ4qrRpmr6+QQbhcgPnbs0gphLhrh0f6B254NC5e5CHmGjDARJ/psSSrPKtcnMhqzcOdZ6lgRqXmvEiz22QnfJaLxNDlfI3rimPq1sV9ghEZNzeOOm7bvukrCG04Q== Received: from BYAPR06CA0044.namprd06.prod.outlook.com (2603:10b6:a03:14b::21) by SA3PR12MB7781.namprd12.prod.outlook.com (2603:10b6:806:31a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:26:23 +0000 Received: from CO1PEPF000044EF.namprd05.prod.outlook.com (2603:10b6:a03:14b:cafe::79) by BYAPR06CA0044.outlook.office365.com (2603:10b6:a03:14b::21) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.15 via Frontend Transport; Wed, 10 Sep 2025 10:26:22 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000044EF.mail.protection.outlook.com (10.167.241.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:26:22 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 10 Sep 2025 03:25:57 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) 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, 10 Sep 2025 03:25:55 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:49 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 08/10] net/mlx5e: Use multiple CQ doorbells Date: Wed, 10 Sep 2025 13:24:49 +0300 Message-ID: <1757499891-596641-9-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044EF:EE_|SA3PR12MB7781:EE_ X-MS-Office365-Filtering-Correlation-Id: c31165e0-a278-49d2-ea90-08ddf0547d4f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|82310400026|1800799024|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QY/nrzc0zwR8C4cT8POYJ2tuzLHgKZadWgwcHTEmgxRbixuXFa2/mxbwiBoy?= =?us-ascii?Q?akZu9SURWadmNHUeK99rZ9dtW13v+kYgza+71O9SBIg9olKk9/A4mWCzcTJw?= =?us-ascii?Q?u8kW0XrQUy8pl/PM7tVYlfy8bH/b7QNhePkV+2RMLm4tSmwF0klFkKGNLpXN?= =?us-ascii?Q?JPS1e4nZJqJr57s6GfIGzCmZpuO72VjLrJmSjfov+4CCVSv89ZHki+EIkm+P?= =?us-ascii?Q?s36y7+PWhKXnG+Y7un5sq3GOpC6nfvKMZUMfZpP6epTGJPupZWdlRtMsWbwQ?= =?us-ascii?Q?SSYGtq+k2M93xKl/88ewtcrKoiGl745XBbn8tTWCtgFAq1EIanreNqn7mUkN?= =?us-ascii?Q?+m2ZGN8l6PANnqU0Y9hxGrC2SNDu30gnuhMYStDDf/wJPZSf9Zj8UukD8fo9?= =?us-ascii?Q?iEnfjEdWHhw2qNr4HC7Xml1J5pWPiPdhT8pdDbYNIGLWUcQyt3Qub9hGCo0J?= =?us-ascii?Q?DFOfe7ePsMgY7cHjeDUrQvdGag8NJxtJKG1DxNY8VxZOUfXdTzdzCyl5Owzb?= =?us-ascii?Q?70754rl4vQtLid0QyZW7m6R1Be6jAE2tePhqlMmo1lsqs06vqzXFu6Hfdkzs?= =?us-ascii?Q?8cNe51c+PMCxn+m4HphlXdBWp2XP9QnTki/C5T00m7xhxpAQcrDXF9/qOzs8?= =?us-ascii?Q?0hDlZpo326Qsq93ThC8tbev7wTJDAH0rLrzNqc3NYth5HiRZIYBb2lPrGxKf?= =?us-ascii?Q?n4Z1X4TI09CPbKPvQ+Q3v78+ryHVHSBwNhCEznwumDBu7yIUwfW6SONj+CyL?= =?us-ascii?Q?us77JS2qw4whww8VejaA1NbT2XX9TJFuYCEvwq6KbZkBgMU622ZKcUXCxljg?= =?us-ascii?Q?8yA0W/iKxDTo6fUC7a+G/43WO67OZUl3pcG5Vyf4v8z5NZUXRGoSnbNgGw0z?= =?us-ascii?Q?XoGUOkFGKzXv8j9KrmwStmSaB9eb7SoaUy2oSRN5+8Kj9SFfZ5awC8DGta6X?= =?us-ascii?Q?MYwyivM66ajjIjmjPMV15iNjvcofZz4UfGhSixTUN8InvE/65JJ8VMGcHKc4?= =?us-ascii?Q?uyEKfwiRorhB7lj/jq9JCeZb/yYR/m2ugMnLP3j53MuupsEwY742yD0DElku?= =?us-ascii?Q?x8cJ5GvWhLVHQhG5XVJYO50y1odDEGdniRfiBIvaZ4s73942jOGESUo5ja0W?= =?us-ascii?Q?q/WKLUUR/hOgzgg7vS5mBQ1x28bAaGXwA07fvwmNf9giTy8VBVZhq2UTTzQz?= =?us-ascii?Q?pXcCWnDcaXn4AK290ibVh8z1XUv4YPQ4KoxX5EpliQsNegi/ANWEDOmSG4CE?= =?us-ascii?Q?/Bb73JI/758/oDSc+nhOPmEOuBXeCaUgXWmGRIIioa2qSaw/yasG8prN8v52?= =?us-ascii?Q?JnK3TMH8egOumVl6BadfKjjPQBtGwmpD5Phu1NLRhaJj4564oeGlVa573VDx?= =?us-ascii?Q?IUzKzAgTnRYpmTN0AmvrlSyUbtT2Eewg9YC1bwHdVt1aKtXqXyFXWxi4FXvA?= =?us-ascii?Q?8SWWmKYz2nswWTJeLVkO7qxJS1K3QftemTZ6J0GeAzXZ3lpoBJzDea4atjTJ?= =?us-ascii?Q?WLZQu/aNtsIHiaOfPnKwHMX/3Me7Oco/79Sg?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(36860700013)(82310400026)(1800799024)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:26:22.0412 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c31165e0-a278-49d2-ea90-08ddf0547d4f 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044EF.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7781 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu Channel doorbells are now also used by all channel CQs. A new 'uar' parameter is added to 'struct mlx5e_create_cq_param', which is then used in mlx5e_alloc_cq. A single UAR page has two TX doorbells and a single CQ doorbell, so every consecutive pair of 'struct mlx5_sq_bfreg' (TX doorbells) uses the same underlying 'struct mlx5_uars_page' (CQ doorbell). So by using c->bfreg->up, CQs from every consecutive channel pair will share the same CQ doorbell. Non-channel associated CQs keep using the global CQ doorbell. Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 + drivers/net/ethernet/mellanox/mlx5/core/en/params.c | 1 + drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 2 ++ drivers/net/ethernet/mellanox/mlx5/core/en/trap.c | 1 + drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 2 +- 5 files changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/eth= ernet/mellanox/mlx5/core/en.h index 1cbe3f3037bb..f1aa2b2ce10b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h @@ -1062,6 +1062,7 @@ struct mlx5e_create_cq_param { struct mlx5e_ch_stats *ch_stats; int node; int ix; + struct mlx5_uars_page *uar; }; =20 struct mlx5e_cq_param; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c b/drivers/= net/ethernet/mellanox/mlx5/core/en/params.c index b6b4ae7c59fa..596440c8c364 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/params.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/params.c @@ -611,6 +611,7 @@ void mlx5e_build_create_cq_param(struct mlx5e_create_cq= _param *ccp, struct mlx5e .ch_stats =3D c->stats, .node =3D cpu_to_node(c->cpu), .ix =3D c->vec_ix, + .uar =3D c->bfreg->up, }; } =20 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c b/drivers/net= /ethernet/mellanox/mlx5/core/en/ptp.c index a392578a063c..c93ee969ea64 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c @@ -578,6 +578,7 @@ static int mlx5e_ptp_open_tx_cqs(struct mlx5e_ptp *c, ccp.ch_stats =3D c->stats; ccp.napi =3D &c->napi; ccp.ix =3D MLX5E_PTP_CHANNEL_IX; + ccp.uar =3D c->bfreg->up; =20 cq_param =3D &cparams->txq_sq_param.cqp; =20 @@ -627,6 +628,7 @@ static int mlx5e_ptp_open_rx_cq(struct mlx5e_ptp *c, ccp.ch_stats =3D c->stats; ccp.napi =3D &c->napi; ccp.ix =3D MLX5E_PTP_CHANNEL_IX; + ccp.uar =3D c->bfreg->up; =20 cq_param =3D &cparams->rq_param.cqp; =20 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/trap.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/en/trap.c index b5c19396e096..996fcdb5a29d 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/trap.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/trap.c @@ -76,6 +76,7 @@ static int mlx5e_open_trap_rq(struct mlx5e_priv *priv, st= ruct mlx5e_trap *t) ccp.ch_stats =3D t->stats; ccp.napi =3D &t->napi; ccp.ix =3D 0; + ccp.uar =3D mdev->priv.bfreg.up; err =3D mlx5e_open_cq(priv->mdev, trap_moder, &rq_param->cqp, &ccp, &rq->= cq); if (err) return err; diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/en_main.c index 4dee4c6d048d..c22dcae9612e 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c @@ -2234,7 +2234,7 @@ static int mlx5e_alloc_cq(struct mlx5_core_dev *mdev, param->eq_ix =3D ccp->ix; =20 err =3D mlx5e_alloc_cq_common(mdev, ccp->netdev, ccp->wq, - mdev->priv.bfreg.up, param, cq); + ccp->uar, param, cq); =20 cq->napi =3D ccp->napi; cq->ch_stats =3D ccp->ch_stats; --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2045.outbound.protection.outlook.com [40.107.92.45]) (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 C44372DCF55; Wed, 10 Sep 2025 10:26:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.92.45 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757500000; cv=fail; b=uIJmRP9zeMFdIDP1xqyYmm9UTVkhE85VCavtL+EzTVBfaOkO1sMuNFuGl/weOE99+MIVNtVtP8WpIufsQ0JHQ/ok8XlK5gGgwbVZDb6WcjevJKMp+bOWFa1u3J0SKAROR/UOxAWkOtZT4MJxKYHW238Q9L3Dnyt1SG89g5d9wBI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757500000; c=relaxed/simple; bh=fVPLugubNkZ8WBxNdinW7aSMQwLrb3lEEOyXIy6qDPY=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=sT2MbPtcip/7p7g7oNWcgAmM6JGEEeZHU0g+N9OoR+ril6SICXrsK3uW4aIVDVXXtLZHcAj0p3PXgWrUVaVTKFiS9lCi+gow4jw7eQFGjMHiPl48oBvOwiOaqFSBzMLREPWhbBdWfTF65nHAevBKR0sLYLAwj+mKoMus/5FESNE= 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=RzUsltiQ; arc=fail smtp.client-ip=40.107.92.45 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="RzUsltiQ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FdLyflKNnEdioCbEesV61d9VE2wsdDg/pty00KfWa+PZRrzahlkOsuYGSzP2uPNcH/YP60CpDBZHAtASZoyMEFcSHU2atDA5MngQFf8TzWTY12tbKtkBOm7ouQDcMMifYzu7wEr+bzPeQ3k3718tOWmT2p+HloOPZbithBIIJxsI0DxKcAW28bp0SHxL65s64ccvyO5ismRVTvSn1M2lNjxY+kxwm1ltJt2VXKlYcbRsFzmG8o1Q0zPX0Tih4UACeqm9wD8+8Ibh22q1sZgo9EcHBbD+SI0Dl5j6k+TuMjbct+IIJveI7pUTdGpkwIePgcPQLKLhlxVQ5jRG3HYOsw== 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=Ot0hPtS9oCQ4MvSoxsQcG1ll2sRlOFD5O3gIcuv1rLM=; b=dsyx+SrzGT7v3bAEu6Q/ijAEWpzHALk1ALWXr3CA7VFX9GN3yqN1IIMzZzovl5TLTYykeosKUlvq6xJdoE8jYItjNTTXnqb+CTznsruG13D1hAEBXpluyxzcMLlJSRryVvBzG83zRPd13pvKc/czI17gmTV0iWju/kGvzQ063LFtoAcpKa3bfPyDsbaup0llbCIObJ+6XsYasTu6yMJHhj9D9RjJDlEVP8cMGwp2GjTxGNcPlePY8q0A/jRoObWtvUKdScwF9krUeqv/89trUtvZFmLYdIkTs7SWshGmAMO88C87Www5xt3ZG3xOuDCgfpiXKG9AZh5iULcul61uOQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=google.com 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=Ot0hPtS9oCQ4MvSoxsQcG1ll2sRlOFD5O3gIcuv1rLM=; b=RzUsltiQpDShiYcXqzHwqlWZ5QfwjnVKwDsuqca6isLFzqnrrgvV3HXhqh2IxbtS9ZzOF7Sr8SIgbLJEVhqux1+yNiOHKuxcyoFMs2NSiGnmro7qtHfBaDkUv6/8cO1wF3PRLjN/3x3Xyd7/m+JRiXaX2aOmMsJwgIHVK8whlDpGSvP9O3q5t7JMLW8BxS2WxveOX4FyhQbV3mqx11+I3S16fQf4vA9c/RuAUYlfepplCjxvUy+KcCpxVmpB9CCrFSwgMurbtlhUVxH7vzp3IsHTNFrqvVIyr+CCsmRk2HWPRysnr56FHIze8YSVpAKsIaexf7s3wVpBxgkhi7uTAA== Received: from BYAPR06CA0071.namprd06.prod.outlook.com (2603:10b6:a03:14b::48) 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.9094.22; Wed, 10 Sep 2025 10:26:35 +0000 Received: from CO1PEPF000044EF.namprd05.prod.outlook.com (2603:10b6:a03:14b:cafe::32) by BYAPR06CA0071.outlook.office365.com (2603:10b6:a03:14b::48) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.15 via Frontend Transport; Wed, 10 Sep 2025 10:26:34 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) 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.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by CO1PEPF000044EF.mail.protection.outlook.com (10.167.241.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:26:34 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 10 Sep 2025 03:26:02 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail203.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.14; Wed, 10 Sep 2025 03:26:02 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:25:56 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 09/10] devlink: Add a 'num_doorbells' driverinit param Date: Wed, 10 Sep 2025 13:24:50 +0300 Message-ID: <1757499891-596641-10-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000044EF:EE_|IA0PR12MB7700:EE_ X-MS-Office365-Filtering-Correlation-Id: 872723e2-cede-4fb0-83ae-08ddf054843a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|82310400026|36860700013; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?z3SYH1HRrYcx8+y8gBiQxYymJB57WIg7sW8DED89MTBjA+/a48hkCjCDtRAw?= =?us-ascii?Q?zIim8p45hJaMt4jl6R4U3bq1Mzp1qwJgTBvfVlJc+XN0+dxD+NImuSTVq49G?= =?us-ascii?Q?C7rN2jm4v0aQgMsl7bZM3xNA87pDGk9RHiKMlb1aBvSmekE/mF22oc9GmYPV?= =?us-ascii?Q?GzsdZqU0a9VwwxdSgHE24vNwobrNibAZOTOQe53DuAmjPCkR6ktg0zBHCGLF?= =?us-ascii?Q?JCHLBvn/GkdZlYuK1M/e6ZryEWUsdO5PyFhMGz+6XeUSW3xqWt6MybtMMWFt?= =?us-ascii?Q?c6lAv/HaBobdhHmg44KmWpNzNBgIyMda9BvMBOHGIkrTMzNJY+nHMN3p8Ty1?= =?us-ascii?Q?ZyBZRSBTd7hBpi6zG4pHlwbXasoO3F+2f4/PeB0oZepDms7Y/8Eq2llScKbv?= =?us-ascii?Q?UmnB6cAjOQO+ZF2mPhMfdp7jyTz47bTgOrD3q1OnGuQFTTFgNlb/3IgDDMkz?= =?us-ascii?Q?Iqa8/JcOOg7bD4aY93XzMKKVXB8AIxmnYby21tNEoT1kacBZVzQaH4Xnh1k+?= =?us-ascii?Q?O45CVJE74FUfkRlj1GTWxHgvOTnGaHGB1gBuPqKyHbW4EIRmA9vgoCAeyoIH?= =?us-ascii?Q?jdcP5E8ZYXIEgcEmmOZ6JfNGtePoQBkjSZbCVTak4WJ3u6P7FkanZiezyjEu?= =?us-ascii?Q?dA3tEYMSzuDqCulvk52zn30bE5xnRYImJLup+qxTIPVgtQ8Qa9c0leZm6G8l?= =?us-ascii?Q?VKj5ojIepQz027WWzL82WjB8EtlY/uo4entdvTObU0VF11Esf5YRMzAGk0Xw?= =?us-ascii?Q?ayyAaSiyZwRMFZPVOgLtQGADwhXJ+tre5KUYYceAD5YcPAMJU8k1ckqlmL3e?= =?us-ascii?Q?8ZaOAe3+NAc0niw/Vjl4DhUJjoPcGtsyVUzlQBxTVjIoiLOFvtFQxjloOu3l?= =?us-ascii?Q?sD2eZob1Ycs9RwZiC8WbWjxNS7lUZuJqkpvAnTVxGB2mXFwdUJtNUHFAjonE?= =?us-ascii?Q?tFBE/wfbfC753A3TIhL4YSE9zTERLzeYz6yM60GgqAUZp/LeOZ+ywOfKaxlV?= =?us-ascii?Q?+oMgSuMODPNFzPt/F2sGK32cA2jain0BNbfXVNtMMhFFlhKtCIfyYgEvFqto?= =?us-ascii?Q?wXCwqfM7MteC16Nid1j95t+dv11aUToW2Uo9sSRl54P9m5rpC9oLdjHohb3n?= =?us-ascii?Q?0WcPGn3JZYxoJgFW4Ga7fsfCBClkPGIE+a7fha6m3BIUQNRuhhd4sQI5SsBM?= =?us-ascii?Q?KcYXRkcK5Y/bdEWm7v1PGSIOWz7BL078UH6bOrMa2bkQF5wNA44FETIn/47q?= =?us-ascii?Q?UX9pY0WGJeNQlYogqhT9v3NDvkCv6B5vNNl/o4pptnTspc0Tp8SsSYImjMkz?= =?us-ascii?Q?JAXi6hT6FF8oM+F9lHaaXVT3/OkGZF89UWv91ohm9c/UvkSiYAhJU7M58/et?= =?us-ascii?Q?e7TWjOXuTJVMMiAo3xbtTYBFkLTE66ry3vTYcwsA3B4L+drEuX/ahETnlSMJ?= =?us-ascii?Q?0si4a7Iyd2EUKb3sIKPaVKtsNXHTOFmyR/ZooYSCzPH9QpkkgtfAoW1MARxg?= =?us-ascii?Q?ba9xuDH+DNPW4MpJGzqCPKC1v+sSNo1yRkw5?= X-Forefront-Antispam-Report: CIP:216.228.117.161;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc6edge2.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(376014)(82310400026)(36860700013);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:26:34.1234 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 872723e2-cede-4fb0-83ae-08ddf054843a 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.161];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1PEPF000044EF.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7700 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu This parameter can be used by drivers to configure a different number of doorbells. Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Reviewed-by: Jiri Pirko Signed-off-by: Tariq Toukan --- Documentation/networking/devlink/devlink-params.rst | 3 +++ include/net/devlink.h | 4 ++++ net/devlink/param.c | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/Documentation/networking/devlink/devlink-params.rst b/Document= ation/networking/devlink/devlink-params.rst index c51da4fba7e7..0a9c20d70122 100644 --- a/Documentation/networking/devlink/devlink-params.rst +++ b/Documentation/networking/devlink/devlink-params.rst @@ -148,3 +148,6 @@ own name. - The max number of Virtual Functions (VFs) exposed by the PF. after reboot/pci reset, 'sriov_totalvfs' entry under the device's s= ysfs directory will report this value. + * - ``num_doorbells`` + - u32 + - Controls the number of doorbells used by the device. diff --git a/include/net/devlink.h b/include/net/devlink.h index 8d4362f010e4..9e824f61e40f 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -531,6 +531,7 @@ enum devlink_param_generic_id { DEVLINK_PARAM_GENERIC_ID_ENABLE_PHC, DEVLINK_PARAM_GENERIC_ID_CLOCK_ID, DEVLINK_PARAM_GENERIC_ID_TOTAL_VFS, + DEVLINK_PARAM_GENERIC_ID_NUM_DOORBELLS, =20 /* add new param generic ids above here*/ __DEVLINK_PARAM_GENERIC_ID_MAX, @@ -598,6 +599,9 @@ enum devlink_param_generic_id { #define DEVLINK_PARAM_GENERIC_TOTAL_VFS_NAME "total_vfs" #define DEVLINK_PARAM_GENERIC_TOTAL_VFS_TYPE DEVLINK_PARAM_TYPE_U32 =20 +#define DEVLINK_PARAM_GENERIC_NUM_DOORBELLS_NAME "num_doorbells" +#define DEVLINK_PARAM_GENERIC_NUM_DOORBELLS_TYPE DEVLINK_PARAM_TYPE_U32 + #define DEVLINK_PARAM_GENERIC(_id, _cmodes, _get, _set, _validate) \ { \ .id =3D DEVLINK_PARAM_GENERIC_ID_##_id, \ diff --git a/net/devlink/param.c b/net/devlink/param.c index 33134940c266..70e69523412c 100644 --- a/net/devlink/param.c +++ b/net/devlink/param.c @@ -107,6 +107,11 @@ static const struct devlink_param devlink_param_generi= c[] =3D { .name =3D DEVLINK_PARAM_GENERIC_TOTAL_VFS_NAME, .type =3D DEVLINK_PARAM_GENERIC_TOTAL_VFS_TYPE, }, + { + .id =3D DEVLINK_PARAM_GENERIC_ID_NUM_DOORBELLS, + .name =3D DEVLINK_PARAM_GENERIC_NUM_DOORBELLS_NAME, + .type =3D DEVLINK_PARAM_GENERIC_NUM_DOORBELLS_TYPE, + }, }; =20 static int devlink_param_generic_verify(const struct devlink_param *param) --=20 2.31.1 From nobody Thu Oct 2 21:47:17 2025 Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2063.outbound.protection.outlook.com [40.107.237.63]) (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 F27AA315D59; Wed, 10 Sep 2025 10:26:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.237.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757500000; cv=fail; b=F0IiV7SI8orBWsBgLraTrtTMK5sFdd2tyLOEVrmpKEGS6HPJFIdU7vz3TC6SP+bAtWP727Na0HYebgjfErzlcWHH0Aded/EU2T0KihjylRLExnW82iUqDDsDwLeB4X2Y19pK+imJstXQ1u3LBHe9WOuDMTRo0xhT7GL8y+Peq+M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1757500000; c=relaxed/simple; bh=drY0wh7vF8W7rwicJ2nwWCSRT+L4VtW88sxxNkGRCVE=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Ls5rEwGGP4QaF+axFoh+8JJpk/7x49ZshaB3Qwi2cXI/VGtCj6qIxXCe8N5a/wv9652ddPGpLJS8MJrd97XSA2a51s4QtKxuO4sN5q37ha7R+RoUWqEw0A+8GzgIYaPBJznSFR7bLVpOAPFsiudeDlMJwaiQl5rXlmna+eqCXX0= 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=qKI4JJlk; arc=fail smtp.client-ip=40.107.237.63 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="qKI4JJlk" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FNsmjrJTkiOTGq92cxtsAR/Iz25aiguX2PylEgYelo7rk3zspNOA8BuERjO6qnPK1X6jvhVdyFvW8dW9zjPqDOmGCNqkUMcM7bj9EEp7rRz9a2mIZpFjbWLJwMB2WrRUNkWWx+9KCJ34g3cO4Vkp7ikHTAvrKdbSQUVKxTa9SRwOq/G6E7JSoGpKN+bwpMfl1DhtGk4PM7qrqFnIR+GPmPFCKZwl0huU49TuVS98hi11tHw1tqfZYnEut5luLU8JjdYew9Obk3+RnuRqymXgCNaSxNAS+yHi/YdCwKoH/2eb7MfW4Ujjne2vYxrfUfW0ulpNlT+/FWaUjn+xiqko8Q== 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=SF2upw563YS/vkETzj0l8V8bdeEftpbxwqTF5u3Pnbc=; b=kcwKxNRp8qTmXU1hdRoh0hOEBF04GoCwKhUqa/LfveVhGQRqSATkrJEN3w9oWuyxrSSUzHg6q937m3Xq2dMJy8ilF4wgaqd8yQGyBU/d9hb/nCvHSGPDIR7rqJMc/aq/MvPe4RydnD7pHyLeQlH/o5W03+1a7m09ycRpIp4fS/ppM2PGEPs2ON/nPiG6YQCMtqMv9NLL6LLMUs6g+2Re9uMtl6BwzvYhpQk3Ze3sMGfHNlAWw9oQTMxr/zkZEnCK07fnGO/Z6L7MAmo0kJz8s28EWaeSwA2+N0dNTJ6ocPtWllQqRyl8weOyukdYYFZBHj1KNMCQGfwaQnU4trBWlw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=google.com 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=SF2upw563YS/vkETzj0l8V8bdeEftpbxwqTF5u3Pnbc=; b=qKI4JJlk3YN8QFRZSd6EnOw3PjJKTmo/JijLjD5vb2pmRIB+q+2R7Y7cSy1HgrN4eONsxAk/Tr1S6IYA/JHZTv3WeTC/PzFai2EZNoOxIFCLTYQandLzils6dYP98auxZMhkuuMugZTCzNV5+DFNSMq6/GrynpXBnC3UCHoWL6QceFfwxBuNEwhIYB85I2NGmKejcKxU0zfKkanJPWvVgBQFr42v33zeWIlsbQwee1SU11JOH70KyPrlYzL9xXmJSxFdibgJzjahCvXPQtPXRrFxGpH7bT+Qlx4GJSjIwTmSZ1pzjZOMmSonbsJyZkGgUaOXE8IWipzos35azqPEcw== Received: from CH5PR02CA0020.namprd02.prod.outlook.com (2603:10b6:610:1ed::25) by BN7PPF02710D35B.namprd12.prod.outlook.com (2603:10b6:40f:fc02::6c4) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9094.22; Wed, 10 Sep 2025 10:26:34 +0000 Received: from CH2PEPF000000A0.namprd02.prod.outlook.com (2603:10b6:610:1ed:cafe::77) by CH5PR02CA0020.outlook.office365.com (2603:10b6:610:1ed::25) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9115.15 via Frontend Transport; Wed, 10 Sep 2025 10:26:34 +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 CH2PEPF000000A0.mail.protection.outlook.com (10.167.244.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9115.13 via Frontend Transport; Wed, 10 Sep 2025 10:26:34 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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.14; Wed, 10 Sep 2025 03:26:10 -0700 Received: from rnnvmail202.nvidia.com (10.129.68.7) by rnnvmail203.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.14; Wed, 10 Sep 2025 03:26:08 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.7) with Microsoft SMTP Server id 15.2.1544.14 via Frontend Transport; Wed, 10 Sep 2025 03:26:02 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Jiri Pirko , Jonathan Corbet , "Leon Romanovsky" , Jason Gunthorpe , Saeed Mahameed , Tariq Toukan , Mark Bloch , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , "John Fastabend" , , , , , , Gal Pressman , Cosmin Ratiu , Dragos Tatulea , Jiri Pirko Subject: [PATCH net-next 10/10] net/mlx5e: Use the 'num_doorbells' devlink param Date: Wed, 10 Sep 2025 13:24:51 +0300 Message-ID: <1757499891-596641-11-git-send-email-tariqt@nvidia.com> X-Mailer: git-send-email 2.8.0 In-Reply-To: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> References: <1757499891-596641-1-git-send-email-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PEPF000000A0:EE_|BN7PPF02710D35B:EE_ X-MS-Office365-Filtering-Correlation-Id: a06c17d2-9d71-48e9-81da-08ddf054846d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700013|376014|1800799024|7416014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bzf6hY/+kRWpM/SMT0qWSo5n9X7OVJ/J97IJZfsuson+6+4L6lxKDu0F8LcY?= =?us-ascii?Q?IQlLU20bw206fAIeEED6DfHvmk18bUOtk/o51Sv2xTOYr4Wr/7FMjD1kXGtE?= =?us-ascii?Q?CNBXPSU9gc6f52KV8jv7RC6T/z5wRRTzezc13CuJZFSFW3mHxdIRWHDXE2Zl?= =?us-ascii?Q?sURtQ+tJKjK0Az7jpWMUe8DqNM2ZjM5cgP91j1jj105qRLNI1FZ+lnJ4sd7i?= =?us-ascii?Q?RyKBzo/eUXQaJSc1m7RupGQvwOErJ8Dxw/H1jaC5Jd2y030Ec19lZObQOcP/?= =?us-ascii?Q?q2x9TjvhVaZVHDunLj0ZGeZUc5f9Jx66yaPE+di1NHJRr/ilQBOjtREAt0fb?= =?us-ascii?Q?T9oy+c1pueopeMXAHRawwXPBD10uuEku2wOcTIhDxBtsVePAt10G1Ofhof3X?= =?us-ascii?Q?XAT0EY0pAgLaAO0cZG8OWCV3I9qN9cwqwKsc868cyHcZPL+dU51HpD8oXwK6?= =?us-ascii?Q?eOsHm9r7qh5n5HIozFJ8BzlAB/B4KDEohkPs/Rv8iwIfp1VKgdmjmeSraI8K?= =?us-ascii?Q?++0yNoXnHfAWi3Jh8ukYxfaumnkVAvJ5P62vTHt+i1DQXqsZUEyp/Yy8cRun?= =?us-ascii?Q?56nJQRUdoZAg0utCQVpB8pULgJASwyqdU8r2j/9CSFy4GBZBnNa9+xbJJ/7L?= =?us-ascii?Q?BDJJMSA81bEZJinNO6WbPtSNnjk+FO1dbT/+H+7ul4rEQVawiQu2SCn8HSYl?= =?us-ascii?Q?lVySxSENt9BU4pQG1DQpCrvfK/e45kBJ2+i5SS7PwhnzNGrt8aqAfqbnNSJZ?= =?us-ascii?Q?c7wyuu1EmUo2hVeffQ8MeQcpLw+EItD16rYPvVwbpIDloL13HvpENFfCzyd4?= =?us-ascii?Q?jcLb35LKhQKY4Ezs15ofk1UnjZ/jB3Nwc4TsBl7nNoRcrpg4w3Xnfl3+Nik4?= =?us-ascii?Q?SwxwdgJ0Rk6bqOTQmpiwEGbOyBAR4B0h5VlPZpNAu5Y8c5BfnNhxdAYq79UX?= =?us-ascii?Q?K2g1dxxFNO/cQzqNLn6zWdDjQtlTevVZ+L8q3oB/LjWejfYcwMB3DEvZgJ2G?= =?us-ascii?Q?pNIEkhjkkrrDZzkRm3zsCkRP7tq00ZLGgr/FdV7gm6mMlwU3HnHnb8PaLWsv?= =?us-ascii?Q?mt2dR5HF517ESX29TqMrAB3pfoKvtdB58HIrgo2GRJTlXuHXEHuQBi+//Scd?= =?us-ascii?Q?DW8rHYteUIk2Oyt9sLocZ+6u3QV5Zyi8EvQAAtx9A0OUPsuo5+T1xXfSKAN5?= =?us-ascii?Q?2QaD3Vrkov8OhHODaWXkwjkfU+8dJynm3IC5SeRMxB5GwUN6YvSvxLDjg7Fp?= =?us-ascii?Q?Bo9uHsRdsvBq3Hwd+uPlBq43LQMkBaAdBkbxdo/8w3y7p7j1FTEl1iVO+7N2?= =?us-ascii?Q?5tGtNlpDn3kkOy+DulZ2pLtoE8TkuJ3tpUbenztIOiupaFCCxEoOHre6GUKj?= =?us-ascii?Q?0CzY0JRKJSuvYbqPc3OVjiPHXqKTmQ32RzfimbHPb+oYjgqHZ46hQpEjsY1d?= =?us-ascii?Q?5+9Pc4tH6ieUnYKCXoUbaFgbuF5k4rrbF2I2zTd/a9r5ROGFmKysxfkR1zzQ?= =?us-ascii?Q?4u7C2geWCV2Vd9iRN7Y/mpF91Riih12rX3Ar?= 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)(7416014)(82310400026);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2025 10:26:34.4079 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a06c17d2-9d71-48e9-81da-08ddf054846d 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: CH2PEPF000000A0.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN7PPF02710D35B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Cosmin Ratiu Use the new devlink param to control how many doorbells mlx5e devices allocate and use. The maximum number of doorbells configurable is capped to the maximum number of channels. This only applies to the Ethernet part, the RDMA devices using mlx5 manage their own doorbells. Signed-off-by: Cosmin Ratiu Reviewed-by: Dragos Tatulea Signed-off-by: Tariq Toukan --- Documentation/networking/devlink/mlx5.rst | 8 ++++++ .../net/ethernet/mellanox/mlx5/core/devlink.c | 26 +++++++++++++++++++ .../ethernet/mellanox/mlx5/core/en_common.c | 15 ++++++++++- 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/Documentation/networking/devlink/mlx5.rst b/Documentation/netw= orking/devlink/mlx5.rst index 60cc9fedf1ef..0650462b3eae 100644 --- a/Documentation/networking/devlink/mlx5.rst +++ b/Documentation/networking/devlink/mlx5.rst @@ -45,6 +45,14 @@ Parameters - The range is between 1 and a device-specific max. - Applies to each physical function (PF) independently, if the device supports it. Otherwise, it applies symmetrically to all PFs. + * - ``num_doorbells`` + - driverinit + - This controls the number of channel doorbells used by the netdev. I= n all + cases, an additional doorbell is allocated and used for non-channel + communication (e.g. for PTP, HWS, etc.). Supported values are: + - 0: No channel-specific doorbells, use the global one for everythi= ng. + - [1, max_num_channels]: Spread netdev channels equally across these + doorbells. =20 Note: permanent parameters such as ``enable_sriov`` and ``total_vfs`` requ= ire FW reset to take effect =20 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c b/drivers/ne= t/ethernet/mellanox/mlx5/core/devlink.c index a0b68321355a..50b8cc9bc12b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.c @@ -535,6 +535,25 @@ mlx5_devlink_hairpin_queue_size_validate(struct devlin= k *devlink, u32 id, return 0; } =20 +static int mlx5_devlink_num_doorbells_validate(struct devlink *devlink, u3= 2 id, + union devlink_param_value val, + struct netlink_ext_ack *extack) +{ + struct mlx5_core_dev *mdev =3D devlink_priv(devlink); + u32 val32 =3D val.vu32; + u32 max_num_channels; + + max_num_channels =3D mlx5e_get_max_num_channels(mdev); + if (val32 > max_num_channels) { + NL_SET_ERR_MSG_FMT_MOD(extack, + "Requested num_doorbells (%u) exceeds maximum number of channel= s (%u)\n", + val32, max_num_channels); + return -EINVAL; + } + + return 0; +} + static void mlx5_devlink_hairpin_params_init_values(struct devlink *devlin= k) { struct mlx5_core_dev *dev =3D devlink_priv(devlink); @@ -614,6 +633,9 @@ static const struct devlink_param mlx5_devlink_eth_para= ms[] =3D { "hairpin_queue_size", DEVLINK_PARAM_TYPE_U32, BIT(DEVLINK_PARAM_CMODE_DRIVERINIT), NULL, NULL, mlx5_devlink_hairpin_queue_size_validate), + DEVLINK_PARAM_GENERIC(NUM_DOORBELLS, + BIT(DEVLINK_PARAM_CMODE_DRIVERINIT), NULL, NULL, + mlx5_devlink_num_doorbells_validate), }; =20 static int mlx5_devlink_eth_params_register(struct devlink *devlink) @@ -637,6 +659,10 @@ static int mlx5_devlink_eth_params_register(struct dev= link *devlink) =20 mlx5_devlink_hairpin_params_init_values(devlink); =20 + value.vu32 =3D MLX5_DEFAULT_NUM_DOORBELLS; + devl_param_driverinit_value_set(devlink, + DEVLINK_PARAM_GENERIC_ID_NUM_DOORBELLS, + value); return 0; } =20 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c b/drivers/= net/ethernet/mellanox/mlx5/core/en_common.c index d13cebbc763a..96b744ceaf13 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_common.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_common.c @@ -30,6 +30,7 @@ * SOFTWARE. */ =20 +#include "devlink.h" #include "en.h" #include "lib/crypto.h" =20 @@ -140,6 +141,18 @@ static int mlx5e_create_tises(struct mlx5_core_dev *md= ev, u32 tisn[MLX5_MAX_PORT return err; } =20 +static unsigned int +mlx5e_get_devlink_param_num_doorbells(struct mlx5_core_dev *dev) +{ + const u32 param_id =3D DEVLINK_PARAM_GENERIC_ID_NUM_DOORBELLS; + struct devlink *devlink =3D priv_to_devlink(dev); + union devlink_param_value val; + int err; + + err =3D devl_param_driverinit_value_get(devlink, param_id, &val); + return err ? MLX5_DEFAULT_NUM_DOORBELLS : val.vu32; +} + int mlx5e_create_mdev_resources(struct mlx5_core_dev *mdev, bool create_ti= ses) { struct mlx5e_hw_objs *res =3D &mdev->mlx5e_res.hw_objs; @@ -164,7 +177,7 @@ int mlx5e_create_mdev_resources(struct mlx5_core_dev *m= dev, bool create_tises) goto err_dealloc_transport_domain; } =20 - num_doorbells =3D min(MLX5_DEFAULT_NUM_DOORBELLS, + num_doorbells =3D min(mlx5e_get_devlink_param_num_doorbells(mdev), mlx5e_get_max_num_channels(mdev)); res->bfregs =3D kcalloc(num_doorbells, sizeof(*res->bfregs), GFP_KERNEL); if (!res->bfregs) { --=20 2.31.1