From nobody Thu Apr 2 00:12:46 2026 Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010004.outbound.protection.outlook.com [52.101.56.4]) (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 4274A331A43; Wed, 1 Apr 2026 18:50:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.56.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069458; cv=fail; b=CDc/rQSlg7Z/jNZ0EmU6UbwJ9V2BA44gmixAlLGH+IEBu6Anedh6y2t5rReUUaXF/iLOAKzqGO4PtjnfrJmwA1p7CZEL58PmK/NebAXsaxiyNJpsYbtCyokmwJrTyer/xHQoFkwzmj0cNXFE7rFme5hTDrKlPc/UxDOTLSUktw0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069458; c=relaxed/simple; bh=5JAmz16WJ+MWQG0y8uNwgIKv3u9h9778y7vday56gRc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OaS+gaCvtVl2x+aFwt6s9IUVnCinMT8iPLIGuyXz4KYIJQUCoRVhNkpzRLaMSO+Uc1Md5P6xOAAujJ7RZdGisK6+tqhSeg/6ltiHqzqYNqEhQNPi1czzPhWNnD1OQc/DKwWVHR/+CDfNXPKSjkABtJOBnJx4TVJx4DEsRL9TUPA= 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=rC+c4EdB; arc=fail smtp.client-ip=52.101.56.4 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="rC+c4EdB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=l5ZmE1Cv49Fk//c2FT1zEjfxbSl8+ok8KnZ6MYcFeOVAassGiHaySioTuWVBCwyAks3kL376n/iik0KtNArTwsNUL2GU3Ib3/rZsRdOk8aIC88YfI89T3pAlmweWRz3m9Qn79+ipv222zzuPSCPr3bTkJIXQyKgr3O3jkmjMMRT8t3GjVXyVek/YVogQJY/zoVZalsngoIxgfWTJM0l6a/7FBga30DIo4vk1HTdFacDrpkcyRU6JIP6Prnib1v+lIEbwLLcBoyHqDFBlsJXqxnTypFgdJZBNBR4hwLu/FLtkRIS2zmGxpB3lo7kDJc7xKVSgctZ6oj8IHXIANBBpog== 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=Sc0HMEbZ3vW90tigxNiYCOF4QxSriaibXJ+1aFADTI8=; b=PuX3DqyzGw/bnXqnzq0M/rq8vND9ylp9UM8bLnW4wBNn6+ywjdkFpbZ5g0mVuoKJpGWY4HdLcdLG2d5XggHQk+/WLh1GLbK7oC+GIPphy8LovPWJ1pZ8mB0hFdT2eAX4KR2B2OsyQt79n/pqdG4UjvbrHkDwnPRBSxhIDRQ89d14hL19NhEQywxnuM6zf9GxW3veX0x6Bv3GjGgvVhDB6QWKrrOUTWaRrUWA1l1fkdjmGgy5sEBP2Jf5MnhRtJ6Eo1b7Y4DzpQbFVBqjCmTGwA19vKNe/SmuNT52AXcapeXw/VY1Brz5DnA173oOrpG3kIXVcoli/ElNmeiKMJ1+DA== 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=Sc0HMEbZ3vW90tigxNiYCOF4QxSriaibXJ+1aFADTI8=; b=rC+c4EdBg3eZBbU6zNIi+cBMsXRwhE3NQGbGvuxOzmRDuhsC/ZEZFkV6LNEBocfdhfOLnPpVc59SJfh45XbB7cUhhWdymfFl2zppQgkZCi1hpx5K2CZ3Hkf1lvKulCEQVhfkk70HwdATkTbcmDqZX2N4F2/9GW4Y4JQAyLBUexY1jSaBKf8ZguZJYrHl7yPWgB/88C0Y67HWxbKtYU3GeLB1nQCyAyrS0vS0mLTiFLjplwTkAfYMwcIvaU5Le9hkZV1vLmnHeq7tSgB/9HEj9ANjXXBg1pNj6ti7sy+wUpqmFXTofKRCgu7urCpafs6NA3YBypP1TdU0+X7zPSvCcQ== Received: from BN9PR03CA0070.namprd03.prod.outlook.com (2603:10b6:408:fc::15) by LV8PR12MB9715.namprd12.prod.outlook.com (2603:10b6:408:2a0::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr 2026 18:50:51 +0000 Received: from BN2PEPF0000449D.namprd02.prod.outlook.com (2603:10b6:408:fc:cafe::2f) by BN9PR03CA0070.outlook.office365.com (2603:10b6:408:fc::15) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.30 via Frontend Transport; Wed, 1 Apr 2026 18:50:51 +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 BN2PEPF0000449D.mail.protection.outlook.com (10.167.243.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:50:51 +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.2562.20; Wed, 1 Apr 2026 11:50:30 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:50:29 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:50:21 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman , Jiri Pirko Subject: [PATCH net-next V4 01/12] devlink: Refactor resource functions to be generic Date: Wed, 1 Apr 2026 21:49:36 +0300 Message-ID: <20260401184947.135205-2-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF0000449D:EE_|LV8PR12MB9715:EE_ X-MS-Office365-Filtering-Correlation-Id: 4f8b7bbb-8602-47ef-7f41-08de901f98ad X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|1800799024|7416014|82310400026|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: aUEiN+/CRTognrZQ070RIOxZGVEgfRd+LBsK0UN+We2ZqbAmoOhCaiXrHT6S72qU2Y7vVJLGXXb8ykauY4mcXGHxtWfdLceR4tdnWftcPqKFYi13OvI8L1qmWNO5xxtcoYtcULzJJIue9D4ZJeHQwpqjswnTatyUnoeDIMmi5DOwUbjMRkwAbyXtMTJx57MclZ5KdGyLMqkWyva0bSyBKj8T5oEdPLvnb5Zm4B9Ts/NRgg/mda2e+8qkbgasz10tcM2VP+9NU2HJVnSJ2Bsg8TTEW3XUnzMTt/ZQH7RxYOJM9+SEIsnU7txjhcZTX3ObcRAVA7FOR6rwQSAR6ApilnhRkhM09IL+4ciCgU5tTOqgEy1rFIWf+dwpNmVHUIoeqmC3dEmViWZu/XcXOiqiqQ+wYs2RYN3hyJUUs6piZEGfUFPqK/Oj0nOzhbma+KxiNxhlHyzgq4bKpd7yIWU2iMJ7zPsj2M+4jfA64UTL6bEX9/94hKzrEknK58SBIxBjaVugnFjw63OIYWGqHWhHOWW2ZhDqdJSXk0Z+ga1Ml17TCPM4jujrBT324lZBAx3vSINTtTtVNPzVmaZ3PsiYIjsendTNlUmF1o0ThhLGVw4UG0hqPMWoWyfUsavbgAeBNynOuiSl7NCGMUts7PAx8rq7ObNAF/LH/UVsXCowdTG9oawHK57ILUrVCm1hNVs8jSp1WNiB7gRb4IZMVM2xtJRRMUDP8MthywZ8RCaJCMQ8y79QbDG3Ex/58mN8Q/eFfE95KQ4TXpLHOxE4ZVYhMQ== 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)(36860700016)(376014)(1800799024)(7416014)(82310400026)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: upU7cvWFp9huyq/iAwKBHv6Gnh5T2//H5xNJJNz8XPRL72bScgssFqn+7BtxmoLYzLalqWkIhcxDch8cFsj1Ykf5SqozmLTGMBuVKaF0N68Bq1RtbGWFqH0FOt0MQBwz+i2cHTdKdXG+Tv+ercgkufB8LFRdZoWuvE21e5L9ae68cbLx10rPl2eXjfeaezzCTgATzVjQVFNDhjZE9Ql9sesPnJAL+qzu0MAyJ3SQhQau6cwtf1BCPcgK+ZEHQTsaQX3/R0hHZa/qn5usHGDLnNJGvUPdFvfeyMU9ta0YHoOPZVZgFff9EVlCSIpn9DTPOfEkY2ugCAH5XoPK8s+Hbg9PF5O0bRQqff1T/QAVJ9Nsq9O+fHoF7xyhuOT7MhNunwX6TeghrQiF1Q7U4pujEmfhsKoHfEE4LF1z2h9aV3C24iKWMBdyY9o9FM4GbT3c X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:50:51.1239 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4f8b7bbb-8602-47ef-7f41-08de901f98ad 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: BN2PEPF0000449D.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9715 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Currently the resource functions take devlink pointer as parameter and take the resource list from there. Allow resource functions to work with other resource lists that will be added in next patches and not only with the devlink's resource list. Signed-off-by: Or Har-Toov Reviewed-by: Shay Drori Reviewed-by: Moshe Shemesh Reviewed-by: Jiri Pirko Signed-off-by: Tariq Toukan --- include/net/devlink.h | 2 +- net/devlink/resource.c | 114 ++++++++++++++++++++++++++--------------- 2 files changed, 73 insertions(+), 43 deletions(-) diff --git a/include/net/devlink.h b/include/net/devlink.h index 3038af6ec017..f5439d050eb0 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -1885,7 +1885,7 @@ int devl_resource_register(struct devlink *devlink, u64 resource_size, u64 resource_id, u64 parent_resource_id, - const struct devlink_resource_size_params *size_params); + const struct devlink_resource_size_params *params); void devl_resources_unregister(struct devlink *devlink); void devlink_resources_unregister(struct devlink *devlink); int devl_resource_size_get(struct devlink *devlink, diff --git a/net/devlink/resource.c b/net/devlink/resource.c index 351835a710b1..ee169a467d48 100644 --- a/net/devlink/resource.c +++ b/net/devlink/resource.c @@ -36,15 +36,16 @@ struct devlink_resource { }; =20 static struct devlink_resource * -devlink_resource_find(struct devlink *devlink, - struct devlink_resource *resource, u64 resource_id) +__devlink_resource_find(struct list_head *resource_list_head, + struct devlink_resource *resource, + u64 resource_id) { struct list_head *resource_list; =20 if (resource) resource_list =3D &resource->resource_list; else - resource_list =3D &devlink->resource_list; + resource_list =3D resource_list_head; =20 list_for_each_entry(resource, resource_list, list) { struct devlink_resource *child_resource; @@ -52,14 +53,23 @@ devlink_resource_find(struct devlink *devlink, if (resource->id =3D=3D resource_id) return resource; =20 - child_resource =3D devlink_resource_find(devlink, resource, - resource_id); + child_resource =3D __devlink_resource_find(resource_list_head, + resource, + resource_id); if (child_resource) return child_resource; } return NULL; } =20 +static struct devlink_resource * +devlink_resource_find(struct devlink *devlink, + struct devlink_resource *resource, u64 resource_id) +{ + return __devlink_resource_find(&devlink->resource_list, + resource, resource_id); +} + static void devlink_resource_validate_children(struct devlink_resource *resource) { @@ -314,26 +324,12 @@ int devlink_resources_validate(struct devlink *devlin= k, return err; } =20 -/** - * devl_resource_register - devlink resource register - * - * @devlink: devlink - * @resource_name: resource's name - * @resource_size: resource's size - * @resource_id: resource's id - * @parent_resource_id: resource's parent id - * @size_params: size parameters - * - * Generic resources should reuse the same names across drivers. - * Please see the generic resources list at: - * Documentation/networking/devlink/devlink-resource.rst - */ -int devl_resource_register(struct devlink *devlink, - const char *resource_name, - u64 resource_size, - u64 resource_id, - u64 parent_resource_id, - const struct devlink_resource_size_params *size_params) +static int +__devl_resource_register(struct devlink *devlink, + struct list_head *resource_list_head, + const char *resource_name, u64 resource_size, + u64 resource_id, u64 parent_resource_id, + const struct devlink_resource_size_params *params) { struct devlink_resource *resource; struct list_head *resource_list; @@ -343,7 +339,8 @@ int devl_resource_register(struct devlink *devlink, =20 top_hierarchy =3D parent_resource_id =3D=3D DEVLINK_RESOURCE_ID_PARENT_TO= P; =20 - resource =3D devlink_resource_find(devlink, NULL, resource_id); + resource =3D __devlink_resource_find(resource_list_head, NULL, + resource_id); if (resource) return -EEXIST; =20 @@ -352,12 +349,13 @@ int devl_resource_register(struct devlink *devlink, return -ENOMEM; =20 if (top_hierarchy) { - resource_list =3D &devlink->resource_list; + resource_list =3D resource_list_head; } else { struct devlink_resource *parent_resource; =20 - parent_resource =3D devlink_resource_find(devlink, NULL, - parent_resource_id); + parent_resource =3D __devlink_resource_find(resource_list_head, + NULL, + parent_resource_id); if (parent_resource) { resource_list =3D &parent_resource->resource_list; resource->parent =3D parent_resource; @@ -372,46 +370,78 @@ int devl_resource_register(struct devlink *devlink, resource->size_new =3D resource_size; resource->id =3D resource_id; resource->size_valid =3D true; - memcpy(&resource->size_params, size_params, - sizeof(resource->size_params)); + memcpy(&resource->size_params, params, sizeof(resource->size_params)); INIT_LIST_HEAD(&resource->resource_list); list_add_tail(&resource->list, resource_list); =20 return 0; } + +/** + * devl_resource_register - devlink resource register + * + * @devlink: devlink + * @resource_name: resource's name + * @resource_size: resource's size + * @resource_id: resource's id + * @parent_resource_id: resource's parent id + * @params: size parameters + * + * Generic resources should reuse the same names across drivers. + * Please see the generic resources list at: + * Documentation/networking/devlink/devlink-resource.rst + * + * Return: 0 on success, negative error code otherwise. + */ +int devl_resource_register(struct devlink *devlink, const char *resource_n= ame, + u64 resource_size, u64 resource_id, + u64 parent_resource_id, + const struct devlink_resource_size_params *params) +{ + return __devl_resource_register(devlink, &devlink->resource_list, + resource_name, resource_size, + resource_id, parent_resource_id, + params); +} EXPORT_SYMBOL_GPL(devl_resource_register); =20 -static void devlink_resource_unregister(struct devlink *devlink, - struct devlink_resource *resource) +static void devlink_resource_unregister(struct devlink_resource *resource) { struct devlink_resource *tmp, *child_resource; =20 list_for_each_entry_safe(child_resource, tmp, &resource->resource_list, list) { - devlink_resource_unregister(devlink, child_resource); + devlink_resource_unregister(child_resource); list_del(&child_resource->list); kfree(child_resource); } } =20 -/** - * devl_resources_unregister - free all resources - * - * @devlink: devlink - */ -void devl_resources_unregister(struct devlink *devlink) +static void +__devl_resources_unregister(struct devlink *devlink, + struct list_head *resource_list_head) { struct devlink_resource *tmp, *child_resource; =20 lockdep_assert_held(&devlink->lock); =20 - list_for_each_entry_safe(child_resource, tmp, &devlink->resource_list, + list_for_each_entry_safe(child_resource, tmp, resource_list_head, list) { - devlink_resource_unregister(devlink, child_resource); + devlink_resource_unregister(child_resource); list_del(&child_resource->list); kfree(child_resource); } } + +/** + * devl_resources_unregister - free all resources + * + * @devlink: devlink + */ +void devl_resources_unregister(struct devlink *devlink) +{ + __devl_resources_unregister(devlink, &devlink->resource_list); +} EXPORT_SYMBOL_GPL(devl_resources_unregister); =20 /** --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from MW6PR02CU001.outbound.protection.outlook.com (mail-westus2azon11012026.outbound.protection.outlook.com [52.101.48.26]) (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 94B2D26E711; Wed, 1 Apr 2026 18:51:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.48.26 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069470; cv=fail; b=Th/K6ADyTD103D400+3vKOAw3A/XgSKy4GDf85FWGRhTseY4/1BRA1XmPDIqBDeJYIg9aC4w1sSC1xy/+H8cnaORbn3xvKpq6zqwStf/TDk94uDT7FMNqBE9wtI1dKwmlPEH0ieIJjXQnotiAdLpU1i4WBXBGD3mgQsw0T7Sxvc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069470; c=relaxed/simple; bh=WLUN/AeB/om/Gh7k7+SYlm8IBgnX44fqQcf2ori073Y=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=lGhHooHjjmQsCrTHEA+QuFF+VFLc+ceRR8K3KBkj0ro3Wei7z0pyRLKGgR94BAbCGB9Tsz9ig87WafJ1dbhiflbRI4hQCtjvqzRaXUJbTuGrJs7jzGOJ1zTH1rGUw7i14j/Na3BvwPKj3uEmVlJJAFKLLnPc/18PnvPg0Ir9vE8= 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=IELB2sCJ; arc=fail smtp.client-ip=52.101.48.26 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="IELB2sCJ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oBdJVG2MQDlXfra+wP/5FHBMN6DzV80Nohr9MQ8TrUp8im0Py4qxyxANMvjL4jdZNFbnb7BGnVGBmQCO7eietDczrOIPClTepjIDuROTXCsuZcYgNfbAk/1fJUwnnIFnFA6aYYfpysM6jUFQEd4TghT0eo78/rsU/GHjfTcv6orCVd7jfK6sJC5MF6vvplOqp/eg7HzaTdrgxKrQPVq286xcz62lNhbAyzbD/bATGbqLEujp8RgmYP9xoia1TJEP4oLQ8mmoL+nHlb34aYXjzNHbrt+jkKhAIys9MxpR7Es9WgAYnIZaMnutrvNkyokcPjsahiLG/+Mt3pMxGep2+A== 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=ZcYuagJaoChyF58GPXGb5faPOQGoDeLF/02LtJPF0Tg=; b=hTNqli7gXmR3+bwpRyJ3no2DVw0U5Nrtm3sqYog/SzFfuFsbvWScaGXVUMZciGZezcnY8eZGHojB8Qf8kCrNGnzlvLNr2pjvw4IVg1gIOyPicSQVZcoQHkoWps6s7ZbLs+psY/cAy8ep2usDg0qDSZvz9HM/TLh9VnZPL2gJ0IZ5+zNe93iJyJK1Gnwxx3SRQ/xSQixzihk66FEnl52CFN5MkeXLM9B72p6g01JB8CKULSItk/xQSx2Gpa5OHHxaiftHwHtOmZimszhSQtSfV1wxpu1blnUoqjxEXywLniPgx4x4g9ac/Fp9CK0WN1RMOJiWmNVyeHSA/6ZewjcSFQ== 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=ZcYuagJaoChyF58GPXGb5faPOQGoDeLF/02LtJPF0Tg=; b=IELB2sCJe9ojZKjcTk3ASc2PIuwbXQxDUAw5osaq3+pydX3lPV6JIWyFR4kviJRkCk/be3KrryLqvsF8M/iGLvRfiUJKh2RyB79/xfwigACff2lFH1eVp0tYmZB6h6aM6/FkNVNXHGHVaxXxnPACwlA9lXwjohKixlR8bFOObl+PWq6nIZqyNmxtkFUaX8RXJLIvB711dX8r8/sxls6QSTx/pIKQOk8vTBs4AroG+BQjcXN0JUIZ3b/ZicpgOa5cKoaZmriqzajmn0zrhrRC20ajTGN4+VhS1tiKLnmKQIgl6WOXNSbJ1UfADF1i4EMa4k7IJnU0mNsKvNIjzwk7Vw== Received: from BYAPR02CA0045.namprd02.prod.outlook.com (2603:10b6:a03:54::22) by DM4PR12MB6280.namprd12.prod.outlook.com (2603:10b6:8:a2::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.18; Wed, 1 Apr 2026 18:51:02 +0000 Received: from SJ1PEPF00001CE0.namprd05.prod.outlook.com (2603:10b6:a03:54:cafe::70) by BYAPR02CA0045.outlook.office365.com (2603:10b6:a03:54::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.30 via Frontend Transport; Wed, 1 Apr 2026 18:51:03 +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 SJ1PEPF00001CE0.mail.protection.outlook.com (10.167.242.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:51:01 +0000 Received: from rnnvmail205.nvidia.com (10.129.68.10) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr 2026 11:50:39 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:50:38 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:50:30 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman , Jiri Pirko Subject: [PATCH net-next V4 02/12] devlink: Add port-level resource registration infrastructure Date: Wed, 1 Apr 2026 21:49:37 +0300 Message-ID: <20260401184947.135205-3-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE0:EE_|DM4PR12MB6280:EE_ X-MS-Office365-Filtering-Correlation-Id: 0fdde610-3a9c-4738-2ff1-08de901f9f07 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|1800799024|82310400026|376014|7416014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: NobesJOmAx+ZqAIeVA/VhdFQHLlta0sO7MwXt4KQxkzJie0DVZI2iT4z0n7kqht1HdWRi/2fpRn1Zen36R4yCqd7Bff3/Cr/eXWdofw4UTN0zobNrTg66PlcJOjQu/3hULrTdEj99Jm8zvnQFFz9b/Y1G0UxaViQEOfIYELznMZdcG+XvMY8FgrYwQzTxQYs8oKf/Y5NUPGj5fE5TKRxMgvyA+Xgfsc+TkZ7Sp2l714K1j2QKjpA+hF663yXqk/KYtaTiBr1ltHKCCXUCvsmiJWQg2XO1fI32b5PXrqapOKlLtG6HkS7OgTQ3gAK2NOatCGjIsq4SuM8R0OeEmKzUD8ymyA4+PqaKtcSgotWaWkZCTBc4fadX6pTotX36Hce1yKYfuSh4+jjpf3jSeuYY3H2PHUSgSI7X4UM70cgQm5+PxBHwgHD6BHx/MIqHyK4JaeEz/TVQB/jDMmyk6ksF+NP4U9sdJDdZeTr8MoJw6KI+j1PlCRWa4sWXXSa0oi3P5bRMuf+2p1NZ/zl6rA5hxEoqlC0hdoqjBZ1e1NoR7zRk5LNLffZ0z6hqo3mrIOf8Ggpe8Fv05Vxz8CvwYQAAsWRPSGYzI0AwL4dhlruDcHf3/3FhauhzPtwp9TMlyrxzMJdgrmQ5U3amEoW0eEINRlsYOUqRhJY2o2DiU2TX9WHV7/FNGuk+jgMUkFmPG4LyWfQEJPDgjQBinnIzQilFExvLiV586ZRHl1mS30M0iAEuJHBrsoq/HNG4t3qieyfDER5wLnCazylc0ZiWSfFKQ== 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)(36860700016)(1800799024)(82310400026)(376014)(7416014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: wRmTUPhlyEnFWx8tY6ilvoIrVxqMs7018/1AWeIqjVGpvfVw20LxAA2qQdqEEzfOzs/PcgJmoX/Fy1LgQlFppRg4rNC2fDPmHTDPigac8V+agfjSvydxRIYWHz7FlMmpbSNiKmG5TrZx5C7dBHZ5PcoaMUhBG1sRLXyct0gA5SRuYQYvjn8VlY6JxCL9U9BVAtQYis9HD9AAp/qksfm7vzAa3E2S2C02wohLkR4VENMBdaec5NdFaPqugpPjTQogaSEAQdaBuAPB+oJlaPcLZdhYBT/KctQGjR8L+It8UVngZr3ZU19OrSrMEW0/rruSCQMaCqU5ErxwTJ/S+Egrwpt3y2Nq95FVsORmE0pURASlaJ9QcA8V3929QtIJXTtdSGMw7q3OGAdH4OAPq4Ff5JamMT21MEdv7vkejXZbV1+IVFftBdDPrkakxFTujl4L X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:51:01.8229 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0fdde610-3a9c-4738-2ff1-08de901f9f07 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: SJ1PEPF00001CE0.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB6280 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov The current devlink resource infrastructure supports only device-level resources. Some hardware resources are associated with specific ports rather than the entire device, and today we have no way to show resource per-port. Add support for registering resources at the port level. Signed-off-by: Or Har-Toov Reviewed-by: Shay Drori Reviewed-by: Moshe Shemesh Reviewed-by: Jiri Pirko Signed-off-by: Tariq Toukan --- include/net/devlink.h | 8 ++++++++ net/devlink/port.c | 2 ++ net/devlink/resource.c | 43 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 53 insertions(+) diff --git a/include/net/devlink.h b/include/net/devlink.h index f5439d050eb0..bcd31de1f890 100644 --- a/include/net/devlink.h +++ b/include/net/devlink.h @@ -129,6 +129,7 @@ struct devlink_rate { struct devlink_port { struct list_head list; struct list_head region_list; + struct list_head resource_list; struct devlink *devlink; const struct devlink_port_ops *ops; unsigned int index; @@ -1891,6 +1892,13 @@ void devlink_resources_unregister(struct devlink *de= vlink); int devl_resource_size_get(struct devlink *devlink, u64 resource_id, u64 *p_resource_size); +int +devl_port_resource_register(struct devlink_port *devlink_port, + const char *resource_name, + u64 resource_size, u64 resource_id, + u64 parent_resource_id, + const struct devlink_resource_size_params *params); +void devl_port_resources_unregister(struct devlink_port *devlink_port); int devl_dpipe_table_resource_set(struct devlink *devlink, const char *table_name, u64 resource_id, u64 resource_units); diff --git a/net/devlink/port.c b/net/devlink/port.c index 7fcd1d3ed44c..485029d43428 100644 --- a/net/devlink/port.c +++ b/net/devlink/port.c @@ -1025,6 +1025,7 @@ void devlink_port_init(struct devlink *devlink, return; devlink_port->devlink =3D devlink; INIT_LIST_HEAD(&devlink_port->region_list); + INIT_LIST_HEAD(&devlink_port->resource_list); devlink_port->initialized =3D true; } EXPORT_SYMBOL_GPL(devlink_port_init); @@ -1042,6 +1043,7 @@ EXPORT_SYMBOL_GPL(devlink_port_init); void devlink_port_fini(struct devlink_port *devlink_port) { WARN_ON(!list_empty(&devlink_port->region_list)); + WARN_ON(!list_empty(&devlink_port->resource_list)); } EXPORT_SYMBOL_GPL(devlink_port_fini); =20 diff --git a/net/devlink/resource.c b/net/devlink/resource.c index ee169a467d48..f3014ec425c4 100644 --- a/net/devlink/resource.c +++ b/net/devlink/resource.c @@ -532,3 +532,46 @@ void devl_resource_occ_get_unregister(struct devlink *= devlink, resource->occ_get_priv =3D NULL; } EXPORT_SYMBOL_GPL(devl_resource_occ_get_unregister); + +/** + * devl_port_resource_register - devlink port resource register + * + * @devlink_port: devlink port + * @resource_name: resource's name + * @resource_size: resource's size + * @resource_id: resource's id + * @parent_resource_id: resource's parent id + * @params: size parameters + * + * Generic resources should reuse the same names across drivers. + * Please see the generic resources list at: + * Documentation/networking/devlink/devlink-resource.rst + * + * Return: 0 on success, negative error code otherwise. + */ +int +devl_port_resource_register(struct devlink_port *devlink_port, + const char *resource_name, + u64 resource_size, u64 resource_id, + u64 parent_resource_id, + const struct devlink_resource_size_params *params) +{ + return __devl_resource_register(devlink_port->devlink, + &devlink_port->resource_list, + resource_name, resource_size, + resource_id, parent_resource_id, + params); +} +EXPORT_SYMBOL_GPL(devl_port_resource_register); + +/** + * devl_port_resources_unregister - unregister all devlink port resources + * + * @devlink_port: devlink port + */ +void devl_port_resources_unregister(struct devlink_port *devlink_port) +{ + __devl_resources_unregister(devlink_port->devlink, + &devlink_port->resource_list); +} +EXPORT_SYMBOL_GPL(devl_port_resources_unregister); --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010033.outbound.protection.outlook.com [52.101.193.33]) (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 EA70526E711; Wed, 1 Apr 2026 18:51:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.193.33 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069478; cv=fail; b=IqMCd0P/nVa1+xqKlXWBHhdfGBO4sL4fAjrRWuJlHheSIvyhA3DgpOhdUwcPugEHqb231+l5O2wsuhyLAiAnEM8wfDSGUbmZ4kGto+UAujBfhGry+YA5/3NT4vAlb4ennrsoAzW7v5vJq5J1QfTNB3LOP0xue3sjMYfkP+IAujo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069478; c=relaxed/simple; bh=N+o4L9iMGp3b8ioiRRoL5M0PpKBHw+TELUz8AUOVeIk=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=i3S0UKlA7bv4yOWma0SrqvuwNeTKoUDeK0VjLKk9ajJSgM+GHmIzwPyBji78ftno/iJ+9TCk9PqlJodPv5YPp2699puIC+fx8vEBS9WrcTG3tYrMNhjrzfpBy4I2rsCThWzDE7v7wUsJKmi/+sxbsbH9rBTSi6jHQpXaKmmzXwc= 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=e8DVbqyN; arc=fail smtp.client-ip=52.101.193.33 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="e8DVbqyN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IUFbcghjnMBZdKGWSGhefAnT5McgrqcsuayQzfMC0TCjfPdB5YJ2MbJ0tfIPhRsis6XRB67ix4gavG4H+9bykg/IOhufeopnEwNZs7GetJ3XzYeCQSvcUtbEaCphZgWM6XLydmzFDgVKyTQTIGf/OgYqQRPL2lOjgMfwev85N+LQWrdg6AK2aX+ViNRx9GnFi7TiW1dhGpz8bzwML1eAQmyy5b3atSeWLO+pJ00h4bH6JRnbuxzDAK9Pok30jcOIk+NV5dfLGvf4UppOeJsaz+IsVnlyloqfzgc7c7naxhA9mij3I0BPg2Y3TkMI8KhvTls7Qt9Y+j/k6u2smy1pJA== 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=ZxyqQA0ObwR48EcEw5sW1/9ZlBoyRj+hAe2CzzlRx3E=; b=S1PrhnTOPMVljRAwlS8NjhAh6p6qLOft0fMqqTz47qa26Wp0XaXdBydNkcYe6xn++n0CXjApwZLjHqkylSOlYgrV9MskF/dY4/p/CZe4BJUepHZsJk1/Fz3NbO9uM99JfodSMDASphGnoDtViOfY3BPtZmvMQXEXkFKZ7UGTRdSgWUzuJ50DLkb5VP9Ehe1TkpnwPvXz+8FeTYIDeHpuIOk/HFFu99SxE4GTOfriscfqcyYf3wJBGCY0aNJr4N/8flL8vYkK4R5DZjm9ckYcbP2darL4HOkpqz3QdjfTa87F5TOumyvFX6mi5TbduLIH1KOVEHOR7b88gc5WeMpTdA== 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=ZxyqQA0ObwR48EcEw5sW1/9ZlBoyRj+hAe2CzzlRx3E=; b=e8DVbqyNaeeWu95nc2olYXJEou6qYoCwLIt3Op8Gj5Z94HhxC/vyOqMpftHHvZNnXV/SQ1MvT80cplpvS+06/x2+3pHSoJfWr+7dSUiD/57YbzjkKNmuE9wziFhfB6VHjuZ9pql8wQ0RRnMy3mD70JWV2KNq4IV3E7Ai3m9L95nSPICqUoPev7FgJj4hVKEhZMDhAHCqUFzPMnT++zRG/j+m05OQyZSXP8Y2N64QHl0U9uLABwV3K/cOXgCeUZkbIF2t+Ujhirdi3O5POzagvLbjkVKynKPHUif/td6KN/y4iOl2m37Vg8dUb0FbNN1pOfc72YmVX7ba2D9N6B62bA== Received: from SJ0PR05CA0156.namprd05.prod.outlook.com (2603:10b6:a03:339::11) by PH7PR12MB6980.namprd12.prod.outlook.com (2603:10b6:510:1ba::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.15; Wed, 1 Apr 2026 18:51:11 +0000 Received: from SJ1PEPF00001CE3.namprd05.prod.outlook.com (2603:10b6:a03:339:cafe::4) by SJ0PR05CA0156.outlook.office365.com (2603:10b6:a03:339::11) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.16 via Frontend Transport; Wed, 1 Apr 2026 18:51:11 +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 SJ1PEPF00001CE3.mail.protection.outlook.com (10.167.242.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:51:10 +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.2562.20; Wed, 1 Apr 2026 11:50:48 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:50:48 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:50:39 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman , Jiri Pirko Subject: [PATCH net-next V4 03/12] net/mlx5: Register SF resource on PF port representor Date: Wed, 1 Apr 2026 21:49:38 +0300 Message-ID: <20260401184947.135205-4-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE3:EE_|PH7PR12MB6980:EE_ X-MS-Office365-Filtering-Correlation-Id: fa6923f6-eeb2-49ae-2cdb-08de901fa47a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|82310400026|1800799024|7416014|376014|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: tB2bPhcWlKveS3IO7H0S5XXebT/B4JnZ5hMTCpOGXc25GcWOxIaSvW7HOMCjFp31WPzfFj65ygvrOLhudFxlZyme03riU7mI1TswShVbiqzdsPNwJp1CtsPSBYMGYjZZzYlyMbHb2kiUrpltr6cf+Ui9xiViZ8j1ou+K63ChoQzTy3Ww++EwgWAEHJI4SWxnH27v+9VSqsD7cZFhrHG33/UE1JouAGtf8EpTOmtj1MGZ977+V6f7sObJbLmAtvF5LXm5C3D+UOV8H7wNoIlWX1KjYHRPEMqTAwTvpiTxeqlLX5Jz+p30FKrL0cdMaq5wx1lh7RhmsGmHSP3YuZ2mtbdNXomdT4wN2AMhlX3FR+Jz2OPGiJfuhNJmICL8YWaxWY42PzMPmbaGuKkuuVyXWfVwx8/kmzWnvLMBWjVgGn/muY6ukFJLYPCTuT5pNjhy8vUHsat3wDtQWahVd1/XMBXTaJra0KVAW7Y/94s43Vqxl9pZiWiI/D/c+z+h6zRw9Uw+i2ltaiyVqxUntViuHxesrKP8PjTdxmrXVttxiB+fabIiaBZGVmgxKq9Zy4asA9tkaZpsb0M/QieFk8zwhPb/2a/+k4M5CQlpjM9yxUfz9G1DiEiaV1o2wPL3Zo5eXreihTgzwATnCP5/WE+eDulc+4g/pub/r1n9TytcmSHVC9ag5JlcfVYnU4i9SZp7xfFhoKCZm4GYltWy9agNX4Mll+1JP0faXVychVhKzncvh/StO/+5WsqJ3z/LYsGOOF3gKeM2Gk7FJ8Bx8os/Tw== 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)(36860700016)(82310400026)(1800799024)(7416014)(376014)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: lf4jnekxWlESaTokMMdi+1uoaW4m8OJpSlqkvv2iXDTQmA4QFBXmgZZkAeeTM8P/sDOCMLim6mI7JQuRFzwPFS6eUUrsnr2uZzH5xIRZzxs0iA9zSHKOpUSPjG18M3mUrMtUpvgvHDs8uED15BWG7aOs69Tx9O9V3bR7hsWvYqzzlZB52IfG0GzW6k21DPT+wLLlL8HI7eL6CdoW6xQTYKdwmeUsX449CmXE8uyyoRmatLQSxNprWu8yXLNCRP5gjXFpFMmQN+kReZzxsL8AOn8qOooM/SnnMULxvePrNuIBWFT2QFBE6DXwjboPEI/C++ZS31W28MTscCLcgKXwLQjnx1Q2UvOdFhNJxk1TQjIFwDYj/h7JHStoCTBDe7hVTJ5x61Rqlye0rUGJQ93EyS2vvb9fqpmaWwZl0/oI+2m/jWf/FpG4AB3Wn+PWsLxV X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:51:10.9639 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fa6923f6-eeb2-49ae-2cdb-08de901fa47a 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: SJ1PEPF00001CE3.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6980 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov The device-level "resource show" displays max_local_SFs and max_external_SFs without indicating which port each resource belongs to. Users cannot determine the controller number and pfnum associated with each SF pool. Register max_SFs resource on the host PF representor port to expose per-port SF limits. Users can correlate the port resource with the controller number and pfnum shown in 'devlink port show'. Future patches will introduce an ECPF that manages multiple PFs, where each PF has its own SF pool. Example usage: $ devlink resource show pci/0000:03:00.0/196608 pci/0000:03:00.0/196608: name max_SFs size 20 unit entry $ devlink port show pci/0000:03:00.0/196608 pci/0000:03:00.0/196608: type eth netdev pf0hpf flavour pcipf controller 1 pfnum 0 external true splittable false function: hw_addr b8:3f:d2:e1:8f:dc roce enable max_io_eqs 120 We can create up to 20 SFs over devlink port pci/0000:03:00.0/196608, with pfnum 0 and controller 1. Signed-off-by: Or Har-Toov Reviewed-by: Shay Drori Reviewed-by: Moshe Shemesh Reviewed-by: Jiri Pirko Signed-off-by: Tariq Toukan --- .../net/ethernet/mellanox/mlx5/core/devlink.h | 4 ++ .../mellanox/mlx5/core/esw/devlink_port.c | 37 +++++++++++++++++++ 2 files changed, 41 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/devlink.h b/drivers/ne= t/ethernet/mellanox/mlx5/core/devlink.h index 43b9bf8829cf..4fbb3926a3e5 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/devlink.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/devlink.h @@ -14,6 +14,10 @@ enum mlx5_devlink_resource_id { MLX5_ID_RES_MAX =3D __MLX5_ID_RES_MAX - 1, }; =20 +enum mlx5_devlink_port_resource_id { + MLX5_DL_PORT_RES_MAX_SFS =3D 1, +}; + enum mlx5_devlink_param_id { MLX5_DEVLINK_PARAM_ID_BASE =3D DEVLINK_PARAM_GENERIC_ID_MAX, MLX5_DEVLINK_PARAM_ID_FLOW_STEERING_MODE, diff --git a/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c b/d= rivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c index 8bffba85f21f..e1d11326af1b 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c @@ -3,6 +3,7 @@ =20 #include #include "eswitch.h" +#include "devlink.h" =20 static void mlx5_esw_get_port_parent_id(struct mlx5_core_dev *dev, struct netdev_phys_= item_id *ppid) @@ -158,6 +159,32 @@ static const struct devlink_port_ops mlx5_esw_dl_sf_po= rt_ops =3D { .port_fn_max_io_eqs_set =3D mlx5_devlink_port_fn_max_io_eqs_set, }; =20 +static int mlx5_esw_devlink_port_res_register(struct mlx5_eswitch *esw, + struct devlink_port *dl_port) +{ + struct devlink_resource_size_params size_params; + struct mlx5_core_dev *dev =3D esw->dev; + u16 max_sfs, sf_base_id; + int err; + + err =3D mlx5_esw_sf_max_hpf_functions(dev, &max_sfs, &sf_base_id); + if (err) + return err; + + devlink_resource_size_params_init(&size_params, max_sfs, max_sfs, 1, + DEVLINK_RESOURCE_UNIT_ENTRY); + + return devl_port_resource_register(dl_port, "max_SFs", max_sfs, + MLX5_DL_PORT_RES_MAX_SFS, + DEVLINK_RESOURCE_ID_PARENT_TOP, + &size_params); +} + +static void mlx5_esw_devlink_port_res_unregister(struct devlink_port *dl_p= ort) +{ + devl_port_resources_unregister(dl_port); +} + int mlx5_esw_offloads_devlink_port_register(struct mlx5_eswitch *esw, stru= ct mlx5_vport *vport) { struct mlx5_core_dev *dev =3D esw->dev; @@ -189,6 +216,15 @@ int mlx5_esw_offloads_devlink_port_register(struct mlx= 5_eswitch *esw, struct mlx if (err) goto rate_err; =20 + if (vport_num =3D=3D MLX5_VPORT_PF) { + err =3D mlx5_esw_devlink_port_res_register(esw, + &dl_port->dl_port); + if (err) + mlx5_core_dbg(dev, + "Failed to register port resources: %d\n", + err); + } + return 0; =20 rate_err: @@ -203,6 +239,7 @@ void mlx5_esw_offloads_devlink_port_unregister(struct m= lx5_vport *vport) if (!vport->dl_port) return; dl_port =3D vport->dl_port; + mlx5_esw_devlink_port_res_unregister(&dl_port->dl_port); =20 mlx5_esw_qos_vport_update_parent(vport, NULL, NULL); devl_rate_leaf_destroy(&dl_port->dl_port); --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011065.outbound.protection.outlook.com [40.107.208.65]) (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 1AF2247DD49; Wed, 1 Apr 2026 18:51:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.208.65 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069482; cv=fail; b=N5NL049Y8yIMq8QZlISJjhX0T8WFL8jNzmL0YFLhEIUJ4iwAhjWSS7SxDSfypgDgT3btYP2ZXPqnefYUouKSPgTc4hx0aBhgPxsnAIa4Mq4hf1c3FeVyBxoj1NEMl8V/CZTbHTuNSsHcrx3IHBCqcmQ1+q8Si841xKKSRO9BaUU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069482; c=relaxed/simple; bh=J01E6J8KuHlCjJpbMhIzPfQ5OWBz6d68lMLuqM4TmJ4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=QphxfxdmShvijHEDVNpJecEkS++feG38l4skL08UcFb0cNroSj6LX43anKXFJ8k+wLo78msg0fmL+8D7tUhWHBujxqEuUtEqxQQZ+XvTpydw5yoT2I880GESSH8jjdPXqZGNcF0xcraV47dm/D/oogmYGa1/hggzCRwGr0GWqKw= 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=MidXOTho; arc=fail smtp.client-ip=40.107.208.65 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="MidXOTho" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lM4t9llE6UK4vFmQfcfV6Ge2LhPAq6VUb/8XcAQHw1c7HkE6EJHtJcUsNl1BfiSDtPXlg4NX4tUJpmoO/jW47WKGqPNIjkUjc2P71/STfxv1/mQqG5Puz9Gn5uhEjz4rLMCVTWLneamwPiSEI4qPNA8H2Uy4iqlaFE25eg+k4nT9J2yZJahAk+HYwdgz7jTeaq7z4xgz9h6uVeCFWiHTN+DQm2Gey8ivbrnikgJppESykd4X4DnYoq/oytKQMNRs3jFpLyP5eOs5SN53kgLbc0Sj4Q72YJ2uFU6oqTsBarnX9jrI8hGY5gU/x41Q2fdy/0I+B931RaPTNWCCGYYBew== 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=AMTQnsGi7AHX0t8/FTdHAzIaS77LISeKREG8kwQwz0w=; b=lq/k2O2/L54D0ljRUcS9Dei+Q+r0/TAgNv2NdFBcdhaD7mKv7Td7GhyIPZ1n1PYvpJkh5iwDi23VgVXkv13b49I4Gw5gdM4SAq91h0brT5OUEA544POWyiAGZuX9h59+ANKyzObIZRDGmaFU0z3pIi73InJBgx2LJrXv0r0M5w+TS0DoZB3OR3/xxtC4OspaonvGqiNJ6uuwK0GJCd5ypexK3rdGXa/ULJmPqrJZYukABg+nLoLeyuWWGuzuHhJQW30eO4L+PBtfxkqAmQQtjZvslH5+vHnOfaLRGpKfzaYgub+x8B0L6OeLo9/EvuoSE3lMmuN7a/a2N4d3OCUgaw== 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=AMTQnsGi7AHX0t8/FTdHAzIaS77LISeKREG8kwQwz0w=; b=MidXOThomNKBD+wmI4q7wSNdmK9MonnQDHdg0Me5JSBhqLXWqf80xBpD5Fx2gPBYZTQe5WxhWQ6bBoog5xSP6rZBMRTLv9GPCJohttN0EpKKt+g5t423JQLieh7imj4GWVOnIBnAQtbCN8iRCqEnG9XRKIgjvkdP7in2wtMVDmmUKSSagJsOc+qvrAEBnwtgXZMdCQYDce2ISjM5RuvzpwdJcujFum9BZHmT340EozryIoz+ZwFJUn4pJ6+RzTL79KD8Lcinm0pUr6DTjZCqf41cdHdR7M1wa38zcFnWq4G+GUxhczTTadnsiAW2M/rc51WUObt1mCyV/oh18lUZ6g== Received: from SJ0PR13CA0091.namprd13.prod.outlook.com (2603:10b6:a03:2c5::6) by PH7PR12MB7966.namprd12.prod.outlook.com (2603:10b6:510:274::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.16; Wed, 1 Apr 2026 18:51:17 +0000 Received: from SJ1PEPF00001CE2.namprd05.prod.outlook.com (2603:10b6:a03:2c5:cafe::98) by SJ0PR13CA0091.outlook.office365.com (2603:10b6:a03:2c5::6) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.18 via Frontend Transport; Wed, 1 Apr 2026 18:51:16 +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 SJ1PEPF00001CE2.mail.protection.outlook.com (10.167.242.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:51:16 +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.2562.20; Wed, 1 Apr 2026 11:50:57 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:50:57 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:50:48 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman , Jiri Pirko Subject: [PATCH net-next V4 04/12] netdevsim: Add devlink port resource registration Date: Wed, 1 Apr 2026 21:49:39 +0300 Message-ID: <20260401184947.135205-5-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE2:EE_|PH7PR12MB7966:EE_ X-MS-Office365-Filtering-Correlation-Id: 2bb60cfa-b64f-4365-51ab-08de901fa7fb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|36860700016|1800799024|82310400026|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: OXAMLEFGHODRSqiHjnUtLU5pkAkH8olorR2a32h88tEY/sKkmFtl1kPo7A2iweibZ9TTGmPMXBIfK3n5XWs5kHYHwm0jLenbHilXJUrs1Wc5RIv5I/3pASMQFXvqWRhIwpMfG30CnqceCp1CnxDsR/Y6K++OAxNQ6eFzMocPVuVw11+Tqo5OKtbsy50UbngW5tsErznd757nzGVC8F0O2qr+BFSOHcr/HG/nSwxknw84apLwLSP/PwO/W8Of1aYQRbla3y0RwZVVEeu1ipxoGIN6iiS/Uy318Y8iXj/Ww11Hk20kQYLbCcVqrNZ6Tndw/Av6SO29maKFXEkf6jlyToLyUrho8mxQ1X4Bg3o8Pf6OVQpgF+0d6T1my5Y+UfFzY/Zg1raAlpO1Y24b76UHiqve1t7DJxi0Dr9hKzApcfk5bK4et0X2NWd4g1EgNvrbJ5HLPktuY2h/6BrgLj7k/FQhfeoNe2c2mPOdKbTPRcXHNzkvv10vAsH3rjfDZtLoDZP/d4JTrJPGOm9R+VoF+Z+veDL/UneUuzAXv4808Lsww84+LSbuk8+xK9rYE9IrwjJyrVKFSC6+oxl28yZY7EjJGQQaFk2CILJpRkJaEOodX/Mi85qg75lQy3EeHw010QFAconvfSDu+om3xeC1EJ3RK/raUt9c3scbwnXKkTdCeXzrfVubCHyzt3VL53lQKCyBFXLez6lN4J0j+PrsCvlSdQVHHJ2SLRRVOYsJtxRmtu9miPHhsoWLvw/+91Kf0PUSIMPIGSdivSlLjw2DFQ== 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)(7416014)(376014)(36860700016)(1800799024)(82310400026)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rnl8CkxYxxR/9qSTEcwL9rvneN8aQD+W2vcwMTx313PLUgCeiirFyCGUZ4jw173OV7PZBfKp+lw0JnrIs7EVGUhkoHGSxmveM5LsRYdaPm9FygXMB5JZPJVDWe0Grpm7KYMeikkMOtdyDcA8sH5I+sECJZxP6mAFkXKZ/VM7jzpOxz/ZBrrwU/sKGWkGRL+7kLDScxmDCz99SDg1xDkO/YbsmvqqSGCw7dNXXglOmJ66e+wBPSwuXrfYNagt0MRr/PPqx5qscaXsvw0PvpxW1l7K1TXRpejEf3D+eY/5cIv8NYrOdoc+cjb3GBq8SkQ/9zlM0j9q+4BKHJMlZaFc1dISQrsFjPONuoHQ+4m20wMFfhfX+rfrkS30ghiTUfYNmmsvMKWDevZHRwSZv3xJ5u4iC7iO6vYYazCLUWHkjTKGjUJV1yDMmEdJ76d0jOAh X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:51:16.8522 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2bb60cfa-b64f-4365-51ab-08de901fa7fb 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: SJ1PEPF00001CE2.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7966 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Register port-level resources for netdevsim ports to enable testing of the port resource infrastructure. Signed-off-by: Or Har-Toov Reviewed-by: Shay Drori Reviewed-by: Moshe Shemesh Reviewed-by: Jiri Pirko Signed-off-by: Tariq Toukan --- drivers/net/netdevsim/dev.c | 23 ++++++++++++++++++++++- drivers/net/netdevsim/netdevsim.h | 4 ++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/drivers/net/netdevsim/dev.c b/drivers/net/netdevsim/dev.c index e82de0fd3157..1e06e781c835 100644 --- a/drivers/net/netdevsim/dev.c +++ b/drivers/net/netdevsim/dev.c @@ -1486,9 +1486,25 @@ static int __nsim_dev_port_add(struct nsim_dev *nsim= _dev, enum nsim_dev_port_typ if (err) goto err_port_free; =20 + if (nsim_dev_port_is_pf(nsim_dev_port)) { + u64 parent_id =3D DEVLINK_RESOURCE_ID_PARENT_TOP; + struct devlink_resource_size_params params =3D { + .size_max =3D 100, + .size_granularity =3D 1, + .unit =3D DEVLINK_RESOURCE_UNIT_ENTRY + }; + + err =3D devl_port_resource_register(devlink_port, + "test_resource", 20, + NSIM_PORT_RESOURCE_TEST, + parent_id, ¶ms); + if (err) + goto err_dl_port_unregister; + } + err =3D nsim_dev_port_debugfs_init(nsim_dev, nsim_dev_port); if (err) - goto err_dl_port_unregister; + goto err_port_resource_unregister; =20 nsim_dev_port->ns =3D nsim_create(nsim_dev, nsim_dev_port, perm_addr); if (IS_ERR(nsim_dev_port->ns)) { @@ -1511,6 +1527,9 @@ static int __nsim_dev_port_add(struct nsim_dev *nsim_= dev, enum nsim_dev_port_typ nsim_destroy(nsim_dev_port->ns); err_port_debugfs_exit: nsim_dev_port_debugfs_exit(nsim_dev_port); +err_port_resource_unregister: + if (nsim_dev_port_is_pf(nsim_dev_port)) + devl_port_resources_unregister(devlink_port); err_dl_port_unregister: devl_port_unregister(devlink_port); err_port_free: @@ -1527,6 +1546,8 @@ static void __nsim_dev_port_del(struct nsim_dev_port = *nsim_dev_port) devl_rate_leaf_destroy(&nsim_dev_port->devlink_port); nsim_destroy(nsim_dev_port->ns); nsim_dev_port_debugfs_exit(nsim_dev_port); + if (nsim_dev_port_is_pf(nsim_dev_port)) + devl_port_resources_unregister(devlink_port); devl_port_unregister(devlink_port); kfree(nsim_dev_port); } diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netd= evsim.h index c904e14f6b3f..c7de53706ec4 100644 --- a/drivers/net/netdevsim/netdevsim.h +++ b/drivers/net/netdevsim/netdevsim.h @@ -224,6 +224,10 @@ enum nsim_resource_id { NSIM_RESOURCE_NEXTHOPS, }; =20 +enum nsim_port_resource_id { + NSIM_PORT_RESOURCE_TEST =3D 1, +}; + struct nsim_dev_health { struct devlink_health_reporter *empty_reporter; struct devlink_health_reporter *dummy_reporter; --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012058.outbound.protection.outlook.com [40.107.209.58]) (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 C3AAF47D932; Wed, 1 Apr 2026 18:51:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069502; cv=fail; b=TzgUbmsbwhGaOzYk4PT/gKyZuDHTty2DiC8KlB9suG8SrDXYjye8xfbK7bkjnbj8/sVaFTdamg4qP0OSgYs3lJtPB0xxNFKBXgsspBt0q0OPe987NLE6jWy62QX8B84L8+rLN5D5Ym2mFnfgRzQkEps2ay+EVu45xAtlOOYvx04= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069502; c=relaxed/simple; bh=WsVfRnsevZyeTX/B+eZW+LkTKCQspGR8OwM+N/Tkggc=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=qepbjGpcup4InPgk5UGuU/Tzv6KFM35I7Ik+3Bo7OsKXnWc38b1kGJ3fa2Lpf+M4VBCJ+b7O8DixX12HQulNaTqeT2Fw3pOAFjnZJSw+Ufm+zluup+l6Zrq/cFNJyV+JyhBuFQ08EwMPmgcbLjCzI2FjTbrpPBcen584EXukfe0= 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=KCeHyprm; arc=fail smtp.client-ip=40.107.209.58 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="KCeHyprm" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=AUnRiQ2cWGIQp0hxCQSkqGhYfkys7CdW3OnnMZJMFi8gXkfyTeNVaLxEAo8aFviN8+S3m3b5Yv67cBcIHr4mhSUTuEYlW7iEw6oaQmiR5v/Sl8S20qTjgHdxlHY2xPjjED5NJE86hFSxiL+xlojDM3M4dwgEqr8XeXgLbZk7L2filFQkmx1STs71ERv24eQmFt6ngq6aEINYC/7Q5hShwAxcxd7PNK4WZ0Ag2fse+2jQNRyY1ZLpFXkcv9rTztYsnLBWusfclQzidqac+SrleqnaKp0Ri8X4bhvosT97799fPMlKChwCE9CuLMLRBYBaZplZQnJ9IuhU/rhT7tjQjQ== 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=LCWZgKj4j+y2nm+qJu4BtYoh+ItqKFfUow5gcRMo5Qc=; b=VLRz7VRz7VisFRLfVo1+o67/Ibqhi4lvU/SQp37mTRoXGgXZz+W67Hjg12R527+3nf/m5pYf6h7sDSeS0jqcprDL7tS8bTLgk4PQ5mG4//u6vEdDWrWAAepRrg+uxAHNaeXaDnE9o2rfTuvEQ+RkEDKhZqVI9GTlSinwA7qHolfL5ubUCOhV44v6AvT7VW+p+rnfZW5jeQfI596uzJn1WhU1qlB+/tGD9AVXTX9gvU9lO+q8WwTG6cZ93Tse2xTon2UHj2tG+AAqXIyCUH6cV49dPM+3RPTA579OBTZvt64XZdY1PKEuRVYv4msRbOHmUAzYIm8fuqblhUNjT1wWjg== 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=LCWZgKj4j+y2nm+qJu4BtYoh+ItqKFfUow5gcRMo5Qc=; b=KCeHyprmUNc+lZsAdH+f72v4fw+minAq3cbMXwSdbIj1NuzV/cpIXGUZu1SM8dki6gJPcRlIDGLZvJZLZrihqOW5jEZJK0A6mo3JiwJiPVp1bI+KZ67VYag6yXug5SZlypFcKIOmCa6PFSfvQc+sQnZ7mm93Do2xhoBBSmcyUNk9y5EpYgqHq0fR00v8spgk3nVWTeYFOd9XX1rL6v7S3uuEv9tpImtXFrQiw5QESz19sZZH6J2oO8uB8hQS45531eEJ+UACVjLH06tqwLLOs/b1xVapYgb5TAnpK/dp6QUFa2RbLTHrkJFjWIJ5lgCtpEwGKYg1dNwZQ1CUemH6Zw== Received: from SJ0PR05CA0013.namprd05.prod.outlook.com (2603:10b6:a03:33b::18) by DM4PR12MB7576.namprd12.prod.outlook.com (2603:10b6:8:10c::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr 2026 18:51:27 +0000 Received: from SJ1PEPF00001CE1.namprd05.prod.outlook.com (2603:10b6:a03:33b:cafe::66) by SJ0PR05CA0013.outlook.office365.com (2603:10b6:a03:33b::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9769.15 via Frontend Transport; Wed, 1 Apr 2026 18:51:27 +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 SJ1PEPF00001CE1.mail.protection.outlook.com (10.167.242.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:51:27 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) 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.2562.20; Wed, 1 Apr 2026 11:51:06 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:51:06 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:50:57 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman , Jiri Pirko Subject: [PATCH net-next V4 05/12] devlink: Add dump support for device-level resources Date: Wed, 1 Apr 2026 21:49:40 +0300 Message-ID: <20260401184947.135205-6-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE1:EE_|DM4PR12MB7576:EE_ X-MS-Office365-Filtering-Correlation-Id: 0e5f8892-788d-4d0c-26fa-08de901fae52 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|376014|7416014|36860700016|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: S0+8wKbH2PotjuSvdSDDszU9hVWebC89ctwsLuxrHGGJdqqcBECtViTbV/x1SOiqPdtVO+ATAtKUGgl2nO+CY51VYz7GzsKFoJL/UypBoWM6kq/hccAr7eBKOsMyTtqn4992AcbCJ8l9XoSraM7dI9FZPt4PIjtM5X9TjXVN0EPwIcNBC5H7FRhhRQPyWzBUBQRyjTnpknHUJNsk+Aa+ZtN8gdx0ZQG8ALJU1UBh8WmmDzO2cczf3wWAOHW8DcgigI/TksyEG/3LYuCouwEXLCOK9HlA38CTISvJ/ugvSLcDWR+Jcqb+t0j1dQ6GzWOLpxcQH8Vw40uPzwT/QROF1O1bK+rO2+Co/7GM9ipV9aSe+WWRAVG73XVWG0Gwph92mGE/ye6xxkYckwhrONJEW5FuQPIq70GB9KdVqAYXn/Ihb4z/wJwJo6INqYwQFVqcinQ1esz7xJrbkbIFfxr7htNMQ2Q99Ng5o6rClZdqEMLbY8v0f1YvxY4780Cq9U0MQk6j1YVZ2Q2+iBl+y1OcPaJFSfBbX8CSFXBM9E1aXjjCCvN0hpMdnmcQgHdbu/Rtd5+DIUbxv98uapDDXyH8Q+ZwCZM1XvSCWaWAks9ydetI5qhLFJ5sDGAPf9TumZso5Pd1Oht0F0JeK9CoDdI0eS4VpdqwIRXTtkbrMPbsI0jDB+QyxRyLDeg4kmlHyyhDcZubEg6Yu3L5NvesclnSjDTBWjqKYyjZtZlu5UAcoBLodhHqooVnoTlVXsz1vpknEroVT0hWyqfSmRSvrooW2g== 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)(376014)(7416014)(36860700016)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mX36ouBQvqWNu6d6EA87g9rXH+ktYxqh6LN+OUaQNoD+erMsYXTJSCPBnfU8ePDxpGus14mOt5gzKakusLtwUDF7jZyX+F9oAIHni5/pMw8poMTjHUZVzeJuET7b7ZqEaYJwgjlQP+10bLzlLxlJ588nVPX62SwYnxf/nIr5b1RpS6to9jo6ltlbmXJJwcvqDXtJLPD4iEpZUlvMbsL+RGNIAZlTkWHgslGVEezMWsdfWg5H1TNRZxQKf3wePuomyaz9IYenYeVeqG8s7nD7RMOIUXvHYkU8m0cpMmv+GvfKly02bNZmr+5LcRz74NK0mjeEWdsr5RuBpzEo59PevDkNg0+pCbwsEY7usu7ZVujJvzmuYoTet7Y5MOBw5/OJKnK4FYepqZdUUfcidNlVhGBFDk5TmiUwcRcfXjN1bt/ugdGa9QNg/aTwIN+AwOv7 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:51:27.4886 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0e5f8892-788d-4d0c-26fa-08de901fae52 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: SJ1PEPF00001CE1.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB7576 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Add dumpit handler for resource-dump command to iterate over all devlink devices and show their resources. $ devlink resource show pci/0000:08:00.0: name local_max_SFs size 508 unit entry name external_max_SFs size 508 unit entry pci/0000:08:00.1: name local_max_SFs size 508 unit entry name external_max_SFs size 508 unit entry Signed-off-by: Or Har-Toov Reviewed-by: Shay Drori Reviewed-by: Moshe Shemesh Reviewed-by: Jiri Pirko Signed-off-by: Tariq Toukan --- Documentation/netlink/specs/devlink.yaml | 6 +- net/devlink/netlink_gen.c | 20 +++++- net/devlink/netlink_gen.h | 4 +- net/devlink/resource.c | 77 ++++++++++++++++++++++++ 4 files changed, 102 insertions(+), 5 deletions(-) diff --git a/Documentation/netlink/specs/devlink.yaml b/Documentation/netli= nk/specs/devlink.yaml index b495d56b9137..c423e049c7bd 100644 --- a/Documentation/netlink/specs/devlink.yaml +++ b/Documentation/netlink/specs/devlink.yaml @@ -1764,13 +1764,17 @@ operations: - bus-name - dev-name - index - reply: + reply: &resource-dump-reply value: 36 attributes: - bus-name - dev-name - index - resource-list + dump: + request: + attributes: *dev-id-attrs + reply: *resource-dump-reply =20 - name: reload diff --git a/net/devlink/netlink_gen.c b/net/devlink/netlink_gen.c index eb35e80e01d1..a5a47a4c6de8 100644 --- a/net/devlink/netlink_gen.c +++ b/net/devlink/netlink_gen.c @@ -305,7 +305,14 @@ static const struct nla_policy devlink_resource_set_nl= _policy[DEVLINK_ATTR_INDEX }; =20 /* DEVLINK_CMD_RESOURCE_DUMP - do */ -static const struct nla_policy devlink_resource_dump_nl_policy[DEVLINK_ATT= R_INDEX + 1] =3D { +static const struct nla_policy devlink_resource_dump_do_nl_policy[DEVLINK_= ATTR_INDEX + 1] =3D { + [DEVLINK_ATTR_BUS_NAME] =3D { .type =3D NLA_NUL_STRING, }, + [DEVLINK_ATTR_DEV_NAME] =3D { .type =3D NLA_NUL_STRING, }, + [DEVLINK_ATTR_INDEX] =3D NLA_POLICY_FULL_RANGE(NLA_UINT, &devlink_attr_in= dex_range), +}; + +/* DEVLINK_CMD_RESOURCE_DUMP - dump */ +static const struct nla_policy devlink_resource_dump_dump_nl_policy[DEVLIN= K_ATTR_INDEX + 1] =3D { [DEVLINK_ATTR_BUS_NAME] =3D { .type =3D NLA_NUL_STRING, }, [DEVLINK_ATTR_DEV_NAME] =3D { .type =3D NLA_NUL_STRING, }, [DEVLINK_ATTR_INDEX] =3D NLA_POLICY_FULL_RANGE(NLA_UINT, &devlink_attr_in= dex_range), @@ -680,7 +687,7 @@ static const struct nla_policy devlink_notify_filter_se= t_nl_policy[DEVLINK_ATTR_ }; =20 /* Ops table for devlink */ -const struct genl_split_ops devlink_nl_ops[74] =3D { +const struct genl_split_ops devlink_nl_ops[75] =3D { { .cmd =3D DEVLINK_CMD_GET, .validate =3D GENL_DONT_VALIDATE_STRICT, @@ -958,10 +965,17 @@ const struct genl_split_ops devlink_nl_ops[74] =3D { .pre_doit =3D devlink_nl_pre_doit, .doit =3D devlink_nl_resource_dump_doit, .post_doit =3D devlink_nl_post_doit, - .policy =3D devlink_resource_dump_nl_policy, + .policy =3D devlink_resource_dump_do_nl_policy, .maxattr =3D DEVLINK_ATTR_INDEX, .flags =3D GENL_CMD_CAP_DO, }, + { + .cmd =3D DEVLINK_CMD_RESOURCE_DUMP, + .dumpit =3D devlink_nl_resource_dump_dumpit, + .policy =3D devlink_resource_dump_dump_nl_policy, + .maxattr =3D DEVLINK_ATTR_INDEX, + .flags =3D GENL_CMD_CAP_DUMP, + }, { .cmd =3D DEVLINK_CMD_RELOAD, .validate =3D GENL_DONT_VALIDATE_STRICT, diff --git a/net/devlink/netlink_gen.h b/net/devlink/netlink_gen.h index 2817d53a0eba..d79f6a0888f6 100644 --- a/net/devlink/netlink_gen.h +++ b/net/devlink/netlink_gen.h @@ -18,7 +18,7 @@ extern const struct nla_policy devlink_dl_rate_tc_bws_nl_= policy[DEVLINK_RATE_TC_ extern const struct nla_policy devlink_dl_selftest_id_nl_policy[DEVLINK_AT= TR_SELFTEST_ID_FLASH + 1]; =20 /* Ops table for devlink */ -extern const struct genl_split_ops devlink_nl_ops[74]; +extern const struct genl_split_ops devlink_nl_ops[75]; =20 int devlink_nl_pre_doit(const struct genl_split_ops *ops, struct sk_buff *= skb, struct genl_info *info); @@ -80,6 +80,8 @@ int devlink_nl_dpipe_table_counters_set_doit(struct sk_bu= ff *skb, struct genl_info *info); int devlink_nl_resource_set_doit(struct sk_buff *skb, struct genl_info *in= fo); int devlink_nl_resource_dump_doit(struct sk_buff *skb, struct genl_info *i= nfo); +int devlink_nl_resource_dump_dumpit(struct sk_buff *skb, + struct netlink_callback *cb); int devlink_nl_reload_doit(struct sk_buff *skb, struct genl_info *info); int devlink_nl_param_get_doit(struct sk_buff *skb, struct genl_info *info); int devlink_nl_param_get_dumpit(struct sk_buff *skb, diff --git a/net/devlink/resource.c b/net/devlink/resource.c index f3014ec425c4..02fb36e25c52 100644 --- a/net/devlink/resource.c +++ b/net/devlink/resource.c @@ -223,6 +223,31 @@ static int devlink_resource_put(struct devlink *devlin= k, struct sk_buff *skb, return -EMSGSIZE; } =20 +static int devlink_resource_list_fill(struct sk_buff *skb, + struct devlink *devlink, + struct list_head *resource_list_head, + int *idx) +{ + struct devlink_resource *resource; + int i =3D 0; + int err; + + list_for_each_entry(resource, resource_list_head, list) { + if (i < *idx) { + i++; + continue; + } + err =3D devlink_resource_put(devlink, skb, resource); + if (err) { + *idx =3D i; + return err; + } + i++; + } + *idx =3D 0; + return 0; +} + static int devlink_resource_fill(struct genl_info *info, enum devlink_command cmd, int flags) { @@ -302,6 +327,58 @@ int devlink_nl_resource_dump_doit(struct sk_buff *skb,= struct genl_info *info) return devlink_resource_fill(info, DEVLINK_CMD_RESOURCE_DUMP, 0); } =20 +static int +devlink_nl_resource_dump_one(struct sk_buff *skb, struct devlink *devlink, + struct netlink_callback *cb, int flags) +{ + struct devlink_nl_dump_state *state =3D devlink_dump_state(cb); + struct nlattr *resources_attr; + int start_idx =3D state->idx; + void *hdr; + int err; + + if (list_empty(&devlink->resource_list)) + return 0; + + err =3D -EMSGSIZE; + hdr =3D genlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq, + &devlink_nl_family, flags, DEVLINK_CMD_RESOURCE_DUMP); + if (!hdr) + return err; + + if (devlink_nl_put_handle(skb, devlink)) + goto nla_put_failure; + + resources_attr =3D nla_nest_start_noflag(skb, DEVLINK_ATTR_RESOURCE_LIST); + if (!resources_attr) + goto nla_put_failure; + + err =3D devlink_resource_list_fill(skb, devlink, + &devlink->resource_list, &state->idx); + if (err) { + if (state->idx =3D=3D start_idx) + goto resource_list_cancel; + nla_nest_end(skb, resources_attr); + genlmsg_end(skb, hdr); + return err; + } + nla_nest_end(skb, resources_attr); + genlmsg_end(skb, hdr); + return 0; + +resource_list_cancel: + nla_nest_cancel(skb, resources_attr); +nla_put_failure: + genlmsg_cancel(skb, hdr); + return err; +} + +int devlink_nl_resource_dump_dumpit(struct sk_buff *skb, + struct netlink_callback *cb) +{ + return devlink_nl_dumpit(skb, cb, devlink_nl_resource_dump_one); +} + int devlink_resources_validate(struct devlink *devlink, struct devlink_resource *resource, struct genl_info *info) --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010038.outbound.protection.outlook.com [52.101.61.38]) (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 E386B47DD57; Wed, 1 Apr 2026 18:51:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.38 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069504; cv=fail; b=SpwvCSqf9tIgS716Dlhe2r3kI2NT98pYmhd/7EfFjOHpEwXo0muAt3llhnqtxAC4oiefTavQ6u6yX5JxoU7Qg277V2NxYP1aVy1QUm3Hnl02as92JOCiRcgggMEA5edstGTbymbOk69nblb8FhMLaMddzj6SXOnq7VFUWY5e8uQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069504; c=relaxed/simple; bh=RiQexCMPo+00V4cbKjzEUCVsreLQQ6CkM0W8qN5QPM0=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZRJd2Jw5+6B7g7EnYXv2Z/xQaobkmJVNhggjamp8lkUlEIMMcF2Nb0cF0wVPTt5dOoAYtW/djRfF3y0rRQWhWaOmiFtyrSL8P8K9rrq9nbGI7uzR8S94zuykGfg5V27fq16uHqPfBxFBFd4SGbJF5AhJjxxAsjk8PlFj71/2uno= 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=H1M+qAWn; arc=fail smtp.client-ip=52.101.61.38 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="H1M+qAWn" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=weUmg9FqRFp97P6NDhgbjvbH1OMpAq3z6REobHaCKKUhGsFhq1GEw4CrxMnOirzcaAZv0RS6v1lWd9GeHrZEMqMPiqVx3TMLhy/8Ymd+VEbx2FbVchF9gc5HpS9QmOtrbgdnuqRlJtQdzhL/HEMp7OJpfDY1RZW92ro/XklZzq/JLzVvZNqU6QbNN0yydN/zRLIJR3SoxMH5Qv56tf+F+7j1VRKR0Q9qM+W2emQVLczjs+HnVx7EPAjo0RP/NETBxwpSW9FT2ydh3XH+4tcyKR6eSNB6T4zDGJjKDX3cA878+Qb3W/XEYik2zYygNmnByQNij7HHfIolT/ig41UqbA== 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=heqYlVjZ3tjUMcFQM4kzd8E6+b0/nlvYevWDJyjzK78=; b=iYPaPK6jXCG0QH52C8Z7FlGCJJYpq9l+jLBkIdyfWfAuMQbldAqzvu+Y9O4w1WknxLCqbPle07jMdiwhQ/fprQ2JbJ0WK8PNGMe/HHRWsPZUstORtN8rgwz9qTDnt1eEyQMr0fPL5VVtY8nDXRq5lq5KMhA2t7Dt9nfcE+Dmx8avNpH7zP394HdWqo3Kz2F6ZKqE0LCYV7YyIAaNK3dy2O07baXvTt3v+XZdXpE/n1+OmQOAU2K49HTYk0rR59a7e9RBAMa4YQG9A8EP4t8oFTFONZp+QlMdr6Ry8OCawcdxOhJw2Dj1u2HJNMKlo/Q8LNL0v3+6FBeM5NgOQ/mr3w== 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=heqYlVjZ3tjUMcFQM4kzd8E6+b0/nlvYevWDJyjzK78=; b=H1M+qAWnB14iqli9zc6H1z0Uk4DdYRFAI1e34ueIgc6fTx9PJdfGZlls+8J2cUM6356HEE5bRS8wCShbOCbefdUqN/A7kw3zM/RyWMSmGv4IAsFJ2qa4boD4LeWGVSsBN0EMzWPj6xOSv/K+Hg/3r/FhIaX7Uas3ghouPJIuzCaRyLOqcM2AF13ir8gCTnp+NI00DyEDCdinY7JxduVDkzPkhU1l2a12LtDEAALnoxEDM0RDHGILO1COR2CuEkTo85tGF4G1jcCp0yGiKYSyUUOutTOlCghErrIrYU3ERBf0fEkLAH71Tu21iXUBNOaklobyaK7EZuQGozrMRG4BCA== Received: from BN9PR03CA0178.namprd03.prod.outlook.com (2603:10b6:408:f4::33) by MN0PR12MB6223.namprd12.prod.outlook.com (2603:10b6:208:3c1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.18; Wed, 1 Apr 2026 18:51:36 +0000 Received: from BN2PEPF000044A2.namprd02.prod.outlook.com (2603:10b6:408:f4:cafe::53) by BN9PR03CA0178.outlook.office365.com (2603:10b6:408:f4::33) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.30 via Frontend Transport; Wed, 1 Apr 2026 18:51:36 +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 BN2PEPF000044A2.mail.protection.outlook.com (10.167.243.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:51:36 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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.2562.20; Wed, 1 Apr 2026 11:51:15 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr 2026 11:51:14 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:51:06 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman Subject: [PATCH net-next V4 06/12] devlink: Include port resources in resource dump dumpit Date: Wed, 1 Apr 2026 21:49:41 +0300 Message-ID: <20260401184947.135205-7-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044A2:EE_|MN0PR12MB6223:EE_ X-MS-Office365-Filtering-Correlation-Id: e770d823-ef9b-4ab4-dc78-08de901fb372 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|36860700016|82310400026|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: bH9Iif1k2Zy2ld2ujYe9wAxNzp4uv20wyGoh+TBI/YH5pQZPERyK0gfk9Mclm4yljLnoEn94VF0nCgLNy34a8MFObfRTl4J0A85eykolwFt1Ys0+mMjDWwVex7R9ESTFEEv0dZ79H/F/GqSfLLm7OLfYwbhzyQiX+R/Ss0CEMGIPc82wHXa4woHmxCu8JoYEGY1AdlDRoRtjmsCNddQpFJuLrhUgUQnvMjBv3sGtNcsn45ePXiF63VYNVs84Uw9LvDuWFaoHEQVykFhpjq7cKC1LRXgoQg8oNSXOSmRWWtIEjDp5FZbPTmPWKIlCEsBc71V2wUxoZZgHmo9cm3vnBQbG5jnOpOtpOfHBLRRWe5vLm436bA25mIw4D9WMeL8JUVKZ1rYRma8qW0J62CJz5Afj/dIsew2Q2++MbNoS7y9eiCBZfvBdDt00yhtZ8Wn5Zhi9DZGe3vXQR2doMMffKxF/cKaM/czZQqPQm7gxd5+CNiiRqAhMi8iwGs4Ga+FTkcmNyj1b26sSJx4CH+1Fz/5MaG3Q24zjOEEjbZeVOrMxoMOjyKtGvsGt9/gOks0CQmu5FyjR1av5/Yn3/f4Or68uooHcZPW3zWGCby3QA88nunoQX5b4ff5Jq+yucwOTSscKQUZeKF0mTb9+foHrErplhVwa6wZHvTgGNuRG8NlEp4877Ik9XGFCqXz+AmMrkhlfnEsdBEn9rD9szoq3UkEi28A4uoBIq/MzOPL1khneQJGm1eJd9lgqVbSBUHp+GmiwvaIpcazC0dA45J2giw== 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)(36860700016)(82310400026)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: YkFAT37oN7nAlHZDR0d2CewDvCZUK/0MY4xDktOJNtWrjwQtM8a8W5/GZcu5G3kuCat7yRgpR06rsYvii3+RWKVpnKVDckc35lP0SgqshZtHat1nNzb8cO+R/6Sj51qV4eLa+PPjYC6Rs+N9fd4HpU5IFP00QBzbZDGqloXI0w2fV/cQoLAX4MVB8u7h4tHEBep/2Q3aOEXSGQk8KRIjtDN4X3pWInfC1MtcoG55fKCK37WdT55sf9VP1vCVLBrZ2VqdDAekl5TPW84PYLX96/W16D+0GpEbFJXSJiYlooDAgZ4hziU0xjMNoHQ807ujxXIyESiJlfb5RSbHXfQqEcgTnzd/obRHk9tJQAYF+6hRG2O7G8OEpWO9gIPHD2PoNkUhY0noLCEPSLPW983n9tAsXFwqGN530hgKo5f4hqwH0k+DOhOw0uRu4PfNst6w X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:51:36.0260 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e770d823-ef9b-4ab4-dc78-08de901fb372 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: BN2PEPF000044A2.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB6223 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Allow querying devlink resources per-port via the resource-dump dumpit handler. Both device-level and all ports resources are included in the reply. For example: $ devlink resource show pci/0000:03:00.0: name local_max_SFs size 508 unit entry name external_max_SFs size 508 unit entry pci/0000:03:00.0/196608: name max_SFs size 20 unit entry pci/0000:03:00.1: name local_max_SFs size 508 unit entry name external_max_SFs size 508 unit entry pci/0000:03:00.1/262144: name max_SFs size 20 unit entry Signed-off-by: Or Har-Toov Reviewed-by: Moshe Shemesh Signed-off-by: Tariq Toukan --- net/devlink/devl_internal.h | 4 +++ net/devlink/resource.c | 53 +++++++++++++++++++++++++++++++------ 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/net/devlink/devl_internal.h b/net/devlink/devl_internal.h index 7dfb7cdd2d23..000b8d271b90 100644 --- a/net/devlink/devl_internal.h +++ b/net/devlink/devl_internal.h @@ -164,6 +164,10 @@ struct devlink_nl_dump_state { struct { u64 dump_ts; }; + /* DEVLINK_CMD_RESOURCE_DUMP */ + struct { + unsigned long port_number; + }; }; }; =20 diff --git a/net/devlink/resource.c b/net/devlink/resource.c index 02fb36e25c52..48f195063551 100644 --- a/net/devlink/resource.c +++ b/net/devlink/resource.c @@ -328,16 +328,20 @@ int devlink_nl_resource_dump_doit(struct sk_buff *skb= , struct genl_info *info) } =20 static int -devlink_nl_resource_dump_one(struct sk_buff *skb, struct devlink *devlink, - struct netlink_callback *cb, int flags) +devlink_resource_dump_fill_one(struct sk_buff *skb, struct devlink *devlin= k, + struct devlink_port *devlink_port, + struct netlink_callback *cb, int flags, int *idx) { - struct devlink_nl_dump_state *state =3D devlink_dump_state(cb); + struct list_head *resource_list; struct nlattr *resources_attr; - int start_idx =3D state->idx; + int start_idx =3D *idx; void *hdr; int err; =20 - if (list_empty(&devlink->resource_list)) + resource_list =3D devlink_port ? + &devlink_port->resource_list : &devlink->resource_list; + + if (list_empty(resource_list)) return 0; =20 err =3D -EMSGSIZE; @@ -348,15 +352,17 @@ devlink_nl_resource_dump_one(struct sk_buff *skb, str= uct devlink *devlink, =20 if (devlink_nl_put_handle(skb, devlink)) goto nla_put_failure; + if (devlink_port && + nla_put_u32(skb, DEVLINK_ATTR_PORT_INDEX, devlink_port->index)) + goto nla_put_failure; =20 resources_attr =3D nla_nest_start_noflag(skb, DEVLINK_ATTR_RESOURCE_LIST); if (!resources_attr) goto nla_put_failure; =20 - err =3D devlink_resource_list_fill(skb, devlink, - &devlink->resource_list, &state->idx); + err =3D devlink_resource_list_fill(skb, devlink, resource_list, idx); if (err) { - if (state->idx =3D=3D start_idx) + if (*idx =3D=3D start_idx) goto resource_list_cancel; nla_nest_end(skb, resources_attr); genlmsg_end(skb, hdr); @@ -373,6 +379,37 @@ devlink_nl_resource_dump_one(struct sk_buff *skb, stru= ct devlink *devlink, return err; } =20 +static int +devlink_nl_resource_dump_one(struct sk_buff *skb, struct devlink *devlink, + struct netlink_callback *cb, int flags) +{ + struct devlink_nl_dump_state *state =3D devlink_dump_state(cb); + struct devlink_port *devlink_port; + unsigned long port_idx; + int err; + + if (!state->port_number) { + err =3D devlink_resource_dump_fill_one(skb, devlink, NULL, + cb, flags, &state->idx); + if (err) + return err; + state->idx =3D 0; + } + + xa_for_each_start(&devlink->ports, port_idx, devlink_port, + state->port_number ? state->port_number - 1 : 0) { + err =3D devlink_resource_dump_fill_one(skb, devlink, devlink_port, + cb, flags, &state->idx); + if (err) { + state->port_number =3D port_idx + 1; + return err; + } + state->idx =3D 0; + } + state->port_number =3D 0; + return 0; +} + int devlink_nl_resource_dump_dumpit(struct sk_buff *skb, struct netlink_callback *cb) { --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from CY7PR03CU001.outbound.protection.outlook.com (mail-westcentralusazon11010064.outbound.protection.outlook.com [40.93.198.64]) (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 0433F3F20ED; Wed, 1 Apr 2026 18:51:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.93.198.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069515; cv=fail; b=nTkTF6t2udpehgRXjQuGUCqy0NHna88FKduklVCOMzWcNRHReqKI9pL49976IQOMUVV+ZLnFvrGfx9xH+01XiXkTTzHWJBfHWkYE6Zt/SoZ+KTMsDNPYqNt6tPGkI7U+sBVeVNJWJa5+BeH3dd56KREzv0eup4kY5DwxePObC0w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069515; c=relaxed/simple; bh=DckUnnbCleomrizKlwrKycQ9ggX75YComkXbesnh8wA=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hdjolno6ekHLA/25CSCdsqLpm0oKi5iJSkU5hcr/gg2e74nx0wVH08a6Kyq8FIThEzE6oqhWK7h8w5vsQN6tBaXBdj7j3QEyTX0grp9D5H1WEQ/vf+a9ZZCa0Xb5kuCXdjCaNPeImB9CXu5OA2BlracVIaU+IPAoNBg7GMyeRdY= 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=FYe2DFVK; arc=fail smtp.client-ip=40.93.198.64 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="FYe2DFVK" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=beJavG3e1hJ3QAhaPgCrpUAX9rHW72hVaYSX2VXCwtJ2AXCW2oyhPCIVN5L+ZojkvECtGriFlccj9nFuyKnMM9PL6pWIjC8Tv8I8yUNJSBRXJNouJItUF2gCLh23ThR8Hb32A4cq02Dwjh2785WT/YfboJ9MftupkjdXxuDh+SEPCP/d/ZpEjrx3OR3pHxK2OWh+835+IEGBYfaJ3EjOt3AY2iJ0RMZN9Ci4sgesem2F+peegaTePOg3Ml0fVB2oAA1MqsWKjdQMO4QxhKb75tlGQ7S55fkyt4UzhwQzkmW47ZpeaGruhbFz66Nxb36fbWAsywPdxdUHb0jxnQixaQ== 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=tvlYivcBtfRlOHFQzTpB84NQMC2Ek+XeiXd1NRUX5AI=; b=Li1BmWnyXbmnFkdof0pDuNT8IurU4a/Vko3jgCICbJnjxfPJEWm5AiMCSiAZuifS7JJ0VQ2I1MTpoM3dpqeS8isxg4yFo3erz7Wp29D+RFwEwc/smxVPkzyX3jrvUx9gEyqsxHunA1sn+7uQmxacK+E629taMtjNG9o7tItfI0L9SIhYPzbRrOG7+7XThGiGAgCuR3JdKOcLUd3KrEx+QJZgQ3wr0y0inSx/SzNedur/xis7ri+S6CrXpCTfWqRrj6SZvYMkxM8aV7TuvAkVQBcBU8EEbrLLRIljRFsm6+9OBbUgqItY3p8WI2QGa8gk6QlTYUIKADMjg6QNp+gHfg== 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=tvlYivcBtfRlOHFQzTpB84NQMC2Ek+XeiXd1NRUX5AI=; b=FYe2DFVKT8ezFWRWwybd8Dw76Q0KqSlpVl3BdjAActfFTA/1G46mEUrbctEj7Sah+lkXLey0zzB4n35AoCOCIfsD17FU2FBgeQuYyYzH11dkbfVOzBVCbqJigdccEVokCEjeYROcMz5l0GIhbLPRZ4s7KX4x3fBiV/n/wyhmonWYoKyBuzU4hvu4w1f+LXsycYmYp0TvhpKRC8Hmu25ciMH0DCn9LR/xAtyAipQ0azL9sD4ILMpg0XUKc/WGTWQGHNn02BrI3b4aPbQErfVLv6IIxwRRFsl+cr6f/+Tn1uCKmULezxinsYwEQHBt5KZYSedfII+Np7N8cmWxRC/vxA== Received: from MW4PR03CA0068.namprd03.prod.outlook.com (2603:10b6:303:b6::13) by IA0PR12MB7531.namprd12.prod.outlook.com (2603:10b6:208:43f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.18; Wed, 1 Apr 2026 18:51:45 +0000 Received: from CO1PEPF00012E63.namprd05.prod.outlook.com (2603:10b6:303:b6:cafe::9c) by MW4PR03CA0068.outlook.office365.com (2603:10b6:303:b6::13) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.30 via Frontend Transport; Wed, 1 Apr 2026 18:51:45 +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 CO1PEPF00012E63.mail.protection.outlook.com (10.167.249.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:51:45 +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.2562.20; Wed, 1 Apr 2026 11:51:24 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:51:23 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:51:15 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman Subject: [PATCH net-next V4 07/12] devlink: Add port-specific option to resource dump doit Date: Wed, 1 Apr 2026 21:49:42 +0300 Message-ID: <20260401184947.135205-8-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF00012E63:EE_|IA0PR12MB7531:EE_ X-MS-Office365-Filtering-Correlation-Id: 5ea95cb8-e967-40e1-b3fe-08de901fb8e6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|36860700016|376014|82310400026|56012099003|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: yaxZLp6IezmLqHYKFN4ZrrPw8k1oVIQx7JIIhA6zeWisXxvDo3BNvzJpcWutZx7UgmbbvasE9Rdwq2RhcgKYLV9I+631u3EyLtMEOZdiblDPTwau7CpMZntVgJltbSAFxAICr0DYCElUEIc6gWJBdXddO2BOJl0VT5zJT/+uJbTRgpzfFSYzxEno/L4rl5/B7/ArDn8t6oJSvKCr5huFS/bHmnMNCfDcPHWZSx4PQZ+qJmr6xdSGns7iB9881bHmf7ogW/Kt5epuxXfkP1hFqnhPSMu/F/qymTlG3OOYepm1u/ULWQF8IgR9MD61QEpShEL1sF/oU1Smv+8AUr+aOxk04hkGLQ9BRs8roRDQcp04c5MFuAjlltYF8I2LNAdNxi7yIg62lzdC2lqjyczhw+PolP2QpmJajoR4bym6q4qbYq57rMMAvvIKn8L3pPE3OCxjZ3Cc19AmipWLUgcp1ub2Oxyh4xpR0FxG9lteWrffHhHdiZQ30wseVLDcnXp3QqdtvSa1yyR1UQC69gyGwTwkto602Dc5t8hxvr28zDtbZ2+Kj7FPijIjk3O0DqypAND5yDlJ67b1Tk+MpMFI0ecqEqb0VQinO48MnaaP6Sy3dmxMqsuutuNt5ua8uoaDbaGEqNxxFOMpzil5G3cpE7LcwMRK/QIHqFgIPyfuZcA6yWNxV39iT5ac7Z/nJCTplu1qbvulYMkbh+VxiHCnKlUHLw20+QQrH5K4dJRsjPVsoN0rZIoFlwpX2KLoiGMAfjfQIEaCMkcPKh0raz5ocQ== 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)(1800799024)(7416014)(36860700016)(376014)(82310400026)(56012099003)(22082099003)(18002099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PkI2bGkVP9mmhidmlO0JTCUt/7dAcxMg0Es6vL2i2od7z2dv52MT2XFT1pldI4bb1lKZHvsuIKYHoprejSUIFLMv2vEe67vYGF0Cr/gJDHHcF4NaTxaftQoCPoqI0g9QXkYGAYdNbHMAFpDMz7kjD/RjvEkvwSxEamIIrkave6F1LHbifAd0xzUjOUvTyWapQnfi4/ErxHJejGKZmVt3TP0kNpYSi0jBRWB8+j91NrHp75JK2zSQz5GlHVABxiZBwjMlJF6rRHNDj8RajAB/vDQuqoQdDv65cKH2w7VgfL5JsYbIDWRlNfNDHKE3tLxscLXc2/V6aIOmuJYRngmS3IndvnsTAPsLeJBP7hjqYIBJXvC/+L7PmXhAxdATqYMWddFnzhd4KFKLyz9X4sxH2i31fwON1OtovjZtrsFKN/6CuxTt3RHtkXnBqHNFNATA X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:51:45.2716 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 5ea95cb8-e967-40e1-b3fe-08de901fb8e6 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: CO1PEPF00012E63.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PR12MB7531 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Allow querying devlink resources per-port via the resource-dump doit handler. When a port-index attribute is provided, only that port's resources are returned. When no port-index is given, only device-level resources are returned, preserving backward compatibility. Signed-off-by: Or Har-Toov Reviewed-by: Moshe Shemesh Signed-off-by: Tariq Toukan --- Documentation/netlink/specs/devlink.yaml | 4 +++- net/devlink/netlink_gen.c | 3 ++- net/devlink/netlink_gen.h | 4 ++-- net/devlink/resource.c | 20 +++++++++++++++++--- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/Documentation/netlink/specs/devlink.yaml b/Documentation/netli= nk/specs/devlink.yaml index c423e049c7bd..34aa81ba689e 100644 --- a/Documentation/netlink/specs/devlink.yaml +++ b/Documentation/netlink/specs/devlink.yaml @@ -1757,19 +1757,21 @@ operations: attribute-set: devlink dont-validate: [strict] do: - pre: devlink-nl-pre-doit + pre: devlink-nl-pre-doit-port-optional post: devlink-nl-post-doit request: attributes: - bus-name - dev-name - index + - port-index reply: &resource-dump-reply value: 36 attributes: - bus-name - dev-name - index + - port-index - resource-list dump: request: diff --git a/net/devlink/netlink_gen.c b/net/devlink/netlink_gen.c index a5a47a4c6de8..9cc372d9ee41 100644 --- a/net/devlink/netlink_gen.c +++ b/net/devlink/netlink_gen.c @@ -309,6 +309,7 @@ static const struct nla_policy devlink_resource_dump_do= _nl_policy[DEVLINK_ATTR_I [DEVLINK_ATTR_BUS_NAME] =3D { .type =3D NLA_NUL_STRING, }, [DEVLINK_ATTR_DEV_NAME] =3D { .type =3D NLA_NUL_STRING, }, [DEVLINK_ATTR_INDEX] =3D NLA_POLICY_FULL_RANGE(NLA_UINT, &devlink_attr_in= dex_range), + [DEVLINK_ATTR_PORT_INDEX] =3D { .type =3D NLA_U32, }, }; =20 /* DEVLINK_CMD_RESOURCE_DUMP - dump */ @@ -962,7 +963,7 @@ const struct genl_split_ops devlink_nl_ops[75] =3D { { .cmd =3D DEVLINK_CMD_RESOURCE_DUMP, .validate =3D GENL_DONT_VALIDATE_STRICT, - .pre_doit =3D devlink_nl_pre_doit, + .pre_doit =3D devlink_nl_pre_doit_port_optional, .doit =3D devlink_nl_resource_dump_doit, .post_doit =3D devlink_nl_post_doit, .policy =3D devlink_resource_dump_do_nl_policy, diff --git a/net/devlink/netlink_gen.h b/net/devlink/netlink_gen.h index d79f6a0888f6..20034b0929a8 100644 --- a/net/devlink/netlink_gen.h +++ b/net/devlink/netlink_gen.h @@ -24,11 +24,11 @@ int devlink_nl_pre_doit(const struct genl_split_ops *op= s, struct sk_buff *skb, struct genl_info *info); int devlink_nl_pre_doit_port(const struct genl_split_ops *ops, struct sk_buff *skb, struct genl_info *info); -int devlink_nl_pre_doit_dev_lock(const struct genl_split_ops *ops, - struct sk_buff *skb, struct genl_info *info); int devlink_nl_pre_doit_port_optional(const struct genl_split_ops *ops, struct sk_buff *skb, struct genl_info *info); +int devlink_nl_pre_doit_dev_lock(const struct genl_split_ops *ops, + struct sk_buff *skb, struct genl_info *info); void devlink_nl_post_doit(const struct genl_split_ops *ops, struct sk_buff *skb, struct genl_info *info); diff --git a/net/devlink/resource.c b/net/devlink/resource.c index 48f195063551..0f1d90bc4b09 100644 --- a/net/devlink/resource.c +++ b/net/devlink/resource.c @@ -251,8 +251,10 @@ static int devlink_resource_list_fill(struct sk_buff *= skb, static int devlink_resource_fill(struct genl_info *info, enum devlink_command cmd, int flags) { + struct devlink_port *devlink_port =3D info->user_ptr[1]; struct devlink *devlink =3D info->user_ptr[0]; struct devlink_resource *resource; + struct list_head *resource_list; struct nlattr *resources_attr; struct sk_buff *skb =3D NULL; struct nlmsghdr *nlh; @@ -261,7 +263,9 @@ static int devlink_resource_fill(struct genl_info *info, int i; int err; =20 - resource =3D list_first_entry(&devlink->resource_list, + resource_list =3D devlink_port ? + &devlink_port->resource_list : &devlink->resource_list; + resource =3D list_first_entry(resource_list, struct devlink_resource, list); start_again: err =3D devlink_nl_msg_reply_and_new(&skb, info); @@ -277,6 +281,9 @@ static int devlink_resource_fill(struct genl_info *info, =20 if (devlink_nl_put_handle(skb, devlink)) goto nla_put_failure; + if (devlink_port && + nla_put_u32(skb, DEVLINK_ATTR_PORT_INDEX, devlink_port->index)) + goto nla_put_failure; =20 resources_attr =3D nla_nest_start_noflag(skb, DEVLINK_ATTR_RESOURCE_LIST); @@ -285,7 +292,7 @@ static int devlink_resource_fill(struct genl_info *info, =20 incomplete =3D false; i =3D 0; - list_for_each_entry_from(resource, &devlink->resource_list, list) { + list_for_each_entry_from(resource, resource_list, list) { err =3D devlink_resource_put(devlink, skb, resource); if (err) { if (!i) @@ -319,9 +326,16 @@ static int devlink_resource_fill(struct genl_info *inf= o, =20 int devlink_nl_resource_dump_doit(struct sk_buff *skb, struct genl_info *i= nfo) { + struct devlink_port *devlink_port =3D info->user_ptr[1]; struct devlink *devlink =3D info->user_ptr[0]; + struct list_head *resource_list; + + if (info->attrs[DEVLINK_ATTR_PORT_INDEX] && !devlink_port) + return -ENODEV; =20 - if (list_empty(&devlink->resource_list)) + resource_list =3D devlink_port ? + &devlink_port->resource_list : &devlink->resource_list; + if (list_empty(resource_list)) return -EOPNOTSUPP; =20 return devlink_resource_fill(info, DEVLINK_CMD_RESOURCE_DUMP, 0); --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from PH8PR06CU001.outbound.protection.outlook.com (mail-westus3azon11012058.outbound.protection.outlook.com [40.107.209.58]) (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 C920347DD7A; Wed, 1 Apr 2026 18:51:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.209.58 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069520; cv=fail; b=OdD4EQ7RAU+d3Bt62iJ10OUFi94TxdUTYUs6jrA8s1+ssOragzCOTTkzARdvVo49w37AlmJKE0NTGS2vv/gVYuWJEr++UbecJUCcig0XJKdRTPERE81VxK8IAfV/RHW3totuw5nh7tnz/3gm8bi+SZOXmE4mlvOTrycp2ZGD0RQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069520; c=relaxed/simple; bh=1wk6AlUem+41e379GJdzzAitgdQGaEfZLKHC68xwGk4=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=plLn6N6H23aQc7+nqCdma+G4qYXVFY7wNEDUjsL6jmjMOtm6yURGz7nQ38ceGGoCPDT4if1WgY5pLcUIHjjZpMcaMUgmZTAqZ45apV8hqV4ZDJn/aYK8hrJAg1uhiozRx2IfaTAAGLFdyuNP5TEiZqy+94r57UsriFacG7SJgA8= 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=GWp0rcEG; arc=fail smtp.client-ip=40.107.209.58 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="GWp0rcEG" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nmpVyUYCjX5HmpuOBSu7vvuaYnGL9seixYst5ta6d9Nlzy+8M7JT6purxsLUGnXv/h1IFhwM5+/5BH59VOxxIiNP2tVY/MEPPThSmv5R7RnhfH1winjD6Coei4C/TS+WXCT2HQBzG9TvsA8Ccy6czbRTJmAM9mUqfW5W8er3xHlT1esyxcD86m5s6Z6dJ9x4DlG5cXW3n5ZrxQ+/5gnoYL9XJ1RteqItcQMhNNvm3X9LWUwJtG0Gs+WYF+o1o5UTDZCKbMFB45GLk8dAl7IcwbasNq9Klj8x0fK2LZZjRYzPY6onP28XaOl3hzLEAUIoWDAsXjPbGBiUQrksZ8g/QQ== 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=ffr1wsQ5FqD3H8gh7GFFpffBcqh8z2EhjNy7f2ZzLB8=; b=wX3MjuuTcxSEsLU1/ZnfyqfuRK3B1p714sIyy9+n08l0hZoCrauVJMC2iySOCRltMHm5IbbbiXYq1ptfD21TbXPhBKm2Cyyw53y7mDdOIVATbmPlU65eJO5NlCkioDURMAeZxeKjCmdAu6i66S9elXO9oc1hqocfNfW8WzVsxcjXJns3nGFbhpNxKPUN6FYu/NHWJn4d2IfliWSfd8RJjKaV0qHtvLnznjyrf2ufAfuwcukguuUJK7gHv/+qYwscfVsqpicpihbIVNe6K3MNi7JWCeJkHgvgF6qiIE1JNOAVZ1M6Er1me/e9C786FIaGbwbK96awlVcVuQC4LEGv/w== 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=ffr1wsQ5FqD3H8gh7GFFpffBcqh8z2EhjNy7f2ZzLB8=; b=GWp0rcEGx6LzyIT7ymROlReKIS2AU9Ctv6uu2HoPxoGgrAHWXfbIzIvXQgX/5rE+iQpIi9+Jw/PR3nC0ah9Kf+3jRmsRM9zQVOyeweaDt2ITJXKYAF9V1BZkGX8Boi0O/XuoXzYhTaEf4XtlAZp5iT/DJMlz1snkgBPsww1CJkFCahvs5NBisHE8/U+YYmU+7BRDRPyTVs7MeJhjT/N7p9EWZM+10PvJ//wr31+Ve6YPKLPN9udHMQzVRgjKSlaBrC913REmukQqEiZibKhRjW5YmwvTCPfi2bFUuG8j9SPGzxZR4OaZHTw0HQ/JeMtr0kmgpa9NGsL4j0Ng4osXMg== Received: from SJ0PR03CA0347.namprd03.prod.outlook.com (2603:10b6:a03:39c::22) by PH7PR12MB8105.namprd12.prod.outlook.com (2603:10b6:510:2b7::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr 2026 18:51:52 +0000 Received: from SJ1PEPF00001CDF.namprd05.prod.outlook.com (2603:10b6:a03:39c:cafe::3) by SJ0PR03CA0347.outlook.office365.com (2603:10b6:a03:39c::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.29 via Frontend Transport; Wed, 1 Apr 2026 18:51:51 +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 SJ1PEPF00001CDF.mail.protection.outlook.com (10.167.242.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:51:51 +0000 Received: from rnnvmail204.nvidia.com (10.129.68.6) 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.2562.20; Wed, 1 Apr 2026 11:51:33 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) by rnnvmail204.nvidia.com (10.129.68.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.20; Wed, 1 Apr 2026 11:51:32 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:51:24 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman Subject: [PATCH net-next V4 08/12] selftest: netdevsim: Add devlink port resource doit test Date: Wed, 1 Apr 2026 21:49:43 +0300 Message-ID: <20260401184947.135205-9-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CDF:EE_|PH7PR12MB8105:EE_ X-MS-Office365-Filtering-Correlation-Id: 3851aacf-7d33-42dc-3286-08de901fbcc9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700016|7416014|376014|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: d2QP54WinzBrHhvtk8ARUqW61ACsQ02Fo7+ARSSfu6HajovDdQ1SwAzu6s+ZBmLRuFYZrUV3KWHrAe7Sma/twl3wbFKAxP8DjJICfgR/dnCljJ7GGM0HRwSUq3oSfLEI9Kxj0bSZnVdJCkeeBLjysK9mBvTu6WvBJgqrV7lLaiQbJ6w+Wlvbe4aMQ88wl45+hbpeVC+DsMRHu1jE2J8VjYsuG2EB2y+OpoUSoXxh4st3h+po+/UVtzsg7wlINe7DWxqcLWlLbh+D7sfbTzVtO7wLs3Lw7le3JA96zDcBC37XARrLvl5jwl296tO07DFMthPgzjZ9GTM94R5kLOG5N09Imlq9cPh0QIStzSsj5Tcp1ZdJ1MW8RF2I4ip0TH/nchwoyuLZmCUDCRnzzu2gWTyXVQ48rLxnuSSRRi1HhlM4ZULuJAKeADEcinGbNT9LMh4v1NpBxUZ1xWkxbT/xZGug31KX+bHU/G1pRJJHIgnj40wumPnAOG9oSpsgRKqZ8sKsVqAo6blSdxih0lPdhdhytcVWEPLbrxmpM3nONETRyglxhtlbNPKtnYeYGHv3eozddKJTPBLfsYkhrIoVMxSfYfiQUppxnfIPbuNvdIfTpEGKeF+smxLBgM7fHiROmJ1FkiGiCPjhvVvvIYZh9ZkhxEMxKrwmVMLCj3KR9W43fweqhemK8VGSqWluxnhTvJQ7kuK3AjgApAeS9UepXPmMDhcEBh1Rkc/OMtQn140D0eXX87pLZsujyI8+8eA8L80hzeM3EFOl5frC31ZLhw== 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)(36860700016)(7416014)(376014)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: iQKU5GIz3KM8xOSRRaewzY0a1WK/UMiAxHZo38WL1u6UHdqOiBq3CSB5So7+9QPAJhVyKxQfPCc0YHoJP7nQLkRKwttQiIIj3l3Rz62A2wKXwY9plv25jJpgQ7LsWVBWR7r5Ptsf853tuT1L9J2pbtU0gvW/ayctcHziy5hfTus9zNZA6SHi3ixnDWRYWmAawBn25aDKugWKegGMGizFBqynh2zCIS00of6EMxwtXhF15yn38XwGkQGiLrFeN4r7OxSCS7PeRLJ7EUcA0cKcl4bYkRyhLmoAVDt6QTNt9BflKa81OzRFAmlG2YPO+jVTWncjR/GheQOEEZCq8Dt/TYnsfIE7807wITYsJrQgxoUwL9ZAdIPN1W+xKN3IY8xsG9ssfyxlYEvsjaJyU8AfbEvCz87FRfUWH+C6hSkM6dOihzV/Pg4h10JAh/8SahSm X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:51:51.7569 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3851aacf-7d33-42dc-3286-08de901fbcc9 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: SJ1PEPF00001CDF.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB8105 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Tests that querying a specific port handle returns the expected resource name and size. Signed-off-by: Or Har-Toov Reviewed-by: Moshe Shemesh Signed-off-by: Tariq Toukan --- .../drivers/net/netdevsim/devlink.sh | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh b/too= ls/testing/selftests/drivers/net/netdevsim/devlink.sh index 1b529ccaf050..2e63d02fae4b 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh @@ -5,7 +5,8 @@ lib_dir=3D$(dirname $0)/../../../net/forwarding =20 ALL_TESTS=3D"fw_flash_test params_test \ params_default_test regions_test reload_test \ - netns_reload_test resource_test dev_info_test \ + netns_reload_test resource_test \ + port_resource_doit_test dev_info_test \ empty_reporter_test dummy_reporter_test rate_test" NUM_NETIFS=3D0 source $lib_dir/lib.sh @@ -768,6 +769,32 @@ rate_node_del() devlink port function rate del $handle } =20 +port_resource_doit_test() +{ + RET=3D0 + + local port_handle=3D"${DL_HANDLE}/0" + local name + local size + + if ! devlink resource help 2>&1 | grep -q "PORT_INDEX"; then + echo "SKIP: devlink resource show not supported for port selector" + return + fi + + name=3D$(cmd_jq "devlink resource show $port_handle -j" \ + '.[][][].name') + [ "$name" =3D=3D "test_resource" ] + check_err $? "wrong port resource name (got $name)" + + size=3D$(cmd_jq "devlink resource show $port_handle -j" \ + '.[][][].size') + [ "$size" =3D=3D "20" ] + check_err $? "wrong port resource size (got $size)" + + log_test "port resource doit test" +} + rate_test() { RET=3D0 --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from DM1PR04CU001.outbound.protection.outlook.com (mail-centralusazon11010008.outbound.protection.outlook.com [52.101.61.8]) (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 7943847DD53; Wed, 1 Apr 2026 18:52:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.61.8 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069534; cv=fail; b=WWHf3hZfHD2mcvF8jhZ7bPgxYPOSl8ynTkOQ/XuVvIsyXK6Cj21AM690/gNSA4EDqi2JoI5KVdTyDSbjtAin/ztzU6yMggM84oDhe0fjWdxZhtmpcSNaFrOKLUuV5Cgp+qGZuivndRMR9Gor0fKfiWejXrm+1ucnOJYbUlriFHA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069534; c=relaxed/simple; bh=NbXsMUvWQMqPAxAGJntF7oc52EiiDoxMJRzBnkoro78=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fSkp4hxR0ktTWnaC0r2egUofnFQBzCRM+R4VhIljUquautr6N/FlJTAhsyUSJbDkB5Jcwr8uUKlcK0gZ5QkHAHF9HgR8C4Ve5UcqE2hTCmOawpInL3ZrP6Tejuwu9Lsf3wvwjmSQv9AAjlVyS4+RbYBEwREov3it4SLjar2euuw= 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=bevWfGrZ; arc=fail smtp.client-ip=52.101.61.8 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="bevWfGrZ" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iLAQNLExQLrh9wzXmQ/YK5HtC7bCN9Ia7u3jPWSaQBuc0aKd3lqgdndANYjScf95hj8WFX2KCFW5JsZFFIvelDya0KXxqAIIlkNLBi+myipeivnCPggpu6gAm0Uj3XYa/ZBCb42/p3PUEkBny1SSbbKmjttY4u606kB/DKxrBtTlkxwWotvEtcDa8JdjRZTdlefFGfIOnaBaDrrAwSZ/w/xw0MoCAvTNqZjinLIpKzqfP3CazexDWAEVb4Hc3Nj30Wm6CyXuHzV/dS/AZ19bvCrYNP78p2QISCLJp9eRs7QwnjbvZ5kn97oc+LGChshqZkyrD52+Uiuj7x1kDFaEAA== 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=zBMzI8zfOOVQ1PucAWar0F5NDjlTcnjInWTwF8+xY5w=; b=iOL3KrWpN/McSSAxpoud9RTMDbFMoUV9rkD/UfgEM/+8TdrZDvWDW8Z4/POhgWkEp//3TKKmdBV7XzX7otQcQvqaaQ+nV4Rtf63Yb/RPhYouOsb5U0ipHXxYMCMMAZhOfrMWbwPjuRk7TupgzPuO5+HXOhyNF4H5GVT/i85UtED2CfuVcqmi7FoAuzf8fB5OZWPyI9j2sqMD27NRZoe5XuTNRILPVF2e6GJlYxOE0+HsuWWcuyEooQL5zW60Ox7kmBdwIjk7mag310j/5tuLtLze1Zg4UM+xNKn3NiasoDhDwVGTsLUYhPgIhtrNVRFyl6sPm4cQHJ9zpFzxP7h3PA== 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=zBMzI8zfOOVQ1PucAWar0F5NDjlTcnjInWTwF8+xY5w=; b=bevWfGrZO8Nll8Jhl/mIvllK+yzQQia5/CapbI0f0Jx/atDMXRXHvbiwPRHi0Dz3frTl9BhovHcXZHnbYBoyk11XJNlrdxx6gEgS/niGMH/lJpym5tFRWuVh7ebMF1o5+RKLrFSXKn/tcC3E2YnJjuqrmT6hedujorgmAuAXmf8YfWOnAOsj/5Tc3HB6rqN2zjFfbvdzSsRYgK32NAt41TSb61ra5bZ8Kb+NUoqbhk7TwJrfQEXO2tKM0THFoR5x5FzsVf4JaC0pWlE3wKYS9T1NhxBjXbaS7qMwLAu0Gs4TABEH+aopM95y86+ac++PQBoHqVTOTsYaMTznnHSBJA== Received: from BN0PR03CA0047.namprd03.prod.outlook.com (2603:10b6:408:e7::22) by IA1PR12MB6114.namprd12.prod.outlook.com (2603:10b6:208:3ea::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr 2026 18:52:02 +0000 Received: from BN2PEPF000044A4.namprd02.prod.outlook.com (2603:10b6:408:e7:cafe::8) by BN0PR03CA0047.outlook.office365.com (2603:10b6:408:e7::22) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.31 via Frontend Transport; Wed, 1 Apr 2026 18:52: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 BN2PEPF000044A4.mail.protection.outlook.com (10.167.243.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:52:02 +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.2562.20; Wed, 1 Apr 2026 11:51:42 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:51:41 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:51:33 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman , Jiri Pirko Subject: [PATCH net-next V4 09/12] devlink: Document port-level resources and full dump Date: Wed, 1 Apr 2026 21:49:44 +0300 Message-ID: <20260401184947.135205-10-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF000044A4:EE_|IA1PR12MB6114:EE_ X-MS-Office365-Filtering-Correlation-Id: d4b5e27e-d5e9-4329-2b3d-08de901fc305 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|36860700016|376014|7416014|1800799024|18002099003|56012099003|22082099003; X-Microsoft-Antispam-Message-Info: fUmP65wvlMJpWhYvfoYWlPy5cTVE6TjIU4YOWN5r24CHB40XEkBzMAJxX34NXDh/8i6fX5HUwh287fXBtpilN/MIda1VoBPAYqGp5mwTvY3aM+AcQCfDqsBMVoHJxyl/Rhy0YK0aqAz0AeFJRXHw+vhFQ9AuFxtNzpKvsY3zT8HaYhE5+5HjAKoH41icb2ywzh6tYNzbQ62wxRqcx9qj5Vug+e9P6Duj3p+9COTC1J+xe31B5dvToFC1El49eFs7fHPW+QsRJE6F1JqDPhRpytjqZ2Fe03ESk4/oUyQ+Vs6e+aGCgql/oS5tEEHJTDh2L9eEre4RGpMGp9kwzLUVWKRFscpAFNe6xYDlanSPjDPFN6YcaXHs1dStZ4ZPd1jmu5w2T46jwaVDt+ectpMeV9tHU0VTYADgbPMCu/J+5ZnEV1k3SDu1RqCN7g6vdvYzi4wsZFNrBxDATyHKbYQALJzhjnS2rvqFFf9JHdCqgK1VfKgfX7KCkezkZ+SBI2J9h+qRhuQhb9F37tlINsMozv86cHeTSicvFrD960OoNBeZn4lashIwSUKJsKLBEpOpUnX2wmfyx9DmJBXGXCa/puluc4+iN3mq8NvFWVO5Vrg+KT/1c6j1ZL0k8J2wq5LKwqFJ2LfapWUXBjOzHhVMPDGMyuQDL7Kal5prlQIuczlBuNL0heHVuDzYJZYw0GppKm5dh2vDGPSyCrRCVb9hnV+dik1P9Sol6+thWCyeYT0j1eqLRDjn8syqy6d6oe/IDcbg/cYY9n7H2vfdygKT1A== 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)(36860700016)(376014)(7416014)(1800799024)(18002099003)(56012099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: PFSVoBOXndClTc/M0N1DL/MpL+/6oWdKo0zF4mSZSBLl/sm36oacFJuaduPiX886fLum84EuySGxZ6aoQvMpPT0fzwIlR58l20s4LT16/HNx2oHiCrpQsVkpQzFqwokf8wtsfI7TbTScIahb9MG/3qsKyzUZMfs0pu2K9WrXbjfCKVw22DQnBOAnZTH50WDT/rPyLcJRWvMxCMzLQngwZolyHVS8FktsOh4S+K8w71zsZiBg1DyYKyYC83jjM/7ObSEl0D+VnznbZRsuOYf7iDcH90cLITP6PV3J+tuJ5s8kqbyYaLokwYbNnjfUQxYIKyBbzBS57zn05qoHrPTqn+RC5BMAwlBRfVJOgYh3bD7iiToBpKzMhpBMugQOaPUbVzJMGRQQNEHvyEU/1be/3XxUn3tPpE+TpIypQEOigmageoOxEfLv+9ruHvbKbebm X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:52:02.1666 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d4b5e27e-d5e9-4329-2b3d-08de901fc305 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: BN2PEPF000044A4.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6114 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Document the port-level resource support and the option to dump all resources, including both device-level and port-level entries. Signed-off-by: Or Har-Toov Reviewed-by: Shay Drori Reviewed-by: Moshe Shemesh Reviewed-by: Jiri Pirko Signed-off-by: Tariq Toukan --- .../networking/devlink/devlink-resource.rst | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Documentation/networking/devlink/devlink-resource.rst b/Docume= ntation/networking/devlink/devlink-resource.rst index 3d5ae51e65a2..9839c1661315 100644 --- a/Documentation/networking/devlink/devlink-resource.rst +++ b/Documentation/networking/devlink/devlink-resource.rst @@ -74,3 +74,38 @@ attribute, which represents the pending change in size. = For example: =20 Note that changes in resource size may require a device reload to properly take effect. + +Port-level Resources and Full Dump +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +In addition to device-level resources, ``devlink`` also supports port-level +resources. These resources are associated with a specific devlink port rat= her +than the device as a whole. + +To list resources for all devlink devices and ports: + +.. code:: shell + + $ devlink resource show + pci/0000:03:00.0: + name max_local_SFs size 128 unit entry dpipe_tables none + name max_external_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.0/196608: + name max_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.0/196609: + name max_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.1: + name max_local_SFs size 128 unit entry dpipe_tables none + name max_external_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.1/196708: + name max_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.1/196709: + name max_SFs size 128 unit entry dpipe_tables none + +To show resources for a specific port: + +.. code:: shell + + $ devlink resource show pci/0000:03:00.0/196608 + pci/0000:03:00.0/196608: + name max_SFs size 128 unit entry dpipe_tables none --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from SJ2PR03CU001.outbound.protection.outlook.com (mail-westusazon11012007.outbound.protection.outlook.com [52.101.43.7]) (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 3209847DF95; Wed, 1 Apr 2026 18:52:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.43.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069539; cv=fail; b=uudYE2VjFCDo02cquMHszFKDa/ikwRXDY9XkIRmHG5Pid+ubDNsTPzAoPDvKnYLOnXcV7+1w0brsm41RA2u3WCi88gdj/ubgCTYi3EWDWDVeqQZcfst+7NKLZthLKXUbLHVd2RN2gn0M7b3zb3Z8KAC/UjWhyPMIFzLtqlD8feo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069539; c=relaxed/simple; bh=iaoFaIRTGdFZ6zfjnZnKHDn3rj+UaQwHftcwH5UQIJs=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=OICmqTUajrsw6AK0DG26Y/71tqCUdnonlfM06aC6XoDl64uV7N9TrHI6z0/+xH8vx3kJrJ/Gf27bkABlM8lCUFCQupsJXiCpuHewn44TXpIW5zTRuGfSOZ9aKvOi66ZSB8CTDPMNBYLtvjb/eEdKD6rdLjux+Me1P4sVBRT09XM= 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=G1iWyU5s; arc=fail smtp.client-ip=52.101.43.7 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="G1iWyU5s" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sfNQtvOG26bagbQuSVE1SfQ4U65830uOaLQ2ynit+ThjrGuIWMRoSOhjrFbnrfg4yKadEHZLFZLu3afZPGbMZImI5QP5bNktKv+dD2AGucLUY4HuyyRKc2iBMjU4PwXfA3jtvXx2jJ0s0TSAycQpGPntEWC+DnN3FM1ufgW4YmXizJofVqdbpEEd6L7u3GLbCOXTm6sFIt1Q/TjhS43dZyOcFbqxzKSLr3T+9ITNe/1cOgG6KnyvcWVCw09DgiHK7wTdSYD9o/5fgUxwjJ8mSukf/h6IIaJv5k6Jg9Rmxduh+TVgWBJP91AWswptohHqkKMv+vHh5aqTJfuK68Osvg== 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=t8zIiZ5CNVhLhvbJ2/rn/cPb/+1e8MsF/yuXTRzwdUA=; b=eWswH+BQ/SsPVSUdEaX1vPjWxFnChvFTpZhukLg49y+CFFzsQPqYWmdBmjvLz8cX+VLftGDIKwgiU9FrsXJqreNl4648PAgnN1z/dn98mOp3Lk0CRfWPC03c9InUPrHv8vo7tY/W2Rbp7oqqlH5Pp2H8xLsP9lDfRucMjoh8L0MoI8Bsh4PdGd6EFNDoxQPVxFQKgaXqkgRjgRnc5ByKfM+1JTBFWU3ZUlNGIBDnqC+nl7mjeyzZmsF3Dn8spCyBglo3REGmPaJm6K+GoLLGe1olAWBbWxSwZaVDGSPP3CoIR7XWQSoiSp1BLvrptvSGq1oFQZaI4kztX4b9pLx7DQ== 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=t8zIiZ5CNVhLhvbJ2/rn/cPb/+1e8MsF/yuXTRzwdUA=; b=G1iWyU5svl/5MOCF4D1mkkEzNWeItHBqsKt9vQVMHBs+ocmlO162JnsY3GIw63sdMUrvjhoTvLWYMczvcdUpNlz4TBGUWc/pNwueotJY2avW1FqPjBwWg0GEEbSyzJKI15V1fx5TzyvySFZQWG2R6gBT3jdrN82lEw2AW7XxlMYGifYVkSxwQ1bDm3znYy3hkI6od+aPlDJCahjnupwZnPIJOuBfYUkiFSYsi6gBshUB80VX9qFhJls2f5TSWs5f3YWk6VRCm1/Dau17HkgBuKcpHj6UqO3STwu21MIw4m6Yrrd6dgwm3IWTCCd1H0Hm8V65VzhFlgLW23pDCjNj1A== Received: from BY3PR04CA0029.namprd04.prod.outlook.com (2603:10b6:a03:217::34) by PH0PR12MB7096.namprd12.prod.outlook.com (2603:10b6:510:21d::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.16; Wed, 1 Apr 2026 18:52:12 +0000 Received: from CO1PEPF00012E60.namprd05.prod.outlook.com (2603:10b6:a03:217:cafe::c7) by BY3PR04CA0029.outlook.office365.com (2603:10b6:a03:217::34) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.30 via Frontend Transport; Wed, 1 Apr 2026 18:52:12 +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 CO1PEPF00012E60.mail.protection.outlook.com (10.167.249.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:52:12 +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.2562.20; Wed, 1 Apr 2026 11:51:51 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:51:50 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:51:42 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman Subject: [PATCH net-next V4 10/12] devlink: Add resource scope filtering to resource dump Date: Wed, 1 Apr 2026 21:49:45 +0300 Message-ID: <20260401184947.135205-11-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF00012E60:EE_|PH0PR12MB7096:EE_ X-MS-Office365-Filtering-Correlation-Id: 79461663-72b0-46b9-bbe0-08de901fc8f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|18002099003|22082099003|56012099003; X-Microsoft-Antispam-Message-Info: gvdhSQrv7rvJwvcTH3Zb6zR5l2pi568cA8ciODcsa2ioLP6DEsLtvtpO6qB1cadsxToCraw3n+6VOjoElFAJZIEQbEoBmORpe7OlhPWGma9DmpqDbk2zOKWfdyed4+l4tXlEbMPOGM4NshFRmBClGY7q04ODQ9J1zupExcGeij4G2eUJ5vOhCdiPuVl7kUTgWmCO7wfKJir09SXdJpJGVJP9Sw0sWDdrcyLfAF11k03QMRdXJQoJNOaeSA6f1aqrCPU+Zf+wJLdKiPypC5VD+p2VYg/BMwZudbIRdUmr62BHnh2er8fSYpc6gCUj/sh9hqU1kUfGZ4GZ/PzZKvf6eSlZiOTpRB8Rmi12Aoo1s80GPx2oagk3BY1mAIrRRCOs4RN8BIqX1p0qhet7o1H7racNhS4cy3hfjIh1YrDM91KUMII9H7ESyfEHf/i3HUZBUZhtAwgREnACXjnncmtMZ8dcJ8cMewh5Z7TNbN3Of3zhPupSy4L1bTQiejBBIBcPw6QkbWejGOd8c2oSpVbsaJf731YlOLO3SFTni49wUAbMWd4W9AWLSUZHHVmNaJpUj6+qwAVm2ZMZ77orw+nm47ZWHged1p2xBijVK898uaLtIgsXrMoxvzVksQ/Z7mXlsosw3j/ybIpbJNQV3OcZTFpvqZGmJESRA99BjmfYbqR7pJpU2eUTC7SbGromixu3cpvWQZrEhn/SoT/+l3q0oIygtYtrEvSdotOphuKlXl6Q9shLYm250nnymFtb+ZkaiPicWjFct94IfwEoc28slw== 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)(36860700016)(376014)(7416014)(1800799024)(82310400026)(18002099003)(22082099003)(56012099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: WCLveJODaFSvRZaA87z2wUJW81yj6RyCXCj5X9UWPLS3OZ+jl5mIypFM0MI0hKqWYtRUaWWTMOL5XAa/a4MAO9HEE4e3LE5H4F3JNfnE+jaCjiRdEFEDncqgb2SvLnOJLfamiZ5e/JPIqMsfIv+qPETcniR0rcx7wnTdrknZno9DFy8TgaRrXFmSlv4jv6uQyrStUEWfYwzXlnSl9BJr+GrcaJAJEJQBErBCXIuXVG4TKR6pc0dagU6c5eLHl+zNxG+MAgQJxsE4xpOlFUt6F0SukzbblvuA+1rNrvhf+H8ANd2Blp4/V6nBbVJtbuQ63pSNxPREIGTspSllMJTk1FUlLy0at/RoE8UNy+B/kMXJKgCidwGTP1LLZbvpj8N+jZQ2mN2CjrnouK96m6/CQssh6wf32dV6ZKmUcqz9Or7gBrgwEJFUMEn9ihffZTzs X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:52:12.1887 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 79461663-72b0-46b9-bbe0-08de901fc8f2 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: CO1PEPF00012E60.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7096 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Allow filtering the resource dump to device-level or port-level resources using the 'scope' option. Example - dump only device-level resources: $ devlink resource show scope dev pci/0000:03:00.0: name max_local_SFs size 128 unit entry dpipe_tables none name max_external_SFs size 128 unit entry dpipe_tables none pci/0000:03:00.1: name max_local_SFs size 128 unit entry dpipe_tables none name max_external_SFs size 128 unit entry dpipe_tables none Example - dump only port-level resources: $ devlink resource show scope port pci/0000:03:00.0/196608: name max_SFs size 128 unit entry dpipe_tables none pci/0000:03:00.0/196609: name max_SFs size 128 unit entry dpipe_tables none pci/0000:03:00.1/196708: name max_SFs size 128 unit entry dpipe_tables none pci/0000:03:00.1/196709: name max_SFs size 128 unit entry dpipe_tables none Signed-off-by: Or Har-Toov Reviewed-by: Moshe Shemesh Signed-off-by: Tariq Toukan --- Documentation/netlink/specs/devlink.yaml | 24 +++++++++++++++++- include/uapi/linux/devlink.h | 17 +++++++++++++ net/devlink/netlink_gen.c | 5 ++-- net/devlink/resource.c | 32 ++++++++++++++++++++++-- 4 files changed, 73 insertions(+), 5 deletions(-) diff --git a/Documentation/netlink/specs/devlink.yaml b/Documentation/netli= nk/specs/devlink.yaml index 34aa81ba689e..b7d0490fc49d 100644 --- a/Documentation/netlink/specs/devlink.yaml +++ b/Documentation/netlink/specs/devlink.yaml @@ -157,6 +157,14 @@ definitions: entries: - name: entry + - + type: enum + name: resource-scope + entries: + - + name: dev + - + name: port - type: enum name: reload-action @@ -873,6 +881,16 @@ attribute-sets: doc: Unique devlink instance index. checks: max: u32-max + - + name: resource-scope-mask + type: bitfield32 + enum: resource-scope + enum-as-flags: true + doc: | + Bitmask selecting which resource classes to include in a + resource-dump response. Bit 0 (dev) selects device-level + resources; bit 1 (port) selects port-level resources. + When absent all classes are returned. - name: dl-dev-stats subset-of: devlink @@ -1775,7 +1793,11 @@ operations: - resource-list dump: request: - attributes: *dev-id-attrs + attributes: + - bus-name + - dev-name + - index + - resource-scope-mask reply: *resource-dump-reply =20 - diff --git a/include/uapi/linux/devlink.h b/include/uapi/linux/devlink.h index 7de2d8cc862f..e0a0b523ce5c 100644 --- a/include/uapi/linux/devlink.h +++ b/include/uapi/linux/devlink.h @@ -645,6 +645,7 @@ enum devlink_attr { DEVLINK_ATTR_PARAM_RESET_DEFAULT, /* flag */ =20 DEVLINK_ATTR_INDEX, /* uint */ + DEVLINK_ATTR_RESOURCE_SCOPE_MASK, /* bitfield32 */ =20 /* Add new attributes above here, update the spec in * Documentation/netlink/specs/devlink.yaml and re-generate @@ -704,6 +705,22 @@ enum devlink_resource_unit { DEVLINK_RESOURCE_UNIT_ENTRY, }; =20 +enum devlink_resource_scope { + DEVLINK_RESOURCE_SCOPE_DEV_BIT, + DEVLINK_RESOURCE_SCOPE_PORT_BIT, + + __DEVLINK_RESOURCE_SCOPE_MAX_BIT, + DEVLINK_RESOURCE_SCOPE_MAX_BIT =3D + __DEVLINK_RESOURCE_SCOPE_MAX_BIT - 1 +}; + +#define DEVLINK_RESOURCE_SCOPE_DEV \ + _BITUL(DEVLINK_RESOURCE_SCOPE_DEV_BIT) +#define DEVLINK_RESOURCE_SCOPE_PORT \ + _BITUL(DEVLINK_RESOURCE_SCOPE_PORT_BIT) +#define DEVLINK_RESOURCE_SCOPE_VALID_MASK \ + (_BITUL(__DEVLINK_RESOURCE_SCOPE_MAX_BIT) - 1) + enum devlink_port_fn_attr_cap { DEVLINK_PORT_FN_ATTR_CAP_ROCE_BIT, DEVLINK_PORT_FN_ATTR_CAP_MIGRATABLE_BIT, diff --git a/net/devlink/netlink_gen.c b/net/devlink/netlink_gen.c index 9cc372d9ee41..6d4abd8b828d 100644 --- a/net/devlink/netlink_gen.c +++ b/net/devlink/netlink_gen.c @@ -313,10 +313,11 @@ static const struct nla_policy devlink_resource_dump_= do_nl_policy[DEVLINK_ATTR_I }; =20 /* DEVLINK_CMD_RESOURCE_DUMP - dump */ -static const struct nla_policy devlink_resource_dump_dump_nl_policy[DEVLIN= K_ATTR_INDEX + 1] =3D { +static const struct nla_policy devlink_resource_dump_dump_nl_policy[DEVLIN= K_ATTR_RESOURCE_SCOPE_MASK + 1] =3D { [DEVLINK_ATTR_BUS_NAME] =3D { .type =3D NLA_NUL_STRING, }, [DEVLINK_ATTR_DEV_NAME] =3D { .type =3D NLA_NUL_STRING, }, [DEVLINK_ATTR_INDEX] =3D NLA_POLICY_FULL_RANGE(NLA_UINT, &devlink_attr_in= dex_range), + [DEVLINK_ATTR_RESOURCE_SCOPE_MASK] =3D NLA_POLICY_BITFIELD32(3), }; =20 /* DEVLINK_CMD_RELOAD - do */ @@ -974,7 +975,7 @@ const struct genl_split_ops devlink_nl_ops[75] =3D { .cmd =3D DEVLINK_CMD_RESOURCE_DUMP, .dumpit =3D devlink_nl_resource_dump_dumpit, .policy =3D devlink_resource_dump_dump_nl_policy, - .maxattr =3D DEVLINK_ATTR_INDEX, + .maxattr =3D DEVLINK_ATTR_RESOURCE_SCOPE_MASK, .flags =3D GENL_CMD_CAP_DUMP, }, { diff --git a/net/devlink/resource.c b/net/devlink/resource.c index 0f1d90bc4b09..c22338b2571d 100644 --- a/net/devlink/resource.c +++ b/net/devlink/resource.c @@ -341,6 +341,22 @@ int devlink_nl_resource_dump_doit(struct sk_buff *skb,= struct genl_info *info) return devlink_resource_fill(info, DEVLINK_CMD_RESOURCE_DUMP, 0); } =20 +static u32 devlink_resource_scope_get(struct nlattr **attrs, int *flags) +{ + struct nla_bitfield32 scope; + u32 value; + + if (!attrs || !attrs[DEVLINK_ATTR_RESOURCE_SCOPE_MASK]) + return DEVLINK_RESOURCE_SCOPE_VALID_MASK; + + scope =3D nla_get_bitfield32(attrs[DEVLINK_ATTR_RESOURCE_SCOPE_MASK]); + value =3D scope.value & scope.selector; + if (value !=3D DEVLINK_RESOURCE_SCOPE_VALID_MASK) + *flags |=3D NLM_F_DUMP_FILTERED; + + return value; +} + static int devlink_resource_dump_fill_one(struct sk_buff *skb, struct devlink *devlin= k, struct devlink_port *devlink_port, @@ -400,16 +416,27 @@ devlink_nl_resource_dump_one(struct sk_buff *skb, str= uct devlink *devlink, struct devlink_nl_dump_state *state =3D devlink_dump_state(cb); struct devlink_port *devlink_port; unsigned long port_idx; + u32 scope; int err; =20 - if (!state->port_number) { + scope =3D devlink_resource_scope_get(genl_info_dump(cb)->attrs, &flags); + if (!scope) { + NL_SET_ERR_MSG_ATTR(genl_info_dump(cb)->extack, + genl_info_dump(cb)->attrs[DEVLINK_ATTR_RESOURCE_SCOPE_MASK], + "empty resource scope selection"); + return -EINVAL; + } + if (!state->port_number && (scope & DEVLINK_RESOURCE_SCOPE_DEV)) { err =3D devlink_resource_dump_fill_one(skb, devlink, NULL, - cb, flags, &state->idx); + cb, flags, + &state->idx); if (err) return err; state->idx =3D 0; } =20 + if (!(scope & DEVLINK_RESOURCE_SCOPE_PORT)) + goto out; xa_for_each_start(&devlink->ports, port_idx, devlink_port, state->port_number ? state->port_number - 1 : 0) { err =3D devlink_resource_dump_fill_one(skb, devlink, devlink_port, @@ -420,6 +447,7 @@ devlink_nl_resource_dump_one(struct sk_buff *skb, struc= t devlink *devlink, } state->idx =3D 0; } +out: state->port_number =3D 0; return 0; } --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazon11011004.outbound.protection.outlook.com [52.101.62.4]) (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 D61253F20ED; Wed, 1 Apr 2026 18:52:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.62.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069562; cv=fail; b=qu7/vL7kSui+5/zWbYENH1Ed1Zi/xCO48mdg4b07FMEA10IPhv0wguRHRacV7NnlbBIJRxwKA2ltqXDqX3ZoX22k9QadgE2y4mqK2Nl336jQH9ukrTdkeXB3QybnnDuZ99998SXFpS3UvKqo0k8A8hFsMnGQRoTA35XydUJu+SE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069562; c=relaxed/simple; bh=Q37OQro86zkVqsZNZ2jfTQigq2bLpjOQaoHHWYgUlpI=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=fCDKZlC9NI2VVGXzF+KaXfHhMCJxHevGJdpsbsnL4zInT8lTeh8BPOlu2B/CBG5cSGh4yabGmtgf96ZR7bOlpknz1L1UlrtmI7SqdCqV4fgI99vM94X0odRgMwtqfsEv/rclKl6Nvo2962PJssRxlJx9Ao3fk1AcR7Yun0zFxiQ= 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=V8qprRka; arc=fail smtp.client-ip=52.101.62.4 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="V8qprRka" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L7JaOnTQmAE90ORwd9ayn+cM4JM47csxOzCgdbz9rIrfshYbjCWVn+f8YnnhZ5rXAv0amJUVojRLRN2w8Ygm8tNbVx5dyLRga2wy3rEDWM0azrECMrxGKji8+cOgHnRvKAjsEIUOsIJzmgGXpknaQycqifH9K0n1VxEN4ArkO1VcDtoza4bB0c2L57wnKTRhyJpky/Fr3sfWyltACtt+3bzSRhtJzOkYvWtklMetAxoAORB1ZRXNoY8uUePzAJi3+GuzNeip48Qovfg+ki+nlqVnkMOMSkc27Hu7blE+wvRvg8S2+Hla1JrHvoWkkUy+bcNHOYM0Ywb6HM6FBRDm2g== 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=3OxWFWpc2ka1X4YsoLQmZVuudl4WzC15xlZy0IEqdXE=; b=o8riYiYXBA7Qdo3IsCIAK5imODQQSoXiRLKltOhI/eN7+lhtY2Yu4ONm60DFFVNREdoxMBQ705s8J97a8E4w2bHt/4j+h3hPNhZNZAYXp9Px8A6N/TYBcfQnwdh11u5ZOxPM5R3NRPpr4YzrHnWDYE/GU0Dt+N+4G05pP+83Z02j5vjXIK+gcLPQOn2gsK6S6FRd8ijVqeEZFgYhpxagm2J/msCiqSM5Nsshh/RvfFO/S8hpGF4sXVTfPevYcdGST1XER+9rJzMTZFm+Xxlxg16QYq43akUO95YNzD2Hmkp781VLpHoJ+6EWdC35Fdz3Uma9vvrLSaTxJT6+Gh7ZtA== 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=3OxWFWpc2ka1X4YsoLQmZVuudl4WzC15xlZy0IEqdXE=; b=V8qprRkayo0pS/BATcM7h3jO1hFMlaIKeXZveENNNSImM/R9Gq7rLNHfB//7d0IaCl6fGgniIF9WAJKPCVBz6N8PRN6mR7UIS+Thb/MOH8mwA2FW7vqdoR4hlU7heFEICuA+KVLDXfXhiEzreEfMplPo/c8d+Nryt5eHug0E3WbIBD0OAtrZ8lTV0VtTUyLuM0NEp3GYhiUovbGZksotmsKZYDvvCjMHBkqcDRIo4ePDEb5Wt/XDKo0z9e4jXgJ1k1hcaD32vaDhOFKHyUu0hU2uDg5RdJyB5IFoFYHZ4EkDLSnlLeMkaufoWQ5Zu5uxdYITs9Bt8UV58m6cGXwMww== Received: from BY3PR04CA0027.namprd04.prod.outlook.com (2603:10b6:a03:217::32) by DS0PR12MB6630.namprd12.prod.outlook.com (2603:10b6:8:d2::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17; Wed, 1 Apr 2026 18:52:26 +0000 Received: from CO1PEPF00012E60.namprd05.prod.outlook.com (2603:10b6:a03:217:cafe::d0) by BY3PR04CA0027.outlook.office365.com (2603:10b6:a03:217::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.30 via Frontend Transport; Wed, 1 Apr 2026 18:52:26 +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 CO1PEPF00012E60.mail.protection.outlook.com (10.167.249.69) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:52:25 +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.2562.20; Wed, 1 Apr 2026 11:52:00 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:51:59 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:51:51 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman Subject: [PATCH net-next V4 11/12] selftest: netdevsim: Add resource dump and scope filter test Date: Wed, 1 Apr 2026 21:49:46 +0300 Message-ID: <20260401184947.135205-12-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF00012E60:EE_|DS0PR12MB6630:EE_ X-MS-Office365-Filtering-Correlation-Id: 8eaa493c-0490-438f-84fa-08de901fd10d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: dbhPts/v6dtoGKn2sFGgyY6bSoVe0s6kdqEB4uPMc+bUTS/dXr5ViG7lrI/W+DsneQjpISFI+BkgTPQOAZrRItukIV++rrTHW9KKyhQ9YcqcNTTKJHBTReQpkGT7lV3W02Z78L0ewVSO5aNNKOVFVks2TdtLJcTPoKU+HRWRPiPBf2KfzgdAgi8+b6jrX+x5iVDIbedc5IWqxbGzresMzlIk5/1E11EOtO8bpfYuGeDLGjjWLyY6nBywRtVXN/l9/VHjrtF1i6YMhOtuIeB1IPPOI5FB5QjhqIqpfV77tH9pRwhm3NxKjRO1v83nrtjjkebEG1A5QsCZJHtT5Kgtd1bwS4F3ojatbOn3HoV1N6jAlMfp+7HCJhCkdjTIDvDY0F3hOB8w6YPOOE5s4QdhmcoaGGvA5+peej5jJasxwlJ3zmLtPUV9pqQYPv9txKpTA6ZNWtMm8kyf3Rj97aWuMAehtalNjwoS6zWrNeTt+S+Ez7VXnFS4UbYtDArDAYdedpmTr4zRIpD/0OCGYywo34Av0lAXsgyQjyAaSjimWvERchbx/G5orBKCC5fXgifQ6EGUrBnFSnkFPVGLSvgiB0KPdCcFKwRqsuJQcd5IN0j8nqBYVrwKl5oU+mq4QUfm5WHU0Zx4hdBQg9BQfu6A9bQAHKrnD2WiLEQ/VEUORbDibRfXFn95iSEej1EYRcLdvBwq0rMVSk/6z34FBxY96yOIjp7g3ORovGQo6bjR2A7axMDf93LWiJgavQ5lqfCZ6kGxKKKOZOjkq7K6NWcHkA== 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)(36860700016)(376014)(7416014)(1800799024)(82310400026)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: +U4hH13eDIlivHV+tnQJ+5ezosFkx9haPqUG9Wv4JYrn1V7IC692O+W/gbQXqyAggDnJspaVSIGFhf4KJSMPTjhbIn4gOW7SBVbZ71cHYP5Y9gCIoa0GnUz/6F7PGnXR1dsw1Qa7ExetfXnKfCiDPH5h9Owtyzd4z+v3fqTYp3yfx5VNdgBZmdzvMf7OLbJZ3ayVfDwUxm4apDvBSRG7vDx+uHsT886lrFZDj0JDK5NQ34vbp2DJoPrnizPPZWGxWZ4/Trps891TApp9xOd04Pfo0Vg/cA0g8PQtI9t+hc2d9wVzlO0Ii2ZrJjDdIrxEi22Wak4S0mDabGj3FRv6308nlp4f9o37T8m/Vl5wqO+d5ZFpjuO1jtiAb5Bem9pP7Es+Oidr6p9U9+wNHKNR3Ss0JKOTv4CEz9wmum5x90qx84bSB/ml+AxslR7482RF X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:52:25.7791 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8eaa493c-0490-438f-84fa-08de901fd10d 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: CO1PEPF00012E60.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB6630 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Add resource_dump_test() which verifies dumping resources for all devices and ports, and tests that scope=3Ddev returns only device-level resources and scope=3Dport returns only port resources. Skip if userspace does not support the scope parameter. Signed-off-by: Or Har-Toov Reviewed-by: Moshe Shemesh Signed-off-by: Tariq Toukan --- .../drivers/net/netdevsim/devlink.sh | 52 ++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh b/too= ls/testing/selftests/drivers/net/netdevsim/devlink.sh index 2e63d02fae4b..8118cc211590 100755 --- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh +++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh @@ -5,7 +5,7 @@ lib_dir=3D$(dirname $0)/../../../net/forwarding =20 ALL_TESTS=3D"fw_flash_test params_test \ params_default_test regions_test reload_test \ - netns_reload_test resource_test \ + netns_reload_test resource_test resource_dump_test \ port_resource_doit_test dev_info_test \ empty_reporter_test dummy_reporter_test rate_test" NUM_NETIFS=3D0 @@ -483,6 +483,56 @@ resource_test() log_test "resource test" } =20 +resource_dump_test() +{ + RET=3D0 + + local port_jq + local dev_jq + local dl_jq + local count + + dl_jq=3D"with_entries(select(.key | startswith(\"$DL_HANDLE\")))" + port_jq=3D"[.[] | $dl_jq | keys |" + port_jq+=3D" map(select(test(\"/.+/\"))) | length] | add" + dev_jq=3D"[.[] | $dl_jq | keys |" + dev_jq+=3D" map(select(test(\"/.+/\")|not)) | length] | add" + + if ! devlink resource help 2>&1 | grep -q "scope"; then + echo "SKIP: devlink resource show not supported" + return + fi + + devlink resource show > /dev/null 2>&1 + check_err $? "Failed to dump all resources" + + count=3D$(cmd_jq "devlink resource show -j" "$port_jq") + [ "$count" -gt "0" ] + check_err $? "missing port resources in resource dump" + + count=3D$(cmd_jq "devlink resource show -j" "$dev_jq") + [ "$count" -gt "0" ] + check_err $? "missing device resources in resource dump" + + count=3D$(cmd_jq "devlink resource show scope dev -j" "$dev_jq") + [ "$count" -gt "0" ] + check_err $? "dev scope missing device resources" + + count=3D$(cmd_jq "devlink resource show scope dev -j" "$port_jq") + [ "$count" -eq "0" ] + check_err $? "dev scope returned port resources" + + count=3D$(cmd_jq "devlink resource show scope port -j" "$port_jq") + [ "$count" -gt "0" ] + check_err $? "port scope missing port resources" + + count=3D$(cmd_jq "devlink resource show scope port -j" "$dev_jq") + [ "$count" -eq "0" ] + check_err $? "port scope returned device resources" + + log_test "resource dump test" +} + info_get() { local name=3D$1 --=20 2.44.0 From nobody Thu Apr 2 00:12:46 2026 Received: from CH5PR02CU005.outbound.protection.outlook.com (mail-northcentralusazon11012048.outbound.protection.outlook.com [40.107.200.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 C96F7345CC2; Wed, 1 Apr 2026 18:52:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.200.48 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069573; cv=fail; b=S8iFpG1UpHV8/r9aPz+jzGcxgLGgB3Ay9an396YssVSqMyeiPexhq4Jsr1YPEn+tvj+qacJPfai3BE6fGRkOTp28LeLCVyoszbKhtsEtp61CteF4Gt8mbMQKTSti+W02PnWIEXf3RLTNYZP6jACUGjBuOpgEDqGjbhYoeqdIHOs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775069573; c=relaxed/simple; bh=bNxPaFyKTr+8PzSZjErURSRhx42C1826Yt2rbTSXgps=; h=From:To:CC:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=hiXiB9d09sl+qtLazygbS1e0jqhc+oLoty+bFFYVWSxpKZvoG7j/AqxAbpEvS65OU3fZbafGVvoVV/vszN1r1IxPzzsadXi+4xmQhj513X2ZZlrVOnSbkcNdRGlfVn05vuvgpNLGLtkE2BI4FYmqwPIG90bdzV221YsmVo1x5WM= 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=VEvpT9Eb; arc=fail smtp.client-ip=40.107.200.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="VEvpT9Eb" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r/4CkEHqrN4Km22fFYVXSXT9EFJVmZX9fBrWb3Jp/16d8o2PaQPkMHnX9yT+p56B8al4lR2TetKRL60vhBU5SWVjFCNbN6AZDHApcp3pck7OYIYsHGe1rwcdH4F8kYsmZc6c6WvX9CuymhOyqFjr4x/L5yjOOQgfOWSzlJkgxDhGpZRm63v//nEy5OmIpNa3ys3c6lhLVbE6kYMEnMBtCcjVGlmOMW4Voqtlvk1n5s2/cWx+ks3yfQkY62kcLnwUpkvzHOP2tSedVdOSBt0HGCM8f/z2fHhAAcdVOzwKe4BLRSQxWdguJIZbn/xaLDboI+nDqZ6NYwxsgIWouKhY6A== 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=ftahLqQoNhhEzHXVvf+M97Mjovjuqjqr+GfvnqTKqeI=; b=i2u/dy10327DGAdmzKutmNcUjQ9RAG9N/OEi7tWnRqfkoqRm6IvKB/nrokLJEzyM2KUkxPcS+mEfyi71WtRteTBSDHen34LYK1uzsO1jXycguP5IHY1j64p6T9isKVIlacXyQVkeQSZKmWOkG6S5mzGwtvE4u6egBz2P5FMA09JLmJIoliyNXlqkayZdwNACIlI1LrihkKYbptrY6IdmT2EkPgHkgHYLze7uVGnsaaxd9tPGuYiBKAYDpLah8HqqZtgnw3k5E+0gu+yF5mLHmSzkPpczSO0Wo8lrI/Zn0aP1BkkU1l22N86mUcPblgVYFjQ6FEHzUDXAkT7k1kMJog== 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=ftahLqQoNhhEzHXVvf+M97Mjovjuqjqr+GfvnqTKqeI=; b=VEvpT9EbDtxZrIddUGd427KxnYlZW/gSVzC7ySpbjY5kZw0PItZPkW8gRmlw+mhQgpvaf1Z6owCUHwckK68Ztws2XjS4FStEx0LCbDQ9Rl7gg5Kh2cuKu6XAXDdewP3nAVQzmMxmLD6TYk88z6aUVEbPqaGHjTMJqitkThp3xQKSL/pezaOEpL7Zod5UqsZ5v1XrrxAdU48NyYQoM+0BTZ4sMG1vKKnGa78qp82Tn81InRLxaHOe4NQXWdiMsWsT8PVI7ilc9/9WFqL9J1iWO8J5dByXJIONI5cef3kLKKusFL+6GKVa+HfNIIbB3DzK0bhXbEr4p7jWD8I7+ySwuQ== Received: from BN9PR03CA0447.namprd03.prod.outlook.com (2603:10b6:408:113::32) by SJ2PR12MB9088.namprd12.prod.outlook.com (2603:10b6:a03:565::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.16; Wed, 1 Apr 2026 18:52:30 +0000 Received: from BN2PEPF0000449F.namprd02.prod.outlook.com (2603:10b6:408:113:cafe::9d) by BN9PR03CA0447.outlook.office365.com (2603:10b6:408:113::32) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9745.29 via Frontend Transport; Wed, 1 Apr 2026 18:52:30 +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 BN2PEPF0000449F.mail.protection.outlook.com (10.167.243.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9769.17 via Frontend Transport; Wed, 1 Apr 2026 18:52:30 +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.2562.20; Wed, 1 Apr 2026 11:52:08 -0700 Received: from rnnvmail205.nvidia.com (10.129.68.10) 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.2562.20; Wed, 1 Apr 2026 11:52:08 -0700 Received: from vdi.nvidia.com (10.127.8.10) by mail.nvidia.com (10.129.68.10) with Microsoft SMTP Server id 15.2.2562.20 via Frontend Transport; Wed, 1 Apr 2026 11:52:00 -0700 From: Tariq Toukan To: Eric Dumazet , Jakub Kicinski , Paolo Abeni , Andrew Lunn , "David S. Miller" CC: Simon Horman , Donald Hunter , Jiri Pirko , Jonathan Corbet , Shuah Khan , Saeed Mahameed , "Leon Romanovsky" , Tariq Toukan , Mark Bloch , Shuah Khan , Chuck Lever , "Matthieu Baerts (NGI0)" , Carolina Jubran , Or Har-Toov , Moshe Shemesh , Dragos Tatulea , Shahar Shitrit , Daniel Zahka , Jacob Keller , Cosmin Ratiu , Parav Pandit , Shay Drori , "Adithya Jayachandran" , Kees Cook , "Daniel Jurgens" , , , , , , Gal Pressman Subject: [PATCH net-next V4 12/12] devlink: Document resource scope filtering Date: Wed, 1 Apr 2026 21:49:47 +0300 Message-ID: <20260401184947.135205-13-tariqt@nvidia.com> X-Mailer: git-send-email 2.44.0 In-Reply-To: <20260401184947.135205-1-tariqt@nvidia.com> References: <20260401184947.135205-1-tariqt@nvidia.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN2PEPF0000449F:EE_|SJ2PR12MB9088:EE_ X-MS-Office365-Filtering-Correlation-Id: 306d6d6a-d97e-49c2-063d-08de901fd3a2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|36860700016|376014|7416014|1800799024|82310400026|56012099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: aTycqXDe7ZVxkDKzAycH8LdSIH5sZBaJ8aJ+HOVt+3+L7jb9A7yWwCPlv3QKffPirMnm7M7h0d5UGRorSP9kVDINuSI/H586OwH/GWTXMaaHZEVw7Kf8ki2e4GgBCbwS/GPN7CxCFUHKBQ8xg02W8Q5h6BC9+lxGBWHR1aXll5sooNZpxPN0wVvel2Eg9f0fBz9O5mbmFCuZGYp61ApYXCbtSTTg1KsyGbThNxj8sDEzYbNTpPZV+Hh8lVX2pe9m/ilC0/NciGq183FNBcBPyvM8lvHXq8TJVKTO1ubHDNDVx4BT6wGYGcG4xux6QZ9bi45nIUnXjoGxYnLAylmpcpAREPo7N/KX/i76k+v7iwX/STJwUXpjasVRimN+UBXVzrADDlRdPQRO00278YuILIDPO7RAOR+1ZQbx3ibF55pNZQz/WQxGvJM5oQAxoCO5CJnJBtzMFHckOPDmlRmqDqqi4dBntOEQkAWlLP5qLbvyVgjgUyQ49el0sDn6n3km1sm++gP+mQPa+uSM4o/OULyXsvUjgKlIh1WSF13laBP40WgiPPiUYdqReCYpjEkMYJhl+wRCYJX4cIMbxAZB3nHUb8WEYfudcOOreOah38tX8zjLZEH8uMDS2Gog88KgYKuKl8vD6wOyvVMNApuJjZ9tmYQALPEbntaH1B/0eOK/a385Wz4YjQJw3jRkFsc1YPbXa3OmUFjL2rrK6iZm2MXZxhbhDVVKaDzDUOzVke7DVNxTMA6Rq3Ka4miWSktrDH4vEiIf6aZTv+G+TtkV4A== 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)(36860700016)(376014)(7416014)(1800799024)(82310400026)(56012099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: T48YHFUGQS4OI5cgrxLc35yGWxvJAr40HGSq3z7jCUwHTNpMdds3MwN4SDgAnyt074U9202Fy49h4BMjFJ4xeopyiimTKI+NSoYFQWEXYjtNWwYs1NYDQkfyL0Oej6udqq4gQQAz3/HiniygqbZ7pENHRQztvIliSVR8FxcM+2h4wqbuM1E4AVNjkcF2C7XuItpaij43M1RehIlweC6DD8rSgZDigB2925cXorvW1AcxvaJHFTFn5Vv6CGjZxZ/zCisoR1GOfaLik3k+u4izWICKoGnnlHqZPlureWzGllNyimr2pzTTAvrqo9BmUqHwbYK1xmu4cQiu3m4s2cS4AADZ06Meo7OJ1IbpyvMNoF19sb+xuLaLhixQ2z96AqJAH7F0BfDZ5fb6nmM7uBm694c9rb57SElL50o+4GkGU1Q1HxcBwbdPyGjzWDyBsY1k X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Apr 2026 18:52:30.0379 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 306d6d6a-d97e-49c2-063d-08de901fd3a2 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: BN2PEPF0000449F.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9088 Content-Type: text/plain; charset="utf-8" From: Or Har-Toov Document the scope parameter for devlink resource show, which allows filtering the dump to device-level or port-level resources only. Signed-off-by: Or Har-Toov Reviewed-by: Moshe Shemesh Signed-off-by: Tariq Toukan --- .../networking/devlink/devlink-resource.rst | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/Documentation/networking/devlink/devlink-resource.rst b/Docume= ntation/networking/devlink/devlink-resource.rst index 9839c1661315..47eec8f875b4 100644 --- a/Documentation/networking/devlink/devlink-resource.rst +++ b/Documentation/networking/devlink/devlink-resource.rst @@ -109,3 +109,38 @@ To show resources for a specific port: $ devlink resource show pci/0000:03:00.0/196608 pci/0000:03:00.0/196608: name max_SFs size 128 unit entry dpipe_tables none + +Resource Scope Filtering +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D + +When dumping resources for all devices, ``devlink resource show`` accepts +an optional ``scope`` parameter to restrict the response to device-level +resources, port-level resources, or both (the default). + +To dump only device-level resources across all devices: + +.. code:: shell + + $ devlink resource show scope dev + pci/0000:03:00.0: + name max_local_SFs size 128 unit entry dpipe_tables none + name max_external_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.1: + name max_local_SFs size 128 unit entry dpipe_tables none + name max_external_SFs size 128 unit entry dpipe_tables none + +To dump only port-level resources across all devices: + +.. code:: shell + + $ devlink resource show scope port + pci/0000:03:00.0/196608: + name max_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.0/196609: + name max_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.1/196708: + name max_SFs size 128 unit entry dpipe_tables none + pci/0000:03:00.1/196709: + name max_SFs size 128 unit entry dpipe_tables none + +Note that port-level resources are read-only. --=20 2.44.0