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 80869A00C2; Wed, 2 Nov 2022 15:25:56 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 29B884069C; Wed, 2 Nov 2022 15:25:56 +0100 (CET) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2053.outbound.protection.outlook.com [40.107.237.53]) by mails.dpdk.org (Postfix) with ESMTP id 80A9440041; Wed, 2 Nov 2022 15:25:54 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BAnxnvYkizDMmCuPYjeOw7Zf24SIXYaPrTKnf3yxbGRST6H1fvhvZRaGyPx96/wKfrNF4bYeXbhHn33sQSKauWDUbcz4guphwaBPRxvSPVjyOZm4P7T7I2bY7Y6S2I93vFNpXx2Z+PHlPBcugtgpw8zZF3H6KBA/fqPR+v6msG3G2RbfqXiaYj0vPA8MnIFGDZMQrRglYmRB/6K4n1M5q0ISLU9Pxy0nFhpGPanjQQh9EPPMEoCv1g6pIsJ1VQAfLL15KiW9WdT8y2mQuPHfMJcMA2FaA+WsxrWom3+E7ig795QTEXLaYJQPwOwsJZ0gLd9PqvIU3yNPR8x7zg120w== 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=cjE5xidO7imtPduGpACK330q9BEIbsBBQzg44oIXkD8=; b=EUJJm0jEII/5wVDZeV3MLrhIpUDUwqIRo70wBG7p3We7I0QiQsHYVL3nreUWh2mFc3K6tNKNbqfMcF9foPu97JTI+ZWmd2LYfX7YsscCOoyfkvARs0vzXZyTEgNjEyvQo7d9+48kpPzJAb+k33zeYW98rxxCFkxQ5JKugbv3AQtMdRNYZTaPWBqzFSz5qfiagQR2TBSfbldEo9RxLqTvrGOrK2CY2Fe+ZkbEV4id0cFkYuPGaEox0YSbLlOftmibpJjCROMRFUjHjkHhd2WjbFFUedHbOHSGzMCDWY1CQFZssB2jvNn08HX9ok3vBmpwlrOosfWJliK7Ciu9cJhm2Q== 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 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=cjE5xidO7imtPduGpACK330q9BEIbsBBQzg44oIXkD8=; b=itedYXmy3A4FulKrqLepvv8yeYKW3UR2mozHuS0+z0vy236OZGv98o4CdAyyP19eKgY0fCMwg5i6uG0xCSRkV6RPzxRLjUlP0HgWO+G5s8uc/BqIOG1ivfUrP7eCMErMj4aDn27gcWTbc+CiYDGDrau2n/XlUGVQHdGNU0wojbvmmPkTEEobd2kcMWmmXK8VfKWSljHzqgT9H/vHSlkPhQAJgCecUdbYdZaCrK/JVZZM3xQSJCcEpR/5CuCe2NBCYJ6+r63UqIY+0C7Y3Sv28M1cwvjfOgpSrz1VsIeuYYaNn5Z2iL468v9qcLHxp8pVWYesXt/zNisCroxTBc2ysQ== Received: from DS7PR03CA0334.namprd03.prod.outlook.com (2603:10b6:8:55::11) by BL1PR12MB5898.namprd12.prod.outlook.com (2603:10b6:208:396::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.15; Wed, 2 Nov 2022 14:25:52 +0000 Received: from DM6NAM11FT019.eop-nam11.prod.protection.outlook.com (2603:10b6:8:55:cafe::e1) by DS7PR03CA0334.outlook.office365.com (2603:10b6:8:55::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.22 via Frontend Transport; Wed, 2 Nov 2022 14:25:51 +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 DM6NAM11FT019.mail.protection.outlook.com (10.13.172.172) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.20 via Frontend Transport; Wed, 2 Nov 2022 14:25:51 +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.986.26; Wed, 2 Nov 2022 07:25:41 -0700 Received: from pegasus01.mtr.labs.mlnx (10.126.230.35) 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.986.29; Wed, 2 Nov 2022 07:25:39 -0700 From: Alexander Kozyrev To: CC: , , , , Subject: [PATCH] net/mlx5: fix shared Rx queue config reuse Date: Wed, 2 Nov 2022 16:25:00 +0200 Message-ID: <20221102142500.1731495-1-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM6NAM11FT019:EE_|BL1PR12MB5898:EE_ X-MS-Office365-Filtering-Correlation-Id: 7c4d9af1-1483-4048-eff7-08dabcde2511 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hchq+L44ewtdIixOtohbgrIMm40NpC+xplO8du5HHo8SsGHrbvnv+Kmug3NK6daOYFsNriJCLB1Qqs0w7D9inBp746pGU/Wz4Khj4btt3bU4N0WdRD5TN/Z27aUB8a/CV9E4WV0vUts5scFshrrQl/IimqMxu8v0SDLYEg9z+Eh3/vitzvikwe/F+JIxR14fMp7Z3SWHlbms7Pj20DQ1Euc8AZNcqT8bFp5u8K850r06CUqMBEfyj3T3MgdlvWQBCy8qYcjB5TlRmVvSXUH+FP+tGOTLxmD8U2hqmwJlmAZFrFN01VxDEnGYsKN8yY0nPvLHiFi/xEGMRhjZt6T8hw6R2Eo/KsQlz81vnTN6/69pm+HXOq9ETpyeCd+i8Sgmo6HnPYdNxfmb1XcX0QfpZSeyn7Ovsi7T4kjd67/7DcB0WmB7FDcrOwqZ080JVE2/20Qir+fgv6L0pT9/KU91pWEQo8yNu6JeTLePOUAZDWQVka+PxOcnD3O5FN7nkPUddRUlWZyW4Q/Z8X8JRO2CWojwkFzrQTx4OBIe4Sr8OwFLaIzfqHrtIC95dCDotX6XUWU3b8icAvF0w3iZwALbOFRCgyssQeOmhTSIyfP2G3ZAotU4jSqdnAXyc3Bd2UlcExvZQNRXrqLjo78GFzTbr0ANq9p8onStqV6T1v46kieIlnA+nrdxHs5iVm1UpDAb6vPn0+0q0Gmjg+DwQCUSETj81aP1UmKohWyH6RuYgDJcsNIEsQWcoVX7MfEMMkyb0mvKkMxbMni8FYsxm1tPBw== 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:(13230022)(4636009)(346002)(376002)(136003)(39860400002)(396003)(451199015)(40470700004)(46966006)(36840700001)(36756003)(40480700001)(107886003)(47076005)(36860700001)(70586007)(5660300002)(82740400003)(7636003)(356005)(2906002)(83380400001)(426003)(86362001)(336012)(478600001)(316002)(186003)(16526019)(26005)(450100002)(54906003)(6916009)(41300700001)(40460700003)(8936002)(70206006)(2616005)(4326008)(6666004)(8676002)(82310400005)(1076003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Nov 2022 14:25:51.5478 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7c4d9af1-1483-4048-eff7-08dabcde2511 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: DM6NAM11FT019.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5898 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 There is a check for the configuration match between all the Rx queues shared among multiple ports in DPDK. This check ensures that the configuration is the same. The issue is this check takes place before the queue is released and configured again in case of reconfiguration. That leads to checking against the old configuration and preventing the shared Rx queue to start properly. Release the old configuration and prepare a new Rx queue before checking that its parameters match the config. Fixes: 09c2555303 ("net/mlx5: support shared Rx queue") Signed-off-by: Alexander Kozyrev --- drivers/net/mlx5/mlx5_rxq.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c index b7818f9598..0d9d11680b 100644 --- a/drivers/net/mlx5/mlx5_rxq.c +++ b/drivers/net/mlx5/mlx5_rxq.c @@ -902,16 +902,20 @@ mlx5_rx_queue_setup(struct rte_eth_dev *dev, uint16_t idx, uint16_t desc, /* Try to reuse shared RXQ. */ rxq_ctrl = mlx5_shared_rxq_get(dev, conf->share_group, conf->share_qid); + res = mlx5_rx_queue_pre_setup(dev, idx, &desc, &rxq_ctrl); + if (res) + return res; if (rxq_ctrl != NULL && !mlx5_shared_rxq_match(rxq_ctrl, dev, idx, desc, socket, conf, mp)) { rte_errno = EINVAL; return -rte_errno; } + } else { + res = mlx5_rx_queue_pre_setup(dev, idx, &desc, &rxq_ctrl); + if (res) + return res; } - res = mlx5_rx_queue_pre_setup(dev, idx, &desc, &rxq_ctrl); - if (res) - return res; /* Allocate RXQ. */ rxq = mlx5_malloc(MLX5_MEM_RTE | MLX5_MEM_ZERO, sizeof(*rxq), 0, SOCKET_ID_ANY); -- 2.18.2