From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7013B44172; Thu, 6 Jun 2024 11:56:16 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1AED6410FA; Thu, 6 Jun 2024 11:56:09 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2040.outbound.protection.outlook.com [40.107.223.40]) by mails.dpdk.org (Postfix) with ESMTP id B342140EDC for ; Thu, 6 Jun 2024 11:56:06 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gOHwmDHM7HTd+P9UIRhv12ty6jZGab4Xf81urJm92P9FNvy5pIYQaN5/GpDiQK0Rp32Hb3d426Ao6J2i8aP/9nRfk/WrlvU3mCuv4boxJUAj/GGA11ZFmUyaY+VObcOQ9dbsOg8KV9YRRYIsjvDF0fzDHBxVQ9ZpfLyFrDaJkmzX5T6lRiu5iY1mL3VRb064ew9LDC80EbEjs3+ry/EO42Th3OYvYxIWD81bNQgI2ddP33qqM5SQAws6PAm5hUiIPjsZEq8yciwnscY6tOTltY4OaqFTvFqXAvgQLRBeNBc0JCzR/QvuIsZvTt8v4P3lYrcSbZMNtII7qJGq9vH5Zg== 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=3vdecOTZI7agbYWRNCutszlHGH8PbbYMvDNsww601+4=; b=KUsQwU3WIr5GpUgUgVf6HWX+8ySvrUEak3C+MtdTH5vT36UkasWXOc7MgOHjcLNJrH8kdIVpDQ33rBKD/HE9R0+qow71gXNg8kZGwe4SUjXkl8rkqyB3qeuGFEkbTPlKfPI7StOiZPf/YByVRdTKeiERd9bxc74Y/M0bvHJZK22STIs1759ki4v5qTvbcrLIYm9klyOyeLdJ/8+8+csPKbMuxxnFX+J6z11d8XwzXRiBjZBFGwm2LyreiLFBD6BO6g85sNdlUrcMw9XKrPrlIT/9RsPazLZ43Hz3N3DGjtNe+iXXBz1qhclR40g7hvnZZQLB0ya+6cjPQuYHqXau7w== 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=3vdecOTZI7agbYWRNCutszlHGH8PbbYMvDNsww601+4=; b=oXXTmPln/dk8ypjOzg6TJDZeO8fSv/r2BerzE27SJ0wuUb/nthn5phx3CcS4iqRLJez7tBZOImJ0vzOu9GpB7vbES6ClzUk7IqyH5KO5h1OFS1q821nZqA4bzFJ1z9iOZjnQn+9ddaBGgJI+xLYpNgwOKaOPGuegicBvZ8hmeEZcyof3AS0TCiWQCfbopK42PPumioWoCrEsLfpBsUkz8nCYX6bFKJg3/VyTqw8W0HZtKBn8wMQI9d1csy6c7uJNYcET2zFS8vk5szdc+qCJ5H0cUc+3H/pvuRyOOkAMbdccXcKN6eNuPADYRY2QpDikUmZk8EfWAjIhgklfWZtXSQ== Received: from CH0PR13CA0038.namprd13.prod.outlook.com (2603:10b6:610:b2::13) by CH3PR12MB7713.namprd12.prod.outlook.com (2603:10b6:610:14d::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.34; Thu, 6 Jun 2024 09:56:03 +0000 Received: from CH1PEPF0000A34B.namprd04.prod.outlook.com (2603:10b6:610:b2:cafe::c7) by CH0PR13CA0038.outlook.office365.com (2603:10b6:610:b2::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7656.19 via Frontend Transport; Thu, 6 Jun 2024 09:56: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 CH1PEPF0000A34B.mail.protection.outlook.com (10.167.244.10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.15 via Frontend Transport; Thu, 6 Jun 2024 09:56:03 +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.1544.4; Thu, 6 Jun 2024 02:55:48 -0700 Received: from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Thu, 6 Jun 2024 02:55:48 -0700 Received: from nvidia.com (10.127.8.14) by mail.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4 via Frontend Transport; Thu, 6 Jun 2024 02:55:45 -0700 From: Maayan Kashani To: CC: , , , Yevgeny Kliteynik , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , Matan Azrad Subject: [PATCH v4 4/7] net/mlx5/hws: bwc - abort rehash on completion with error Date: Thu, 6 Jun 2024 12:55:12 +0300 Message-ID: <20240606095515.171170-5-mkashani@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20240606095515.171170-1-mkashani@nvidia.com> References: <20240603105635.11124-1-mkashani@nvidia.com> <20240606095515.171170-1-mkashani@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH1PEPF0000A34B:EE_|CH3PR12MB7713:EE_ X-MS-Office365-Filtering-Correlation-Id: cf8e3d5b-cc79-4d2e-d687-08dc860ee07c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230031|82310400017|36860700004|1800799015|376005; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wwlZQh6EwTqwwutprRpV4IC0Bv/Cmm27Cb+ChTcBxMNZUC8BRVnDhe5Gv5B2?= =?us-ascii?Q?Z3WSF4cogUFr0nK6Xu2qED1ZvIWb6YkzSJTGCiGRn+148m4dcTk0T3ycbmsP?= =?us-ascii?Q?YiRhCmORq9hTc4p4hGH4RO/IJzUhB2icd45BLu4/yQXUQRgoC+P24BrwirSM?= =?us-ascii?Q?0hzVVRiQq7qxdZCJ8CE2Jo1cOzrFzmkpbgN4VkuZo3+1eM0766Ud9SR7Bsh0?= =?us-ascii?Q?s+Nj7+4+4SKBGyZWaAm0c2i118boLG7J1EiHCumh9T4mLdgybU85QZByNdzU?= =?us-ascii?Q?T2T5/W8bWFGGE9A22IX6knkvkS/RBISGPWswk/l5qG23oI+OQS81pUlDCQ6k?= =?us-ascii?Q?DQocG38/40x/HDiH3R7Rz5F+6mww2YWq+H1vYtCO02hf4iMLYUDQmL5cLw6Y?= =?us-ascii?Q?xGX9HmBw2CoFh56hluP2gT2Xo5DLthBrzKRdKwT7S90zr4T7/w/peFwm+wXE?= =?us-ascii?Q?D4dFrUScyza3jgIr5Owe6RdhBPbu0+UMwYtrIOGZZE8aHRGrmICA5rJWXVeK?= =?us-ascii?Q?QePdNL4X0vaaN8yEhL9gjpA+yfKDTOARmw/6/GExDQgEd+EKAAaHxp5ftyPW?= =?us-ascii?Q?Y8BcwRBn1k8UI6JaUHlPz0yut7OaILP+Gcl2GGQhGbfdplXIYZNaPfD5+Kv5?= =?us-ascii?Q?f1lbmGsajZu9UJHz6P0r2HH++goaze2ommDVFn7NNI/3S7JdgFybmW1l930h?= =?us-ascii?Q?WfdIa3jY9yxoH+Gw6YGemsdHSxRK7ALH+/EfsY3LqIHyYkdHIKllu18OBva4?= =?us-ascii?Q?h2yfB3Jotr//KRmXGIrId+i0+1zhUS68Z0REFVVXmAzUiWNeiFOIIJix1WYz?= =?us-ascii?Q?Ms2zjNGLDt8mUpiS/pF73dlew7Ee+nCy46o++pwEiulJWnkPxxxCbr8YT/m5?= =?us-ascii?Q?7FpmGlbe3InSOc/CPaw9B17iU+NsJ6TaVIf/35gjYJ3nH0mgL/3cI2hYcRoU?= =?us-ascii?Q?kn7EsWYfaRdbk6BhNYu4rMq2n5g91oW/PvgfI2K2q3JQOoLf9rZLoEtoUuV5?= =?us-ascii?Q?Bc4lJfyFJDFv6ucN+HwWUPj2NAH14X1VKpNhGXBoU9n1597zcYc7mgUiIWv6?= =?us-ascii?Q?3C3DI2aiXR+QT7zK9UYV5nSMsWwwxRNSCoBor7/Ux0UgIU93VCKVKMVohGBL?= =?us-ascii?Q?FXOVcolitOw25YMsglV6T51C9u22Xb5gmQFscJpteXsSiNRjT2Nvmd1grfTt?= =?us-ascii?Q?w7YfRz7xT6+mF7PfGBnPfKoOF2WE1hWg7wqELUtRmHVr+ZcWK+4S1Fyo4As2?= =?us-ascii?Q?bi2lGKAcm7h+p42ABMujtvyHAEhL6Q6S7E3if1djKYF82j5CWZc8jqQDvCpO?= =?us-ascii?Q?p4RC9WzDCI672XHC83g1T1o9GqseoYi04egGY8tl6f719rivdwgICCvHJgaS?= =?us-ascii?Q?zGPFLLoc19MqQGt5SznKI+Tb41K6hVE0w943cHJ0NNQ1seGmow=3D=3D?= 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)(82310400017)(36860700004)(1800799015)(376005); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jun 2024 09:56:03.1990 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: cf8e3d5b-cc79-4d2e-d687-08dc860ee07c 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: CH1PEPF0000A34B.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7713 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 From: Yevgeny Kliteynik If during rehash there is a completion with error on moving rule to a new matcher, abort the rehash and return error. Signed-off-by: Yevgeny Kliteynik Acked-by: Dariusz Sosnowski --- drivers/net/mlx5/hws/mlx5dr_bwc.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/drivers/net/mlx5/hws/mlx5dr_bwc.c b/drivers/net/mlx5/hws/mlx5dr_bwc.c index 8a8a143f17..e0b6390ed9 100644 --- a/drivers/net/mlx5/hws/mlx5dr_bwc.c +++ b/drivers/net/mlx5/hws/mlx5dr_bwc.c @@ -185,6 +185,7 @@ mlx5dr_bwc_queue_poll(struct mlx5dr_context *ctx, struct rte_flow_op_result comp[MLX5DR_BWC_MATCHER_REHASH_BURST_TH]; uint16_t burst_th = mlx5dr_bwc_get_burst_th(ctx, queue_id); bool got_comp = *pending_rules >= burst_th; + int err = 0; int ret; int i; @@ -203,10 +204,12 @@ mlx5dr_bwc_queue_poll(struct mlx5dr_context *ctx, if (ret) { (*pending_rules) -= ret; for (i = 0; i < ret; i++) { - if (unlikely(comp[i].status != RTE_FLOW_OP_SUCCESS)) + if (unlikely(comp[i].status != RTE_FLOW_OP_SUCCESS)) { DR_LOG(ERR, "Rehash error: polling queue %d returned completion with error\n", queue_id); + err = -EINVAL; + } } queue_full = false; } @@ -214,7 +217,7 @@ mlx5dr_bwc_queue_poll(struct mlx5dr_context *ctx, got_comp = !!ret; } - return 0; + return err; } static void @@ -632,7 +635,7 @@ mlx5dr_bwc_matcher_move_all(struct mlx5dr_bwc_matcher *bwc_matcher) ret = mlx5dr_matcher_resize_rule_move(bwc_matcher->matcher, bwc_rules[i]->rule, &rule_attr); - if (ret) { + if (unlikely(ret)) { DR_LOG(ERR, "Moving BWC rule failed during rehash - %d", ret); rte_errno = ENOMEM; @@ -643,8 +646,12 @@ mlx5dr_bwc_matcher_move_all(struct mlx5dr_bwc_matcher *bwc_matcher) pending_rules[i]++; bwc_rules[i] = LIST_NEXT(bwc_rules[i], next); - mlx5dr_bwc_queue_poll(ctx, rule_attr.queue_id, - &pending_rules[i], false); + ret = mlx5dr_bwc_queue_poll(ctx, rule_attr.queue_id, + &pending_rules[i], false); + if (unlikely(ret)) { + rte_errno = EINVAL; + goto free_bwc_rules; + } } } } while (!all_done); @@ -654,8 +661,12 @@ mlx5dr_bwc_matcher_move_all(struct mlx5dr_bwc_matcher *bwc_matcher) if (pending_rules[i]) { uint16_t queue_id = mlx5dr_bwc_get_queue_id(ctx, i); mlx5dr_send_engine_flush_queue(&ctx->send_queue[queue_id]); - mlx5dr_bwc_queue_poll(ctx, queue_id, - &pending_rules[i], true); + ret = mlx5dr_bwc_queue_poll(ctx, queue_id, + &pending_rules[i], true); + if (unlikely(ret)) { + rte_errno = EINVAL; + goto free_bwc_rules; + } } } -- 2.21.0