From patchwork Tue Aug 8 11:32:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yajun Wu X-Patchwork-Id: 129943 X-Patchwork-Delegate: maxime.coquelin@redhat.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 9DB1C4300B; Tue, 8 Aug 2023 13:33:09 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C50DF43252; Tue, 8 Aug 2023 13:33:08 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2076.outbound.protection.outlook.com [40.107.92.76]) by mails.dpdk.org (Postfix) with ESMTP id 869BD40A87; Tue, 8 Aug 2023 13:33:07 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QCwYJnbxI84YosnbBpWpX4RhQkG/uG0++qTMLRH9FLp/EoVR4obY+KqoUD73DM6L1f32hezwTWEzmoANcVY/wkFMdE1JxUg+9ECRQU/MPWFkueeNDfn0TtOzJw9sOz2SFpHFoLIrweK6s0+6LDEvwgj1k8XGDpCLC8OX3TQnw2a40m2b0+12nXHulbT9N367nBFu5IoAw40o5cUQqvY6gvkwQKpI+VaBI2u5JGjJ4C0IADhUDKMnMyUrObkZ01hDVslTKSujO461F37BWyYqKtOlE3haESYZ5gEV7V1A3Xjr9WDjsbsQ/jnFV7IgBT3A1JhALTDLV1IN8O3piXl2iQ== 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=ilhw4ZJstWlaOlhF+2sDq14YtEO0nfNqiyzC3F0l/pk=; b=BkpS3mMC5rZZG74Z7bKcs9zDr3H16STDPHtEsSAESO0mpMz91kyeDyi1v7EIbIWg0iXClv9Ef0QkA8j+9CwtsTsk+zz3yTOTQIjVtDnGae409R5ihd4EIKsalioxWX+ny27M4RJ+XORWVNZj+squnbJOEdqBfCEwxApgKUHBCSBC/KTIBkaH7PMOUr34TCJ5FlTkWHprcsCFA2CFi0QGTE4iATNOg9uUFqSkXPPJp9dbT0NCjbMi6YWq0DwGYY9Lvam8QdmflbCBzq9WuLpEoSumZx2Kz7nxDDQoDDJ9fnfEmoYp2fPZ3Ok43Vu82HlKlWoeeFu+zKpfCVS7jM9wug== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=redhat.com 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=ilhw4ZJstWlaOlhF+2sDq14YtEO0nfNqiyzC3F0l/pk=; b=if89yZKcymudg/JMPgvSGZS7GwHt2Egw9biPuMi3F35HbfC6d1wgj1nUQ9WedsHhW7+q/AhrgpJFLxegi1c2kcxo4LUfbJNulBvv5MzGKJguIodmj9VZjJ0RpQ5xjoKqjNAzkmncsczAu9Bb53HQ82gv0a8zdvLio1ZHhjYTG9xBV2ai39iYjMylHf+z/1MMjJSLR7+kOYso5vB+hIhBcJ9OYbNK6RFdeJT7AmcYVmyV6W0RIfXUWs1q9yPRNm47kKPUPvqJDP+iRlOL57EHpD9VH4eeygvuvYeIIizI/qkcPkQIIz2qB568B/fPG/piy0W/V/tapwoS3e1RKiza/A== Received: from DS7PR03CA0186.namprd03.prod.outlook.com (2603:10b6:5:3b6::11) by CY5PR12MB6384.namprd12.prod.outlook.com (2603:10b6:930:3c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.27; Tue, 8 Aug 2023 11:33:05 +0000 Received: from CY4PEPF0000EDD5.namprd03.prod.outlook.com (2603:10b6:5:3b6:cafe::56) by DS7PR03CA0186.outlook.office365.com (2603:10b6:5:3b6::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.27 via Frontend Transport; Tue, 8 Aug 2023 11:33:05 +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 CY4PEPF0000EDD5.mail.protection.outlook.com (10.167.241.209) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.19 via Frontend Transport; Tue, 8 Aug 2023 11:33:05 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) 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.5; Tue, 8 Aug 2023 04:32:53 -0700 Received: from nvidia.com (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.37; Tue, 8 Aug 2023 04:32:50 -0700 From: Yajun Wu To: , Viacheslav Ovsiienko , "Maxime Coquelin" , Li Zhang CC: , , , , Subject: [PATCH] vdpa/mlx5: fix unregister kick handler order Date: Tue, 8 Aug 2023 19:32:21 +0800 Message-ID: <20230808113221.227319-1-yajunw@nvidia.com> X-Mailer: git-send-email 2.27.0 MIME-Version: 1.0 X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PEPF0000EDD5:EE_|CY5PR12MB6384:EE_ X-MS-Office365-Filtering-Correlation-Id: 19ee28be-4dd6-44b8-4c39-08db98033b77 X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: crYDzdpJn1pbOYnm0aVqrZGXLYQsS8+R9cU77NR26vbONJ51h6yn6HkdXAFROIh8oVMcuFibh7AzVYpwrTreBR2vLvvLdBX9bcB3ig+tMUiMvxNGIl5slt6oRpufgf3o0OtbQea4cYnj0my4V+KvZtBIUjD3DJHd0mMJnz27tTJPCjDqhv+Co6pFRQjzmQF5IIQV703y8Wg5PynKuGIf2lfjcXH908D80GPKGwrqz14S3HDMb1j6mM6CINOaOIEQR6CXGU4sPzXeHmBJxrYWPSDC3BoPmCthShxklZLAoe8zKbBDySssLKFz9sjLydaJGjGmY5fe9uHsL119gjUUadG6Y/kP+SxMnixwbClhjSbCMY/FfoY+kYI9+do5yXVQA6iZsT2OcrJPAEUUPlnxdfeX71wImFXzvK3MQClQdICbIOjjBW6uGjzJoMGlzfLVpj8bMlHbUXsKPB1T4VtvBQaQY/2hpsG6JdtbXJQl/kPqS2Fg7Q2+O5Oq12YGmIvkEXHaMqfUxNFHvmti2OGsc8RRz1OSYlAVgXHcT8d1z0K8wSWia47Uri6Z0etdB1Mg304CnhcMQ01YiP7nj5fxqE01l8p+4U8YBfja7duRIXdb9fiNnIx61BT9gF0KjSDqdPTUSOqJelmvM2gpJgTSliWD1yGxWGLwgwfEassGs58FU+TLbvbzsG1LSw+fxyvP4MJfjqjogY+1JRIsb63rvbZU3NgwejRZbplSBMq6CeQZm0e2EtujJSHVIBcxjrqF 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:(13230028)(4636009)(136003)(346002)(376002)(39860400002)(396003)(186006)(1800799003)(451199021)(82310400008)(40470700004)(36840700001)(46966006)(2616005)(36756003)(26005)(1076003)(7696005)(6666004)(478600001)(356005)(7636003)(54906003)(82740400003)(110136005)(336012)(16526019)(6286002)(70586007)(70206006)(6636002)(4326008)(316002)(41300700001)(426003)(8936002)(8676002)(5660300002)(40460700003)(2906002)(36860700001)(83380400001)(86362001)(47076005)(40480700001)(55016003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Aug 2023 11:33:05.1648 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 19ee28be-4dd6-44b8-4c39-08db98033b77 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: CY4PEPF0000EDD5.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6384 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 The mlx5_vdpa_virtq_kick_handler function may still be running and waiting on virtq->virtq_lock while mlx5_vdpa_cqe_event_unset function is trying to re-initialize the virtq->virtq_lock. This causes mlx5_vdpa_virtq_kick_handler thread can't be wake up and can't be unregister. Following print may loop forever when calling rte_vhost_driver_unregister(socket_path): mlx5_vdpa: Try again to unregister fd 154 of virtq 11 interrupt mlx5_vdpa: Try again to unregister fd 154 of virtq 11 interrupt ... The fix is to move mlx5_vdpa_virtq_unregister_intr_handle before mlx5_vdpa_cqe_event_unset. Fixes: 057f7d2084 ("vdpa/mlx5: optimize datapath-control synchronization") Cc: stable@dpdk.org Signed-off-by: Yajun Wu Acked-by: Matan Azrad Reviewed-by: Maxime Coquelin --- drivers/vdpa/mlx5/mlx5_vdpa.c | 1 + drivers/vdpa/mlx5/mlx5_vdpa_cthread.c | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/vdpa/mlx5/mlx5_vdpa.c b/drivers/vdpa/mlx5/mlx5_vdpa.c index f1737f82a8..8b1de8bd62 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa.c @@ -282,6 +282,7 @@ _internal_mlx5_vdpa_dev_close(struct mlx5_vdpa_priv *priv, int ret = 0; int vid = priv->vid; + mlx5_vdpa_virtq_unreg_intr_handle_all(priv); mlx5_vdpa_cqe_event_unset(priv); if (priv->state == MLX5_VDPA_STATE_CONFIGURED) { ret |= mlx5_vdpa_lm_log(priv); diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_cthread.c b/drivers/vdpa/mlx5/mlx5_vdpa_cthread.c index 6e6624e5a3..1d84e422d4 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa_cthread.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa_cthread.c @@ -190,7 +190,6 @@ mlx5_vdpa_c_thread_handle(void *arg) pthread_mutex_unlock(&virtq->virtq_lock); break; case MLX5_VDPA_TASK_DEV_CLOSE_NOWAIT: - mlx5_vdpa_virtq_unreg_intr_handle_all(priv); pthread_mutex_lock(&priv->steer_update_lock); mlx5_vdpa_steer_unset(priv); pthread_mutex_unlock(&priv->steer_update_lock);