From patchwork Sun Dec 3 11:25:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 134748 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 EA3D84365F; Sun, 3 Dec 2023 12:26:29 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E0081402E0; Sun, 3 Dec 2023 12:26:17 +0100 (CET) Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on2074.outbound.protection.outlook.com [40.107.96.74]) by mails.dpdk.org (Postfix) with ESMTP id 37D1B402BB; Sun, 3 Dec 2023 12:26:15 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ax4y0ycEJL+9AZKpub87GyRihK+eGWe8pCQmnnnUQ9M2Yfc9hU+C7BypQKOzytolJH5/9ae6PW1tR5/8rac6Mn096wxWcGfA0beBCkfuzPUHapgPLYzWh0G/Uhk5A53Gkj8texu2VMYO50UtEruPjtgYstLBogdfgQp7tFqcDol95Q5g31tbqi24pNuzaWeNZ8qD2SVhZmYSsZU+HQLKGJS0zBKQSi/6ZzQsTARXgMV30noWTC7xsXllg5hlpq4s0t6VPjWa4QsjSxYEwCugxkW/bO0vK4mDl4vKuRUnJugBhYnDENjCKo0RgbNLp8SMO6n4cMhMP1szZZTJZFZvmA== 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=s7Yc7yS2OBcxKzaxvyS9PM+zn2fpVRP1CbdSR3MORZY=; b=EeO6WynQtSkaftOmP7SB2SJRRy1KOK0T8kTO6Ig2UruFeb17qB2AGa/uvi2QIwXmYTYwFUdHm1jQH77z0f7bPVFeDfOzqLijDVATYSn7oST8CzMs0XoRjY0SJ9HMHM4s++jCtvMBW8zBS0fEoi7kPvTc8bt29Dah2DLKMp8lVrHOvgbqgzy1y37woY3GHMqYhzaup6b1XbFaB632+/sSd9+7yqQKHlsbg0utJ808yHje4ohhDj4CIEk+wz90McRNkmzVqCEE/ICo+PTBqv16vYX/ipGX4J958VbXG8SKUwYkXtH1ibRwd5vu3w3uhul2FVhLibn85ruW/RdcnmQ0ug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) 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=s7Yc7yS2OBcxKzaxvyS9PM+zn2fpVRP1CbdSR3MORZY=; b=c0iEuC/g2Xhs8Xgw/nar1vZdWSmzJ8Vl41FMBuCAy6aek0pyg/QbrfPMDlgg0vNzBFNg1Erbz+OkJz3qju3/CKf3i52FCVjbbqvN5L6wqn/mcI4iKFYrYainXVJnsZ6CwuEpgYCusBfThABmCyrNFjIAcsh7lH5/4wNuwQLPVQ+cElxsoxqjFwD6A3AF5gYKs6+otxvxpHY64hmg6kGZiGkMiOG2j5LWMy2E6EQG00P1309Tp2vsep0R5U9HCT7wQ7liyY4GB44acEzzjZ+6b9L84KmFj9ialGv3Mb7ukqaD0/fSAUFcEVy2JRhVDzpVws731WokIvpd1qWNjpPe0Q== Received: from MW4PR04CA0206.namprd04.prod.outlook.com (2603:10b6:303:86::31) by CH3PR12MB8878.namprd12.prod.outlook.com (2603:10b6:610:17e::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.32; Sun, 3 Dec 2023 11:26:12 +0000 Received: from CO1PEPF000042AB.namprd03.prod.outlook.com (2603:10b6:303:86:cafe::65) by MW4PR04CA0206.outlook.office365.com (2603:10b6:303:86::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.30 via Frontend Transport; Sun, 3 Dec 2023 11:26: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 CO1PEPF000042AB.mail.protection.outlook.com (10.167.243.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.20 via Frontend Transport; Sun, 3 Dec 2023 11:26:11 +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.986.41; Sun, 3 Dec 2023 03:25:52 -0800 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.986.41; Sun, 3 Dec 2023 03:25:52 -0800 Received: from nvidia.com (10.127.8.13) by mail.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.986.41 via Frontend Transport; Sun, 3 Dec 2023 03:25:50 -0800 From: Michael Baum To: CC: Matan Azrad , Raslan Darawsheh , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , , Subject: [PATCH v1 01/23] common/mlx5: fix duplicate read of general capabilities Date: Sun, 3 Dec 2023 13:25:21 +0200 Message-ID: <20231203112543.844014-2-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231203112543.844014-1-michaelba@nvidia.com> References: <20231203112543.844014-1-michaelba@nvidia.com> MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CO1PEPF000042AB:EE_|CH3PR12MB8878:EE_ X-MS-Office365-Filtering-Correlation-Id: 95ca11d7-d157-4448-5deb-08dbf3f2a773 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4/qJXYiGMnghKUCLNM40T98QO6ei+4q57jZNcGgI04T/VS0w8c9Ew5NwEwx8QaszTwfT/Z5rgS+/L/Q1y1Y8pOztW1PKEio0PJ1q3SITF+H+2ZeeOiR5oy0lvJW6T7NRagFRZQhozwtz7XE/wxgf+LccdTaugKb5lFDqTfN2Bcu0CPJI/qC9vap+H6y1vO9Is7ELg5lf4/unApkYOsW9Qeo++LjrBAXFLEdKRWvWqY9ujOmBMvS38chcGGONNhbriYjxvy9IaNHvwE3c3n0JYIyg3Y+JppGKFJCG4V3ISjZfdhjjiH8wK+wTeD6TBxb/IYiU2yXM2MEahE9BoizxxPGQ+2QXPdWtpHVX0cpYNgPKkJi2KFKUeBPOjoET1v1K0pLbY6tGjmQydRi+SEheIde3OeMNrk/AgpESSqvruIT4y1M8eFFkNXRfT/ygHtfgdKHx9QUMH1Cwt2Om3C/ZLF5bb55wWkJle+XSiXTj+x4lkfj6Vk7zJW4fUL3nDLeGoKKJxCPSH+dLjjw/ZOEVcOAYXrhtg2/8o2yNff920SfgG5SkM6nAzGIaczJnqe7Gd8X6Kq4RCKgBiUJq3+6A5woauvrXIpqRku4UvQw+wHZb0LARgwMjOY1Xblu5X62YNQT1l5GLM1acawkd2WG0Ox6XX9g6CySzBCxgBmTABUKaPTHmUWqP0DWrOFpPILh+UVBTmy4TR1TnEyoXgKyfLHL6RduGxlmeKqam9p0yJAw1Q485KwzmXbpjRXYuT3we 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:(13230031)(4636009)(136003)(346002)(39860400002)(396003)(376002)(230922051799003)(186009)(64100799003)(1800799012)(451199024)(82310400011)(46966006)(40470700004)(36840700001)(6286002)(82740400003)(26005)(7636003)(55016003)(47076005)(356005)(336012)(426003)(36756003)(70586007)(70206006)(54906003)(6916009)(316002)(40480700001)(83380400001)(36860700001)(1076003)(41300700001)(2616005)(2906002)(478600001)(6666004)(7696005)(8676002)(8936002)(4326008)(5660300002)(86362001)(450100002)(40460700003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Dec 2023 11:26:11.8641 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 95ca11d7-d157-4448-5deb-08dbf3f2a773 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: CO1PEPF000042AB.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB8878 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 --- 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 4d8818924a..41f6e0a727 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);