From patchwork Mon Jan 15 12:13:26 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Baum X-Patchwork-Id: 135878 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 D17B6438CE; Mon, 15 Jan 2024 13:13:49 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9B77940647; Mon, 15 Jan 2024 13:13:49 +0100 (CET) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2045.outbound.protection.outlook.com [40.107.223.45]) by mails.dpdk.org (Postfix) with ESMTP id 51C2F402C9; Mon, 15 Jan 2024 13:13:48 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jT8LF8e6REOtP5g5p4+mw8sNCXBUrCJMKGXxS6zHya6o247aTXjbdlLlJX09Bg1LZdvTWY/pmqThMfb8MHdBIKQGmex8z7h1Ky5xY0B8tB6kQHX98Y4NVBGbF/rbgV3C9vKaN1RVMzXJ1bxg7ZiEnc6JHUXWPQ3wPXXEIoGGYe2JEgn9EmgYU1jePxoKlxGLp2qgN0AGa6lGB6QOMOZtEcnNZ480e5/SsFq6JkRQB5+kgO9ZtDD+2sRC1sVvVq/i7Z2lps3y1uO9TmHHf5R5ZBOsLgTKBpheDjh+nkjOSIM9M0Ctjb7VS++gay5PpTKeigSwFxrflqIuhvvWXZ+GWw== 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=KnkRsI7SRYjfUgZDKgjawpf1FgzoascK1wZmihkmGcc=; b=PI9NlXlyPCxKJfytPm2jHj/nGdEpTfiwDrHtCyqXNkBsIeeFSx41FB4EeY5jENRJPh0oc4kerMf9O8ABe2Hf03nxeuVRw9zn+wqlfynFjF1aMGW5FtNc/Jwv0Dt5ELC7vUYb4h55Nk0eA2qhAY0P1WJXRKy72AHIRAE15uz7wqwgNi1BzpedMZ5k30S+d/Tcj57vJJRuH0NeyfT7Jh46cOFn7/nQafzDuu0rtR/3WAnFQVzOSMux8KAGJGStsZhR6zSOWevfp2Oywn434kn7g3+7kB+ktpFBaldt9fFSPgWNjYK8WEa4qJa9cWgUOKugfXLKs2d6RvqysDji5DQwtw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) 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=KnkRsI7SRYjfUgZDKgjawpf1FgzoascK1wZmihkmGcc=; b=DBFztbX9lJIptEvwFGlvHub52IWFoXQQgcBb3LUoz+rOAN/6xwegOsfvBuG0JcYaaQbYl0k/vNbXuYzda1etgp0YhQKQixIua2y/PfmWdDaJ94KUtQL7KLFW4yCQD4gQoyjZOnwdh0CMRMiFZkDOnyCdJ7b1x7GNc2C9SjexDvpL+jntvjpkEdlT7p/Wy7tvvJMjrw5yy2wTs1PD7x1IyaKDC2extYPaDQXDpqONQRm53x7cIx/0lHMpjnA4TeANYTX4aXviEWscWFuIrmp8mlqgDqOOCiEPlXunwWAQecvdOnycpZV5jtsSDikm+wq+SzPHy/POQcflobRivPw1zA== Received: from DS7PR03CA0048.namprd03.prod.outlook.com (2603:10b6:5:3b5::23) by IA1PR12MB6435.namprd12.prod.outlook.com (2603:10b6:208:3ad::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.17; Mon, 15 Jan 2024 12:13:44 +0000 Received: from DS3PEPF000099D4.namprd04.prod.outlook.com (2603:10b6:5:3b5:cafe::2b) by DS7PR03CA0048.outlook.office365.com (2603:10b6:5:3b5::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.26 via Frontend Transport; Mon, 15 Jan 2024 12:13:44 +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 DS3PEPF000099D4.mail.protection.outlook.com (10.167.17.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7202.16 via Frontend Transport; Mon, 15 Jan 2024 12:13:44 +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.986.41; Mon, 15 Jan 2024 04:13:34 -0800 Received: from rnnvmail203.nvidia.com (10.129.68.9) 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.986.41; Mon, 15 Jan 2024 04:13:33 -0800 Received: from nvidia.com (10.127.8.13) 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.986.41 via Frontend Transport; Mon, 15 Jan 2024 04:13:31 -0800 From: Michael Baum To: CC: Matan Azrad , Dariusz Sosnowski , Raslan Darawsheh , Viacheslav Ovsiienko , Ori Kam , Suanming Mou , , Subject: [PATCH] net/mlx5: fix GENEVE TLV option management Date: Mon, 15 Jan 2024 14:13:26 +0200 Message-ID: <20240115121326.3994845-1-michaelba@nvidia.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF000099D4:EE_|IA1PR12MB6435:EE_ X-MS-Office365-Filtering-Correlation-Id: c58de1b7-6af5-4e39-e371-08dc15c36b97 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SjnHzSXe1XnYihAJHH+C9jsVIU1nWDI5JwTr5wvjw4PSwDD64ZTyc6ixRIHUMSsClZdvsxAYYXvobajmrljCBYUltx7IRUqpoVK3EZVudoL71igYbobarPdeUwyBgd/TvJWDM6nqDtnP9f8u8WyVs2NnfNz6vuHG8RKhlKfcPxcDyTmgkN7rTkxhnFjexiiDKyFGwrtOngLmrGKQh+GXOgyp7xcAz13ACBFS5zWhvmvQiN2QOJdbFBugHE2J7YgsD5M+5TBTAUGNrcZga16uSsIXYksdps7oqW/nbbU4QP2nCsMgNYImYBZZf/I6lps25FVVLOkyxV+eJuW7ogwxQyxdEWHudEn0WWesboHN8HWP/BzmfWOKH4T9mOjdXVx4FRdaQv/1aLN/PiMAxa/4iD4M5we0NRU51nvlpZzutHSF3TyR66ExW0EESHfFrp28dEMp356xm9gTcuDM6Fa1+z7SuijTeWLpVuB5GkXpqNyTPSXLTFZWALGD/nmOAG2gmomh/HqfIBJLaaTBkQHgS0KcSIjcjF+mC+6maYampfgC0rk4ttZBEsHpV/z4VBy3O0CuvipAAmgjz7Q35plknskspqP+skTA2HSEWh15YA7U7BSZEi1UEc/Nb3s1h/oG4R9l1g/FM0GjhCHQbxxPXwOcis5UEOtiX+SNEIwYfXKA5xTp9T5/ZaWccCKR3doTGfZnrrqLmglqm+rKVkjyC/WHg0jUNeS+FBoBtiK5XYUNR3XHLCqnJQCZh9Wpob9Z 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:(13230031)(4636009)(396003)(376002)(346002)(136003)(39860400002)(230922051799003)(1800799012)(82310400011)(64100799003)(451199024)(186009)(46966006)(40470700004)(36840700001)(55016003)(40480700001)(40460700003)(6286002)(4326008)(450100002)(70586007)(5660300002)(336012)(6916009)(478600001)(70206006)(7696005)(6666004)(8676002)(1076003)(8936002)(426003)(82740400003)(83380400001)(2616005)(26005)(36860700001)(316002)(356005)(7636003)(54906003)(36756003)(41300700001)(86362001)(47076005)(2906002); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2024 12:13:44.6283 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c58de1b7-6af5-4e39-e371-08dc15c36b97 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: DS3PEPF000099D4.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6435 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 In SW steering, the GENEVE TLV option matching flows must be created using a translation function. This function checks whether this option has already created a DevX object for the matching and either creates the objects or updates the reference counter. After translation, a flag in flow structure is turned on indicating the destroy function to release this DevX object. When the flow rule has meter, the rule may be split, and call translate function more than once per flow causing object reference counter to increase each time without updating the flow flag accordingly. This patch uses this flag as a reference counter which is increased every translation and indicates the destroy function how many destroy DevX to do. Fixes: f15f0c3806d0 ("net/mlx5: create GENEVE TLV option management") Fixes: e440d6cf589e ("net/mlx5: add GENEVE TLV option flow translation") Cc: shirik@nvidia.com Cc: stable@dpdk.org Signed-off-by: Michael Baum Acked-by: Matan Azrad --- drivers/net/mlx5/mlx5_flow_dv.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 97f55003c3..7cc1729145 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -14318,7 +14318,7 @@ flow_dv_translate_items_sws(struct rte_eth_dev *dev, * Avoid be overwritten by other sub mlx5_flows. */ if (wks.geneve_tlv_option) - dev_flow->flow->geneve_tlv_option = wks.geneve_tlv_option; + dev_flow->flow->geneve_tlv_option += wks.geneve_tlv_option; return 0; } @@ -15922,9 +15922,9 @@ flow_dv_destroy(struct rte_eth_dev *dev, struct rte_flow *flow) flow_dv_aso_ct_release(dev, flow->ct, NULL); else if (flow->age) flow_dv_aso_age_release(dev, flow->age); - if (flow->geneve_tlv_option) { + while (flow->geneve_tlv_option) { flow_dev_geneve_tlv_option_resource_release(priv->sh); - flow->geneve_tlv_option = 0; + flow->geneve_tlv_option--; } while (flow->dev_handles) { uint32_t tmp_idx = flow->dev_handles;