From patchwork Thu Jan 25 13:30:21 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 136144 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6E51D439C1; Thu, 25 Jan 2024 14:31:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 369E242E17; Thu, 25 Jan 2024 14:31:07 +0100 (CET) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam04on2088.outbound.protection.outlook.com [40.107.102.88]) by mails.dpdk.org (Postfix) with ESMTP id 8E1B642DF4; Thu, 25 Jan 2024 14:31:05 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HNvzgWsNc7BDJmr7c6SCWBj2mqHfOCpmf2ahPRQNz6LgweiyqF+pQRX5n7S8HCj5Stp4ceUT+s5/0rXn/4kv0DOkisNK3naWAZpJxbjC1i0I7L7e4kgC3cSErklMZoHiaMI0uazzky4JdFkE2BCukeuCdCkWamfz/NA+6Wf6CsFC5ODUDvx1njyJ+rCmR9el6aAjII9AAIb7TYNu7yaEdzeH3Wws31vtXm8HRjy1GxJAhpky47Fn/judmd3vx5T5aV9+gpkGVuMjeYmJi7xAqYlkw5pEtPqug4cDSzV7LC+wOJK/aq34NSkiQxP53szG9cErvXVfZ+QCsRFGsZRVJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=x2HoV1Yn1LjX+75iOUER3wKUj0vxER7iLZIE/5wUtnU=; b=kqm2wkUMHx6stMVjfRKGx4bo49GGdchVUED1WGfA4Mz3KL27fz6CRSejFy2vdB0tshGkDLjhvkFdMG5QUExA9gLn1S8wfeg0YuDnrItesu+ZfDZfnbJSgXYghsltYKXEDJt5YO+7SIyttsRRIMrltUTdCIX7SMvb+Ls4tk0TfbKfCVQBbBpQqBH0BLrmPk2qe4JdxG8WfSj/7Kqk+lO1p3dPPDoGRPXSr4y4R2X90wkZYqTpGf7ugBAeQXGxQHSTwos3Ap97OgV//tsgEurSu8b1UhBjH6fxfq4jfjdx3Fa7NQO0Yp+76o4tJmGRnJRFWDnbcHVf/L4/pOyqJEPlhw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=x2HoV1Yn1LjX+75iOUER3wKUj0vxER7iLZIE/5wUtnU=; b=HNzRxlN5u1bx1bAnQZeRyp6E53491bBzXzfUxKPDjFSjQbwesr9/lr23mYCq8GgbMo4pz0h1Cez5mD8rS7QtdBlIwlXc0Y3SVNLyKJRoTej3BGHrUXS1WGj6IcGOa13EV72imLIA6J2e33KELtdDPOpcaPWG+5iczAMFNI0u9VYMIII6qvmdPQDjd90G8RfZjsJZeDeJ5aYGoCzHQHJEDn4A6QRFpk8OJwAbz7T2zAAzW7D6+78CvY7M6XJHv6XxRMF8870uZ0/A8hVq6Q3LGYgq2Rk9/hAVnfnnhoiuQP8MWvRsqng2Tfu7uyywk+YHnkgKQeM+mXg5yx+tqYPSdA== Received: from DM6PR03CA0045.namprd03.prod.outlook.com (2603:10b6:5:100::22) by PH7PR12MB6561.namprd12.prod.outlook.com (2603:10b6:510:213::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.26; Thu, 25 Jan 2024 13:31:02 +0000 Received: from CY4PEPF0000EE3E.namprd03.prod.outlook.com (2603:10b6:5:100:cafe::c3) by DM6PR03CA0045.outlook.office365.com (2603:10b6:5:100::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.22 via Frontend Transport; Thu, 25 Jan 2024 13:31:02 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by CY4PEPF0000EE3E.mail.protection.outlook.com (10.167.242.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.16 via Frontend Transport; Thu, 25 Jan 2024 13:31:02 +0000 Received: from drhqmail202.nvidia.com (10.126.190.181) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Thu, 25 Jan 2024 05:30:53 -0800 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail202.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Thu, 25 Jan 2024 05:30:52 -0800 Received: from nvidia.com (10.127.8.13) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41 via Frontend Transport; Thu, 25 Jan 2024 05:30:50 -0800 From: Michael Baum To: CC: Matan Azrad , Raslan Darawsheh , Dariusz Sosnowski , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , , Subject: [PATCH v2 01/23] common/mlx5: fix duplicate read of general capabilities Date: Thu, 25 Jan 2024 15:30:21 +0200 Message-ID: <20240125133043.575860-2-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240125133043.575860-1-michaelba@nvidia.com> References: <20231203112543.844014-1-michaelba@nvidia.com> <20240125133043.575860-1-michaelba@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EE3E:EE_|PH7PR12MB6561:EE_ X-MS-Office365-Filtering-Correlation-Id: a817e5f2-5183-4e33-1bfe-08dc1da9e007 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8ZSfZmMBwPAgdFDH8DG6krFt8hLYSe6V3OHbS2WVvwg0dlIRaYpNvNAsvo2tm0UBLpIfxnxwDv401Vc8+fTYMq6SBwQtHwjmGVNsV2Ig0rVqSHXLUZiyQ2g1/7pk2GqIxQoIBpmDg5cZIKLCbkB25HLJ1BNyTcAddg8IpimcBiinopAFLM0UtuqUGOfQ7IMpwTcDPUqu6TLjvJsgWE4GDxn/85cWNTgPocDEF8qASvOKt7Vhm8n0snhsCkmOrroQUXSvxv5+0Q+QdtXD3YtPAZ/KMdTWkeLrlrSZmkxcPeZyUy9ZEfLhBIYFmM2TKKDY8bH2snlIbRBDspArnKK+JhSeyGWeL8Zv6HKIp8h/4NS2ZvA2lEdyQcL4etDdmjdFdxd/FK3kiyXInRGvGI+TplSqanZVA3W/QC0iHNXeiPsBw6J1odIV3xCy3dw7jfnCsTKFgYn0kq5g8CsMjIA2eD5P3ZIQcRQP2TUt9TbiSXKrY7pShcDLiydu6fZgPmKvEAJHVWgWUU+0yhkIGl9b/azZElFSnTdGX9owci9oxXS29kj6UgEHhcDUzuQrYMZXE2LSQ8/f1RlX00X2uWbArAyiA8+EmwdmB4muja29vHC7An4Xr2CLDLxaDmMvtwby7bLo0IOpf8qz11SGKATz1tXdzjbDXGgLHAsCUHbdyKpgvG8Uv/CVp2lC7P0qG2drrsjOFdVGyNtwHkqGIBXW0OypBCDSE4Z9ZDVfqjodttZF+ryzPEojR9YwM37b36Ms X-Forefront-Antispam-Report: CIP:216.228.118.232; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc7edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(396003)(39860400002)(376002)(136003)(346002)(230922051799003)(64100799003)(82310400011)(451199024)(186009)(1800799012)(46966006)(40470700004)(36840700001)(83380400001)(47076005)(82740400003)(2616005)(336012)(426003)(26005)(1076003)(6286002)(36860700001)(8936002)(450100002)(5660300002)(4326008)(8676002)(2906002)(478600001)(7696005)(7636003)(6666004)(54906003)(70586007)(6916009)(316002)(70206006)(41300700001)(356005)(86362001)(36756003)(55016003)(40460700003)(40480700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Jan 2024 13:31:02.3758 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a817e5f2-5183-4e33-1bfe-08dc1da9e007 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.118.232]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CY4PEPF0000EE3E.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6561 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org General object types support is indicated in bitmap general_obj_types, which is part of HCA capabilities list. This bitmap was read multiple times, and each time a different bit was extracted. Previous patch optimized the code, reading the bitmap once into a local variable, and then extracting the required bits. However, it missed few of them which still read the bitmap for themselves. In addition, for other readings, it moved them to use local variable without removing the old reading, and they are read twice. This patch moves them all to use the local variable and removes all duplications. Fixes: 876d4702b141 ("common/mlx5: optimize read of general capabilities") Cc: dekelp@nvidia.com Cc: stable@dpdk.org Signed-off-by: Michael Baum Acked-by: Suanming Mou --- drivers/common/mlx5/mlx5_devx_cmds.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index 3a894f894a..faa38a9f95 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -966,18 +966,6 @@ mlx5_devx_cmd_query_hca_attr(void *ctx, attr->max_geneve_tlv_option_data_len = MLX5_GET(cmd_hca_cap, hcattr, max_geneve_tlv_option_data_len); attr->qos.sup = MLX5_GET(cmd_hca_cap, hcattr, qos); - attr->qos.flow_meter_aso_sup = !!(MLX5_GET64(cmd_hca_cap, hcattr, - general_obj_types) & - MLX5_GENERAL_OBJ_TYPES_CAP_FLOW_METER_ASO); - attr->vdpa.valid = !!(MLX5_GET64(cmd_hca_cap, hcattr, - general_obj_types) & - MLX5_GENERAL_OBJ_TYPES_CAP_VIRTQ_NET_Q); - attr->vdpa.queue_counters_valid = !!(MLX5_GET64(cmd_hca_cap, hcattr, - general_obj_types) & - MLX5_GENERAL_OBJ_TYPES_CAP_VIRTIO_Q_COUNTERS); - attr->parse_graph_flex_node = !!(MLX5_GET64(cmd_hca_cap, hcattr, - general_obj_types) & - MLX5_GENERAL_OBJ_TYPES_CAP_PARSE_GRAPH_FLEX_NODE); attr->wqe_index_ignore = MLX5_GET(cmd_hca_cap, hcattr, wqe_index_ignore_cap); attr->cross_channel = MLX5_GET(cmd_hca_cap, hcattr, cd); @@ -1001,6 +989,9 @@ mlx5_devx_cmd_query_hca_attr(void *ctx, /* Read the general_obj_types bitmap and extract the relevant bits. */ general_obj_types_supported = MLX5_GET64(cmd_hca_cap, hcattr, general_obj_types); + attr->qos.flow_meter_aso_sup = + !!(general_obj_types_supported & + MLX5_GENERAL_OBJ_TYPES_CAP_FLOW_METER_ASO); attr->vdpa.valid = !!(general_obj_types_supported & MLX5_GENERAL_OBJ_TYPES_CAP_VIRTQ_NET_Q); attr->vdpa.queue_counters_valid = @@ -1074,8 +1065,7 @@ mlx5_devx_cmd_query_hca_attr(void *ctx, MLX5_GET(cmd_hca_cap, hcattr, umr_modify_entity_size_disabled); attr->wait_on_time = MLX5_GET(cmd_hca_cap, hcattr, wait_on_time); attr->crypto = MLX5_GET(cmd_hca_cap, hcattr, crypto); - attr->ct_offload = !!(MLX5_GET64(cmd_hca_cap, hcattr, - general_obj_types) & + attr->ct_offload = !!(general_obj_types_supported & MLX5_GENERAL_OBJ_TYPES_CAP_CONN_TRACK_OFFLOAD); attr->rq_delay_drop = MLX5_GET(cmd_hca_cap, hcattr, rq_delay_drop); attr->nic_flow_table = MLX5_GET(cmd_hca_cap, hcattr, nic_flow_table);