From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E2B46D3C527 for ; Thu, 17 Oct 2024 17:19:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To: Content-Type:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=kjAF3qcM6G9KnWnVYT+9F7CnQ3TFjR8Id1v+n7O0XhA=; b=CBrHp/lhoBR0BHOW3bewal1R2W EQHy69ZslZVf/kw62/qqK1TJzaJ+8QeVbqSsNK3AWymVZXg9Yp/cPg33BiXP/F+OcB9hHDtj7rWS3 JKMjJS3GkWJEm61n1YBCePUV0eRftLq92ehmr2sVkQlTgvDRP/ncETdQ2xvrE4P26pwYwuWViCouh I13ua5tAkRgPeWJ/V6PColEDmbQRP2MfI7Z34IviDcWpxoJl77f5hHUotsesSoMBJY4kANftQBOtj b0FpJZdcr4emPiPrUbQ51ZONHdHQYWMwJf7dYiSrKSp+5YVcjSfdN/jHevIWG+AfGAuFKPhbJsMEI EbW0CdQQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t1U9M-0000000Fh2C-1JXy; Thu, 17 Oct 2024 17:19:00 +0000 Received: from mail-co1nam11on20603.outbound.protection.outlook.com ([2a01:111:f403:2416::603] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1t1U46-0000000Fg0P-2mbm for linux-arm-kernel@lists.infradead.org; Thu, 17 Oct 2024 17:13:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WzZk8qWjqC3dZUqhLoBsYXOi3NXaYMMsX6YfAx51F0VMRCf5ZXzT6egBT4lUuO9/+Kw1329LYAerz7CDLmUb+ZUB6Pfiow7Qz4IzRGVjnip67AIMZbYXLBF1ItKV4OWeh0Jyq5LHs+KQw5zEW215NKkFIjkG3paxFzxdPqyG2u47NPWohBrAnBnjAg0UHsGkgPD8t9pWBcDlV4b+L2uE3UXQHwEY9r9AY9sI5X7ZpQQKep7+t2xOzo2hx2EnrOWj2wbvMTcVG5sD/vpzCmHWBoa3LaugsS86jU9rkmrpjIPPYKWaEcaFiqBqjGxsSLnZarc3x3/jCIK3Uj34vpNj5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=kjAF3qcM6G9KnWnVYT+9F7CnQ3TFjR8Id1v+n7O0XhA=; b=aUJo/WOeL+iACaGI2zrAGNjRa3exabF4ffhPvh9/NP/9+bBCn+A7MJqRkXk899CIxeWSQ3JGyr8DK73jYxZhKRllu+CWnhG1DQqR1d55oVPQPnATB2ctxlTSro7WK8owWLs+QqzVSwWpZP7lTCoBFHNes5eQooPuPbKhrB0OazS7ZA+iPBACMVwBaisMREilN0ANsbFCuBlGWVm8IJEtckiXrQw4gb06dn/hvGIEGOS13Qa/QjX0RK53u9tcuq8XmIChNZlTDcFjy0Jp3u8bFspcwcMFrhhRzqzE7nM17zlNYpHPljWlvWwZL5a2YjQ4xENqZj5xM3HHOIN7u07+Hw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; 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=kjAF3qcM6G9KnWnVYT+9F7CnQ3TFjR8Id1v+n7O0XhA=; b=Y1Fs+Z3YsdAcpDtoXLFbzoHcOPKNKZnenOY4TEi+osebmutTXk9V3itLyJ7DeREa/eIh1hH/17xNJd00k0kkE4qMJS/Zcmu5wb40gdVTcI2i+vZ4qGBVrn7sLO61yEXX3CjdTCueNQaJIYev27ax55fbjGXHowXQdv8DarZb4WQAtVPq699DLiwazTQF13E7YawD8aHGHE2pDUtc/p9WQ3qS14+Us3cLwxZqL7SXOmUEBQ0tISozB/bmxT+s94nwTADT685kmB+n57XyMpsDAXs7Z0XjzYk5qLr/DO8uDBJyRCTn+spRMYN2q/l3eqiB/inKrtwFa6SZSXPTQ0/0BQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) by LV8PR12MB9419.namprd12.prod.outlook.com (2603:10b6:408:206::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.20; Thu, 17 Oct 2024 17:13:27 +0000 Received: from CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732%4]) with mapi id 15.20.8069.016; Thu, 17 Oct 2024 17:13:27 +0000 Date: Thu, 17 Oct 2024 14:13:26 -0300 From: Jason Gunthorpe To: Nicolin Chen Cc: kevin.tian@intel.com, will@kernel.org, joro@8bytes.org, suravee.suthikulpanit@amd.com, robin.murphy@arm.com, dwmw2@infradead.org, baolu.lu@linux.intel.com, shuah@kernel.org, linux-kernel@vger.kernel.org, iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kselftest@vger.kernel.org, eric.auger@redhat.com, jean-philippe@linaro.org, mdf@kernel.org, mshavit@google.com, shameerali.kolothum.thodi@huawei.com, smostafa@google.com, yi.l.liu@intel.com, aik@amd.com, patches@lists.linux.dev Subject: Re: [PATCH v3 07/11] iommufd/selftest: Add refcount to mock_iommu_device Message-ID: <20241017171326.GL3559746@nvidia.com> References: <1d34e8eb85efbe7e4e47d0297b6eabfc147e5336.1728491453.git.nicolinc@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1d34e8eb85efbe7e4e47d0297b6eabfc147e5336.1728491453.git.nicolinc@nvidia.com> X-ClientProxiedBy: BN0PR02CA0025.namprd02.prod.outlook.com (2603:10b6:408:e4::30) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|LV8PR12MB9419:EE_ X-MS-Office365-Filtering-Correlation-Id: a02ccc37-cf8a-412e-4fc6-08dceecf0430 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|1800799024|7416014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?4S9GygqdiJkVsYLRYJ7DszxCn+xvlLWeiiV8aorl9MuGEY36JvI85co5GyFc?= =?us-ascii?Q?DUVW1sVOYj4wuz1zmPEWlIZDn+eM/xTkCJpelA8tsCmQ2ZHYEBBbCsYV/CNg?= =?us-ascii?Q?9ZrIf6yEx6El+SbNvSgkxy847uiPw5dXedRpqKiv7mJbRtgvKPl6gWinJwVH?= =?us-ascii?Q?RM3kiJCviYjL4NuTwOPRPxLMCcb1w/br5y4PsVIB/uxHFp3zspPXhAqpM0J1?= =?us-ascii?Q?1n602m3eG4hRPkaGDi63wVoq778IbWEnTxEux7eZt0pZ5wdcqgrNNphl0I7Y?= =?us-ascii?Q?EwBAITUN2nVnHEb22df43etqK7eHXZ5xQa7S9E9ULuixPTqJoBp1orfXX0B7?= =?us-ascii?Q?IFE77Sm/2SGab0sniG/KphUNc+UHW/ndyRu2PQVx+SbriRgY+lhNb7kiRTnU?= =?us-ascii?Q?soEj8QLBVUitzmswfAFGRoO23UnIoNqiboEB29enS2YP4DkB6crZMY04UCe5?= =?us-ascii?Q?31VCdwnYMzUFupf3kDxK1uM4etJ0+znsUjWsIKRXTnRKUmKVImPsbvL4lu+d?= =?us-ascii?Q?Rak8QGvJk+BH7ukrnG2okdxFczOuinBIMIPvcFnf/UMh04Urp2NuSxhbASS5?= =?us-ascii?Q?Xv4jb/6NYvlIh16zYEezQb7i+m6TSA3oSmOJLE2PjH69KsP4AHyDDDmQVBGm?= =?us-ascii?Q?d/Ff30alNaLGV5NKX+XbLzuCDNNwF/D+dEaBxMf84oKTA07UKeGD6zx8xRvP?= =?us-ascii?Q?IQyKUYIqa/4/5o7az+sNdU48UvEqU3/8esAUvPxwXFbWA4aCbr5ME3vHwpAk?= =?us-ascii?Q?eWKdy7lpbdRWWLKMubSDmT5bBKnfi/pWGQg/SrnkuneU8yo3TRry1UC/b1SQ?= =?us-ascii?Q?vkllo+TesW1+NIRgCbaG/BiDGD1Yh1jpxmzGwIroKq+CDThoZw4Z9xwCrjd9?= =?us-ascii?Q?MZaY4Cg/UQ+8SVMw5vKZ6o0D3kTfHoYDUl4IjFoeoClVAXSgFxS5c2ORXT8/?= =?us-ascii?Q?dCaYGsVOY8ZLX2Ego+YEajalQD9QcOrgG+3ullqDlT01TjIW6qgSBMcFOxDp?= =?us-ascii?Q?0zzxJMT1T4Xm0lAjQKcbEhC78wn7PvRjSWstJzYcLNp0zrfmYmUPtS/xChff?= =?us-ascii?Q?7T+89pjVS7OtEDbInbIaaqiKaEXMwlhQdILBSlYpZ4MGdSNDU/tjRK7JYdkr?= =?us-ascii?Q?W3DxMZy7lmcMsBgWy1hqdZso39X2E/5F4Kfgs4zZBsIIu9kLkp0XvlU6kJqz?= =?us-ascii?Q?Xubmll5KY+fxNpqz50JQbvRGsAdKIkdxpj2zvbi98AaKYCGF+7Iodtc38UOs?= =?us-ascii?Q?3/R+YPKDqedwSMhur5xtfHQ5u8KF8t0IYM1OPj0pZO6skP4G/MAumWUuLfjh?= =?us-ascii?Q?5d+0FZXV5BfuD29uSqY5Wbtt?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(1800799024)(7416014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qSZNe3jhg5vclVzIrC8V+/PRRfSKikzsOrbMwdrBFcrqFH3P9qidFRGX3SK4?= =?us-ascii?Q?+oEeejpAI8K0fMupjz/zOvd97wzPJFbSEnlNQxWAgxsvO3+Je/tO5MT3GmE2?= =?us-ascii?Q?LDYjSqUlpUYsAJD/rTYvNKBN8FdwJtE9ngs3tp/zCZXu1kckikV2g6WSdCcd?= =?us-ascii?Q?KAbTsMsTfdDsSMYAX1fj35314mHp1rpTwcxv718OOXaTU5ITX07iW3vjNpxt?= =?us-ascii?Q?vKkXGpnSXf93WAUCykw2RBycsMuHTD38x94qvRuozNHfyV2R9/j6Z3XHd0N8?= =?us-ascii?Q?TIudMf/FKDBZ6OM0xYlTGKklsGwFZUqa1j1UiP7g3W4xRxTNuigLWrD/+RVr?= =?us-ascii?Q?VePm0WZdA58uyeNJ0HDMZcvOV2hX5yAy93ehnokkCXVzhy9YP4l2KxV3W5Km?= =?us-ascii?Q?VlhscWpBMjG5EMaCXg82lN2Sayq6i46RgDox81Q2sAP3nPIJIIppcEORLY0T?= =?us-ascii?Q?O/vsAqwYhbcjyxqR/8hRxsswB4BT9ajjg0UXx8LQ/sQL2VtrP6X0Dv+vg9/t?= =?us-ascii?Q?yFU5hH4EFJyFZrOlS4Aeb3Va7fM28MVBddfhoPw7/VymN63Ihs5NBle/i5vH?= =?us-ascii?Q?jEzDsj/kuk6mTZ7+bw629eSuIjuSe0/4C+owwelDhbC8lI2z2GzkPt4ekofz?= =?us-ascii?Q?9fe5Rq/SQUdLghBJ3+a6PYd99W7xAZjaJVhsxOWa0lIkMzr5ua4jhIm690Dc?= =?us-ascii?Q?qMN19v4YB4cHQYhYBTg/EmwcaqC5hC8Rd3GN1GqpEtmmSmboLLIh35KoNCrw?= =?us-ascii?Q?5tH1LsHpChf5C4rebDcL7pknveiFe10+R/8q5faiYPaxfA5uPihIk7drXhE8?= =?us-ascii?Q?cTw0sf+WCPAeKF0TlJYcPObbwLDZHg8tOurIH4Wh+/iL14beOVfaddumSExm?= =?us-ascii?Q?eJmCg3yQdMFbYbjwt7NUBMPtfYC95Nw+D0tq1FisceA87b5YPd4v97MDUEYv?= =?us-ascii?Q?tX4ZzncJ0Ok71XOZr1+AoLtoKE7nHNqpOwB/LOfA8W5Rm8h6mFt9TJ5fkdaH?= =?us-ascii?Q?jKAsBJy9ghWo3R94aX4qaWbVVx8+0YioSP2CqQWZ0bNgufGEVpZp8Y4B4jth?= =?us-ascii?Q?ZStNDoumRqIVd5QE505xtA4S/FaKReAK0DnyhBPj1Hj7xcleP+4SM1FOxrV4?= =?us-ascii?Q?upwaEMYQVFcT1S5gQE2lTNOq9jC8CunlSAkaPDZws508qBmSbDvD9zQ2eDpF?= =?us-ascii?Q?SLBorGXqmRRqrwaeNfwrs/AuB7K0RCgA9zZcZoXy8COAxzdxErOryNtq4U8t?= =?us-ascii?Q?orl5P7AADhd5LmB1ti0/h7gHYmWrtF1qmKixaSlHLd3G+FA5Ss1dClGfZTyK?= =?us-ascii?Q?wsoo9en1Jkwrfq4p9uKR4AtofcUFL6HQpW4pn82dxSqb36vxtFUKpaQHDNqI?= =?us-ascii?Q?m+aH4AMe4wy6mKDVKnjuvo+2F5mNOOmknhxKnshhi8MLZxumm/3AbSagMu9x?= =?us-ascii?Q?xhbJ94yxH+GKB1eTEv4gDZozpQGhEolKizCK7WEGOOYXtOLpo1Qtud17tiVi?= =?us-ascii?Q?/iWhEUNMIx4Or6KKVWtm0y2drfcGV1u1mawg97kitTMHvYLnuElRKbYVvNKN?= =?us-ascii?Q?wREy78efA2JXjHyQidM=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a02ccc37-cf8a-412e-4fc6-08dceecf0430 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Oct 2024 17:13:27.7441 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: nUgWukq0UBdJJ+50dJ6lA3FckrYW3Dy6KL7VjOFmba3VWAlcJcOi7/AX0oB4shND X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR12MB9419 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241017_101334_728266_9192929B X-CRM114-Status: GOOD ( 18.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Wed, Oct 09, 2024 at 09:38:07AM -0700, Nicolin Chen wrote: > For an iommu_dev that can unplug (so far only this selftest does so), the > viommu->iommu_dev pointer has no guarantee of its life cycle after it is > copied from the idev->dev->iommu->iommu_dev. > > Track the user count of the iommu_dev. Delay the exit routine if refcount > is unbalanced. The refcount inc/dec will be added in the following patch. > > Signed-off-by: Nicolin Chen > --- > drivers/iommu/iommufd/selftest.c | 33 ++++++++++++++++++++++++-------- > 1 file changed, 25 insertions(+), 8 deletions(-) > > diff --git a/drivers/iommu/iommufd/selftest.c b/drivers/iommu/iommufd/selftest.c > index f4be87b49447..a89a865617db 100644 > --- a/drivers/iommu/iommufd/selftest.c > +++ b/drivers/iommu/iommufd/selftest.c > @@ -508,14 +508,17 @@ static bool mock_domain_capable(struct device *dev, enum iommu_cap cap) > > static struct iopf_queue *mock_iommu_iopf_queue; > > -static struct iommu_device mock_iommu_device = { > -}; > +static struct mock_iommu_device { > + struct iommu_device iommu_dev; > + wait_queue_head_t wait; Just use a completion instead of a wait_queue, a few more bytes but it is easier to code. This has some subtle issue where the device memory could be freed while a concurrent thread is going to trigger the wait. Jason