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 A74EEEE57FD for ; Thu, 12 Sep 2024 03:18:52 +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:In-Reply-To:Content-Type: MIME-Version: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=WsPK6c1cScuODmkwIY/Zynm411B3bgdzpkeku6Smyxc=; b=DrYBL9q8iHxtKHWLGZfG4MQBoY dvpVSsLs7Nk7mMnKCmHR1DoeI0S07nD94OvpMoNusHw8z1k2oS/WSSly3S4g9r46JFSveDt/OQtuh B0TvLTtxaGVGbN9pXzvB3FpHAVY1OVpAMkp5Na49XZoSZueaVGN1nWMqg/Gwvw/Z3amUvKAd/9hpI XnrQmqWxTC+6ehWdpJ9BVlkuHXdlcYphB/I8iHffuCYwt8IVC7WlsOgVlK4wqCmB+w8wNPp2Tkx1b CIMA4eHaKT0oONfdiBz+BqJ2WqS8edaIhDgSGSEGFKh2HpAjCaaKrc6iL8xxhalFkpxkrxcC0t5lA 8hyLeGNw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1soaLv-0000000BjIQ-00bO; Thu, 12 Sep 2024 03:18:39 +0000 Received: from mail-co1nam11on20618.outbound.protection.outlook.com ([2a01:111:f403:2416::618] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1soaKr-0000000Bj94-2Dcp for linux-arm-kernel@lists.infradead.org; Thu, 12 Sep 2024 03:17:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yuYQMWo4a5iDiofYr3Ia0vczzapjkLk9Par1KQB8Eov9VJAaFEXUJ9wHMydqibprn5U4lzDcfOVHSx9jXos9/vOg9BR9FlxEeSMH3z+7cnqDLH/am1LHCfz59H73NoYS5pIYeuPhqfnj5BS1Pl63kwP4dCpOXTH9Vaa0ohO1jSPsKMiSNW5tW65ozy+RdNVOhUNgcYegfgQWHwvCsj45NVzFlGqKqm3IEJejM3LLE44r0FXHukGEJ240qtsVxDdwTYQLSDWenJ0BxuhnC9yo3IEnNA+zWsCK9FKFg3Jv/zPe+bOJw5NWGL8OZjIQSgwHdyZGJ++1pz8I0q8/DuM5Bg== 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=WsPK6c1cScuODmkwIY/Zynm411B3bgdzpkeku6Smyxc=; b=jnFQlhrHbHTlS3LliBuP+yb3/Jgr19y/eD4dZ5QwrMUTeEABO/GgdCp8SaosEO/XmD5vnm/9mH+C73iGveUf6sv872MrsJ5jwI14Z4aD7tpGvHyyD/fMnVS6BPs5yGuidCMQgOLmLcEJ4HHckFkDSoBhgzAMMk0tQjgTZVdm7+LTH9KfvkUaaqtLHkP7JKPcI8rFaKz4WUCXgjPySTt5lhe+XFOueGgm0WTFSRtDO39TCCy0+Qygw+dYyvhGLd+qXTl5MrIYicDPe96BayCn62m4Lnx3Gb78/eQSr9RO0T/YiDHCUrz5ozI+9MZ1dZ0fqG83Io79EZuPXnuXb93CWg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.118.232) smtp.rcpttodomain=huawei.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 (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=WsPK6c1cScuODmkwIY/Zynm411B3bgdzpkeku6Smyxc=; b=mS38T+SsvEg1RkbYredIAt4aU1YfB1Dhojyq4qLGNcTbjy4k2H4KB5VT9LEJ1owYOteqNdg6euNZrA9W89ZmIi8331YWMgyovLHHKGfQQBRfjrOTOQAov6rKDyayp5S9Xhx60V2XVe0hdUPtrBAo05DkPAjFJksRoCOBO0iWmLmRg6PBmWTXK9H7ZaiFAUQgjW0b8X/m7r91nLn0xjVviU3rEtrtyaXHCdh6th2Af46M1TwXmAMSwqez/R/WMH0h/0dmRlhEIfMJedrw+lRYznZf00s6Ok2DrU/EJpBvMdPYofQeXwnahL3GMAtnEFd5ugQGUfgS4Rx2xxBlyOgVRA== Received: from DS7PR03CA0112.namprd03.prod.outlook.com (2603:10b6:5:3b7::27) by SJ2PR12MB9192.namprd12.prod.outlook.com (2603:10b6:a03:55d::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.22; Thu, 12 Sep 2024 03:17:23 +0000 Received: from DS3PEPF0000C37C.namprd04.prod.outlook.com (2603:10b6:5:3b7:cafe::82) by DS7PR03CA0112.outlook.office365.com (2603:10b6:5:3b7::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7939.24 via Frontend Transport; Thu, 12 Sep 2024 03:17:23 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.118.232) 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.118.232 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.118.232; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.118.232) by DS3PEPF0000C37C.mail.protection.outlook.com (10.167.23.6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7918.13 via Frontend Transport; Thu, 12 Sep 2024 03:17:22 +0000 Received: from drhqmail201.nvidia.com (10.126.190.180) by mail.nvidia.com (10.127.129.5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 11 Sep 2024 20:17:22 -0700 Received: from drhqmail202.nvidia.com (10.126.190.181) by drhqmail201.nvidia.com (10.126.190.180) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4; Wed, 11 Sep 2024 20:17:22 -0700 Received: from nvidia.com (10.127.8.11) by mail.nvidia.com (10.126.190.181) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.4 via Frontend Transport; Wed, 11 Sep 2024 20:17:18 -0700 Date: Wed, 11 Sep 2024 20:17:16 -0700 From: Nicolin Chen To: Jason Gunthorpe CC: , , , , , , , , , , , , , , , , , , Subject: Re: [PATCH v2 10/19] iommufd/viommu: Add vdev_id helpers for IOMMU drivers Message-ID: References: <6ccdfb27c7aa5a5bb7e153165cf90114cae4687c.1724776335.git.nicolinc@nvidia.com> <20240905161415.GS1358970@nvidia.com> <20240911231103.GR58321@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20240911231103.GR58321@nvidia.com> X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS3PEPF0000C37C:EE_|SJ2PR12MB9192:EE_ X-MS-Office365-Filtering-Correlation-Id: 01dea2eb-bef7-4308-2738-08dcd2d96b40 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|36860700013|82310400026|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?igB32czTBOX4U+g7HxBlzUj053VHSjbOQcyG2cVeNiseH0W3/pSmS3rsZgxN?= =?us-ascii?Q?WFwVS+LJUuIOXVQoZrFf4sDLZeGPdPzPCEFBwtkENciAJL+YqoZINVRe0EiP?= =?us-ascii?Q?BIu7MDn27sjJ5G7Lr5+ZGxtyWJOdvZmU/PnvRZ13HNcKVYuzphWEWCl5PFHz?= =?us-ascii?Q?opnIytWtTVJA08+OWdu2dZAku7JTnha7LcOpJ1Au7ukW13dbkqmZ4EUAmZ1D?= =?us-ascii?Q?znLWLPCwt71c/ZAYFIPKuExXJGnkk993IfraRErxbwJJ4SFD+s8bI8h/lS+o?= =?us-ascii?Q?oHI8LHO87T/etfRM3sDOhi1p3d/trABYr5esTQ+yfmQ6I39Su9OIUp3Yv0Pt?= =?us-ascii?Q?AZxO6yEol9A69pTKkMjHhSV06PVavy2sAn5kxsVmTVtyForDYzX3sjKLoce+?= =?us-ascii?Q?iY5uaz8ZLH42E4PyhuyuustyDQ18Pf8btpq7I0E/qQuY1IhowY2sOMp32m3a?= =?us-ascii?Q?6o/LSd6lTCX94bLfUEX4iA2vqtksIZQRNrvyyWgcOPdpV/wagQ/yFersBXef?= =?us-ascii?Q?sYPJh6Aq+TM4Jlq1gqhkLMbyjMiJLKhOlEfWsTpUcjAWdDKS1OnJNwawBx74?= =?us-ascii?Q?IobwTgevaTAwIJ1Mb+5gVyKBQ5wNA46FXR7xGJLBFRekqNlmVE++pc7bHdqb?= =?us-ascii?Q?YMBEpimrR15bde+YK5EY4ogyjwQWWrfGUf66WSHS6bbLTmiSjMafaUpkqkfK?= =?us-ascii?Q?PxA5AVMLx2nb/3swm0rQBOos9Nvetm2YpdTcQ7nsIm6SzzeDLPp7m44XY0Wd?= =?us-ascii?Q?U71iqBOOlgiON/oIk+sTybQJl3D+WK9r3kPYrny/MpuCOwa5nAtFoThKs6kk?= =?us-ascii?Q?IIhFz59KueUmjHwjezz0ZJGIHJYR7PkPauqIAQ7WWKEQrmr0pWak5TKtmRIa?= =?us-ascii?Q?OFERfyDPEArIUvZHB0GJkchGSKYSGPVZibcd20RvynjxLUKWnN/LPVpGhn2T?= =?us-ascii?Q?B+3Nn0ggHeIQjUEiSnROC1dLMFkp8F5PAvShYXmlzfobLrojB/fq7ko69+5+?= =?us-ascii?Q?CB2NBd4oHeq5L0te1LA+YdHsVyBaHFgi/h3JqtGKHkje0nDuQg/Dpan0izjl?= =?us-ascii?Q?dwTgykIbEOkVaD52GdJSnCL9TqLKSZqijgaJ7zj3nud1ClmDWftHHi77fzOW?= =?us-ascii?Q?GzamAC/wLRxmwe/KsimHHHUO/ADkg4WM5bltgq9CqpAfqhMRW/RZ5ySRDs2L?= =?us-ascii?Q?K+I5lKoz31lGNpgme/WrW3BaEg4R3ApExDEq3YfaRDfNGEPKsOUC3g1QCn1P?= =?us-ascii?Q?Pcyo9D/H7rqzt/s7MvpwcepVZxkztag0Kmr4AGnUiAmYzEx2QrCweva98x27?= =?us-ascii?Q?ENF6NYx8PgEcF5MXKWfMTZyIxDHVXggjtiIOfOXJzVTiZ2chKjauSJuczMBT?= =?us-ascii?Q?b2dbemLtUXBwuE9SzaeEmLVSyOMihIBwAoJVYfvtuYsznfIOooFFqdcrp5Ad?= =?us-ascii?Q?FRNbw1pido0Six9AkzShld2wTxmhcPsi?= X-Forefront-Antispam-Report: CIP:216.228.118.232;CTRY:US;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:mail.nvidia.com;PTR:dc7edge1.nvidia.com;CAT:NONE;SFS:(13230040)(1800799024)(36860700013)(82310400026)(376014)(7416014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Sep 2024 03:17:22.7932 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 01dea2eb-bef7-4308-2738-08dcd2d96b40 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a;Ip=[216.228.118.232];Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DS3PEPF0000C37C.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9192 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240911_201733_585103_BF3F478C X-CRM114-Status: GOOD ( 32.57 ) 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, Sep 11, 2024 at 08:11:03PM -0300, Jason Gunthorpe wrote: > On Thu, Sep 05, 2024 at 10:53:31AM -0700, Nicolin Chen wrote: > > On Thu, Sep 05, 2024 at 01:14:15PM -0300, Jason Gunthorpe wrote: > > > On Tue, Aug 27, 2024 at 09:59:47AM -0700, Nicolin Chen wrote: > > > > Driver can call the iommufd_viommu_find_device() to find a device pointer > > > > using its per-viommu virtual ID. The returned device must be protected by > > > > the pair of iommufd_viommu_lock/unlock_vdev_id() function. > > > > > > > > Put these three functions into a new viommu_api file, to build it with the > > > > IOMMUFD_DRIVER config. > > > > > > > > Signed-off-by: Nicolin Chen > > > > --- > > > > drivers/iommu/iommufd/Makefile | 2 +- > > > > drivers/iommu/iommufd/viommu_api.c | 39 ++++++++++++++++++++++++++++++ > > > > include/linux/iommufd.h | 16 ++++++++++++ > > > > 3 files changed, 56 insertions(+), 1 deletion(-) > > > > create mode 100644 drivers/iommu/iommufd/viommu_api.c > > > > > > I still think this is better to just share the struct content with the > > > driver, eventually we want to do this anyhow as the driver will > > > want to use container_of() techniques to reach its private data. > > > > In my mind, exposing everything to the driver is something that > > we have to (for driver-managed structures) v.s. we want to... > > Even in that case, a driver actually only need to know the size > > of the core structure, without touching what's inside(?). > > > > I am a bit worried that drivers would abuse the content in the > > core-level structure.. Providing a set of API would encourage > > them to keep the core structure intact, hopefully.. > > This is always a tension in the kernel. If the core apis can be nice > and tidy then it is a reasonable direction > > But here I think we've cross some threshold where the APIs are > complex, want to be inlined and really we just want to expose data not > APIs to drivers. OK. I'll think of a rework. And might need another justification for a DEFAULT type of vIOMMU object to fit in. > > > No need for this lock, xa_load is rcu safe against concurrent writer > > > > I see iommufd's device.c and main.c grab xa_lock before xa_load? > > That is not to protect the xa_load, it is to protect the lifetime of > pointer it returns I see. I'd drop it. Thanks Nicolin