From patchwork Tue Jul 6 13:32:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Suanming Mou X-Patchwork-Id: 95398 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 B028BA0C47; Tue, 6 Jul 2021 15:34:52 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5A42F4141D; Tue, 6 Jul 2021 15:33:43 +0200 (CEST) Received: from NAM11-CO1-obe.outbound.protection.outlook.com (mail-co1nam11on2047.outbound.protection.outlook.com [40.107.220.47]) by mails.dpdk.org (Postfix) with ESMTP id 1ADF9413F4 for ; Tue, 6 Jul 2021 15:33:41 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G0zwAw8YD+GXpsObOoKIWWUpOsVkG6dS4Qq891b87ecY+M0zwzMEG+ihTnU4HJHjvGoysboJX+Bs5mYEdKAumsU5OMtBUxspWGGXVqSI8/VpbtgOOPJHM/ejfRRt+S9v2A0zDAhY7S/7H6cJIgjrdZ6CjfllF3Du8vHldQBVhuD+MA6c7zq9SbRPhcpt/B39itUOAnyEfpRwKkgyIH6Ewnp3ymOwx5xlA22/7s/gOKUzQLcMYwQ0pbi/KgPUhnCa1/Ej68bjqNGsTTWeo+Wrlnt2IX3EpfCQ6gwc29QqJxWZgAMcBkqD1ugRxifgAoao8HKlS3Wiu8gZDt3c7TDaKw== 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-SenderADCheck; bh=3WHS4+y1MC7Wqkt3Mfoua9AgUjhNaCjxde6iAfwyUdE=; b=lVj7SX8zJT8EQBmYYKMsctMUnNLGcL7ViWOgSTEPHbONE64flNbyHvHySjnFUyt0RdTL8oyL8ODndHMDJy90Gp4PVI+ubRXW0fyBLXutnu2IWsxJFPtchOIdQTC95zwiMmswzsNTZcjH9eaDZ5jdty+jGo8VpfO4AUzua2RfpU5YYmc7vAIYHF+ME4xVTJMlEFtSNMCJY/NUtYjRUT8aj0BDrU5yZW7ZMy9lEWF0zHoJVhv6DyNmBfVqmueuZEXcq60w4pJC6Bh2dnjgpbGXTn88rkDVl11IZBGkTX0Q9WSU2Vmfu8p5YuTanpGHt/ckX02S1f6KP27HP4CUZhZjcQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none 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=3WHS4+y1MC7Wqkt3Mfoua9AgUjhNaCjxde6iAfwyUdE=; b=eZadvSKUQmRoopiE3X+PctVrVF8AxKdBuEMd3pB8s2sNb3E1hdt09jrVJUBY4tD2wcpmzcCD5hcmdhS+EzKtDVyAcLXRB4nBLxZJE27a1wcmzr1YCzHv66r0/DBH6ddIO8lrHmNqeR5qoS3UNOXxURuNfBdp4ZXchfUn8n3nVLL50fYVqEBn7nLtENStJMhHl4RmByxhyXz5lR7rhnTn2XGq6cxYfM9HhnB5QPhhplJYtz7+39NDVN+/2Gzw8MBPJkUyPZG0uj4odWOv7NweQCnUnkmU9dBRmnWY863JYPio/GNg13I2B8f58FYxqd37USdRP5JM6ztZe9a/o6PPhw== Received: from BN9PR03CA0551.namprd03.prod.outlook.com (2603:10b6:408:138::16) by MN2PR12MB4440.namprd12.prod.outlook.com (2603:10b6:208:26e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.33; Tue, 6 Jul 2021 13:33:38 +0000 Received: from BN8NAM11FT062.eop-nam11.prod.protection.outlook.com (2603:10b6:408:138:cafe::ab) by BN9PR03CA0551.outlook.office365.com (2603:10b6:408:138::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.23 via Frontend Transport; Tue, 6 Jul 2021 13:33:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by BN8NAM11FT062.mail.protection.outlook.com (10.13.177.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4287.22 via Frontend Transport; Tue, 6 Jul 2021 13:33:38 +0000 Received: from nvidia.com (172.20.187.6) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 6 Jul 2021 13:33:36 +0000 From: Suanming Mou To: , CC: , , Date: Tue, 6 Jul 2021 16:32:42 +0300 Message-ID: <20210706133257.3353-12-suanmingm@nvidia.com> X-Mailer: git-send-email 2.18.1 In-Reply-To: <20210706133257.3353-1-suanmingm@nvidia.com> References: <20210527093403.1153127-1-suanmingm@nvidia.com> <20210706133257.3353-1-suanmingm@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [172.20.187.6] X-ClientProxiedBy: HQMAIL101.nvidia.com (172.20.187.10) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 097c1fea-f46b-4e6b-dc7d-08d94082a9da X-MS-TrafficTypeDiagnostic: MN2PR12MB4440: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:249; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rPU3rvLrjUmwpNnLuAqhyMOMryVKo00qjR5kPRS5HF8Oyfw+JB1X+s2XAnzIptGrF9234iAnQL1FR69KU0cC9n+96RpJ42OT4r7EKQSOjdEGbfu8QVTghGCkdCblnjhPRdiZ69F4Bkjf7fawwj279WqhSIZ0oKI2VpAQqX3s3kv2fCV5QToZk3jip8Qb6RYDHdIkcTsCF6DBkGlPesxFoFhqBBCSreaoOWLTEmTfo5K4+HVONDhPLpncdpb2rn4gkIaNOkB8uSBWKomLHVofDdsdUokfq3XNkJSfu6rAht7KckK8RNxl/SBycI8i4w7h9vl8QVBl/uf7Rg5xw2mq1eAKbQIT+2dTtYdeOhuFqsPDdLUQEzp/hhU1sKl9lMm4so8lKwE4e3JAzf2EG5b7KBx1/TlnDL1vhWjpZtGFZ7Xm/OLyQ0oNxlEPlld/w192/lK+7VkKwf18IU6smuPO/o0vGBQOc58LfWt0/ws1bLaUrgwku0QfJ2juXtAYtRPeAmPpPM2h/FkiuH+mAoHWdQBc3yaI8IfE0uWeks3elY6viZNuvo2s39JLFecc39lRolaapw7fktB17IcbfyGWWhNhIyPAQOlwQcFJGVI3QwSN9MKbzd+ksMKnihoz7Hil15m2W2PwmdCjAzDkNuLY9B2XNmr3eiN47O6bshH60oR+a817ohsPTZpUji8PnZs9MxW7D+bZSvBCD4RjgjCmiw== X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(136003)(39860400002)(396003)(346002)(376002)(46966006)(36840700001)(2906002)(16526019)(55016002)(1076003)(82740400003)(426003)(316002)(36756003)(7696005)(47076005)(5660300002)(4326008)(83380400001)(8676002)(356005)(70586007)(26005)(6666004)(36906005)(2616005)(82310400003)(36860700001)(54906003)(6636002)(8936002)(6286002)(478600001)(336012)(86362001)(70206006)(110136005)(7636003)(186003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2021 13:33:38.7455 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 097c1fea-f46b-4e6b-dc7d-08d94082a9da X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT062.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4440 Subject: [dpdk-dev] [PATCH v4 11/26] net/mlx5: relax the list utility atomic operations 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 Sender: "dev" From: Matan Azrad The atomic operation in the list utility no need a barriers because the critical part are managed by RW lock. Relax them. Signed-off-by: Matan Azrad Acked-by: Suanming Mou --- drivers/net/mlx5/mlx5_utils.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/mlx5_utils.c b/drivers/net/mlx5/mlx5_utils.c index 13c7dbe1c2..daecf37575 100644 --- a/drivers/net/mlx5/mlx5_utils.c +++ b/drivers/net/mlx5/mlx5_utils.c @@ -50,13 +50,13 @@ __list_lookup(struct mlx5_list *list, int lcore_index, void *ctx, bool reuse) if (list->cb_match(list, entry, ctx) == 0) { if (reuse) { ret = __atomic_add_fetch(&entry->ref_cnt, 1, - __ATOMIC_ACQUIRE) - 1; + __ATOMIC_RELAXED) - 1; DRV_LOG(DEBUG, "mlx5 list %s entry %p ref: %u.", list->name, (void *)entry, entry->ref_cnt); } else if (lcore_index < RTE_MAX_LCORE) { ret = __atomic_load_n(&entry->ref_cnt, - __ATOMIC_ACQUIRE); + __ATOMIC_RELAXED); } if (likely(ret != 0 || lcore_index == RTE_MAX_LCORE)) return entry; @@ -181,7 +181,7 @@ mlx5_list_register(struct mlx5_list *list, void *ctx) list->gen_cnt++; rte_rwlock_write_unlock(&list->lock); LIST_INSERT_HEAD(&list->cache[lcore_index].h, local_entry, next); - __atomic_add_fetch(&list->count, 1, __ATOMIC_ACQUIRE); + __atomic_add_fetch(&list->count, 1, __ATOMIC_RELAXED); DRV_LOG(DEBUG, "mlx5 list %s entry %p new: %u.", list->name, (void *)entry, entry->ref_cnt); return local_entry; @@ -194,7 +194,7 @@ mlx5_list_unregister(struct mlx5_list *list, struct mlx5_list_entry *gentry = entry->gentry; int lcore_idx; - if (__atomic_sub_fetch(&entry->ref_cnt, 1, __ATOMIC_ACQUIRE) != 0) + if (__atomic_sub_fetch(&entry->ref_cnt, 1, __ATOMIC_RELAXED) != 0) return 1; lcore_idx = rte_lcore_index(rte_lcore_id()); MLX5_ASSERT(lcore_idx < RTE_MAX_LCORE); @@ -207,14 +207,14 @@ mlx5_list_unregister(struct mlx5_list *list, } else { return 0; } - if (__atomic_sub_fetch(&gentry->ref_cnt, 1, __ATOMIC_ACQUIRE) != 0) + if (__atomic_sub_fetch(&gentry->ref_cnt, 1, __ATOMIC_RELAXED) != 0) return 1; rte_rwlock_write_lock(&list->lock); if (likely(gentry->ref_cnt == 0)) { LIST_REMOVE(gentry, next); rte_rwlock_write_unlock(&list->lock); list->cb_remove(list, gentry); - __atomic_sub_fetch(&list->count, 1, __ATOMIC_ACQUIRE); + __atomic_sub_fetch(&list->count, 1, __ATOMIC_RELAXED); DRV_LOG(DEBUG, "mlx5 list %s entry %p removed.", list->name, (void *)gentry); return 0;