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 DACD2CFB449 for ; Mon, 7 Oct 2024 16:38:25 +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=lj5Lxa/mwtFXCKVArj8AOzR1qmsWsFeTiz/EC96OjVI=; b=NII/QBsB4Q1tDrq4sulq8ZQYNM MZHf/h092eFIAhGqBTM0BpYnZT8ykYZGBV+q6O5Bmr2E9L1P2mJCKJfDfEhJvrVj6GA5VHo3rtkxZ Jw0b7lNVFFzNHpLc8MDyauKDurfsLae2usbPE7qTPj3qghmQsWxJO6gbhIechv8a4e0giSCooxdry Y7AJhhNveKq9kmUPNFjsyaHK8j7j+XnS7EXAIkvwRuGob5Vj8pIy93kcRHbuRfy9XctGzYPoux5ie zBIJLu56HSQ28IrY68v4PjZTFA1PXOV4LgzZ+dYVZZ6MGbHkuThF9wXyrkWvzxK7LevHHJa2CRZnJ y0MKJ9EA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1sxqkO-00000003BkL-0tgG; Mon, 07 Oct 2024 16:38:12 +0000 Received: from mail-mw2nam10on20626.outbound.protection.outlook.com ([2a01:111:f403:2412::626] helo=NAM10-MW2-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1sxqj2-00000003BMK-46on for linux-arm-kernel@lists.infradead.org; Mon, 07 Oct 2024 16:36:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WTqaX4ny7CsmDkj0oD/ESxSoq+z/OREhHEGmtyEHBaGzUymDeLQUQi2w8HfQcqp99NQmkI6GVC5OZhwFWkVn5/5cIDxr+yQujdDG3UPphoq8o/CsCbK87431Hz4Rel8Dry+Wnpt7l5OZJ4OR1JHPPyy7hiDwIQiZaWtF2tzFiyRFU76oDdWdqZb6TJ2SjUeyj0d9RPBnfKWZ76bZyGU1RDuTRjoaoQg8V9fEdk9ESmhWLef5Q/QqYVEOIio8IecCCWZKUuiuPj29ADHhVEgfGMvTaDmSRutesQVhEFd41OfRLpqJ8t6qBgrX50TQfcvat+Gi5Ydlta3bbMry9ctixg== 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=lj5Lxa/mwtFXCKVArj8AOzR1qmsWsFeTiz/EC96OjVI=; b=XCqb+wRSPJEIzXUD9vpzlFdtmHOTgJwRssc4nqUjqn95OoER8oaHV0BGpxc+krcLM/7nBIL1Xcza8QyCeuujRJUuXokrTI2PxfDKGeI5Cighvxo45jO4OKGTnBXYV3VREySlBt6VRNVAyL/hyI5Ck1Zd6VelY3JxwnVj6mkhjVg22LUnP5Vsmg3fGMs9xVC03dJgpnFPlvaALK+VlBiErt5vDyYb3Q0llEEioJ2quIWSF2hpzmP55BvlWOvgULmxmEx2nqHl1GLpSN14tvWQppVEOti13CRTEvWkjudDF5MyL8UG2smpBOidN0ALX5ZQvO7yVSsuPCgPAZhndaQ/dA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) 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=lj5Lxa/mwtFXCKVArj8AOzR1qmsWsFeTiz/EC96OjVI=; b=SqFThHzgY2Q94imPR1VF1noD5ORLJHc4yGk9DYzDyryDAspn3ZXsP7kkSyXdBTPWMk8ITJOZG6sS77OCGmVrgoHPgRm56nAgEK1rAwnx2gXKgsXZ7VO2M1wgsW/L5cKG69iqWKSh+/lSLqACY4QxuHErSRMdGV+xgPZnYkm6Oc2GZfHVW8qYeZbTQRhgfxRleD2DyD2YsBwlX0ZmUinqLoWlipbQcZvbUs/NSSZFuHH0LfoL4HTCyjtgICyHEeDKuSXm6RW/EkF8aIJmvc8+Uyi3CjiH+PB0WiB5poBvq1XLGMJBo20k5VnxPhBlp/EJj1E55GQHeOQYA5tf2qby0g== Received: from BN0PR08CA0006.namprd08.prod.outlook.com (2603:10b6:408:142::26) by MW6PR12MB8708.namprd12.prod.outlook.com (2603:10b6:303:242::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.22; Mon, 7 Oct 2024 16:36:42 +0000 Received: from BN1PEPF00006000.namprd05.prod.outlook.com (2603:10b6:408:142:cafe::c0) by BN0PR08CA0006.outlook.office365.com (2603:10b6:408:142::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8026.23 via Frontend Transport; Mon, 7 Oct 2024 16:36:42 +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 BN1PEPF00006000.mail.protection.outlook.com (10.167.243.232) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.13 via Frontend Transport; Mon, 7 Oct 2024 16:36:41 +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.1544.4; Mon, 7 Oct 2024 09:36:22 -0700 Received: from rnnvmail201.nvidia.com (10.129.68.8) 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.1544.4; Mon, 7 Oct 2024 09:36:21 -0700 Received: from Asurada-Nvidia (10.127.8.12) by mail.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.1544.4 via Frontend Transport; Mon, 7 Oct 2024 09:36:20 -0700 Date: Mon, 7 Oct 2024 09:36:18 -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> <20241007153837.GT1365916@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <20241007153837.GT1365916@nvidia.com> X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BN1PEPF00006000:EE_|MW6PR12MB8708:EE_ X-MS-Office365-Filtering-Correlation-Id: 20d8ed71-bb33-45c9-7122-08dce6ee3930 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|82310400026|1800799024|36860700013|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?PJ3cGjn3C7/+Mmfverd2vmFWWAIeJjDslA/Ga4JQolp+e9dXa8IIp6RNibMy?= =?us-ascii?Q?6j7xntMlw31MP/PxHlvq55o5ekQFICgT2jDkRGg1XnHzHV9tBtdTWNw2bzn7?= =?us-ascii?Q?5ET+h6lLu+R/rIXvjTH6PpV7SXmsT7e4EE43qGjfDWJobm/TRiwJwDYuj+/T?= =?us-ascii?Q?xi+WjynWwdKR7RGPtVm0jpRnf+UIFK6bOtHKvNeREiHXHUby93DlFTlstjl/?= =?us-ascii?Q?gavGayhdzNTrcpkgaigbhAuhLFFC5AZouviLTw5S448d768+3IF6FDVlj5AD?= =?us-ascii?Q?IY6GvtUPvZn0Sjf0wMwvJ8kf8gUPD+PHpiDlpEkpuQxv/AVssNlzwx2J4zz0?= =?us-ascii?Q?bQiU70Hf+fhKyFJGRZD8Yn4Js+IfSuvABLMXfp0r0jwcH/e9ghrOT2pjUWW7?= =?us-ascii?Q?9kDhDOp40TQYlC9q+AkYwRtsCIdm3l5uQpqaU1luWlrfETiUHT2Qm3Ijvs2D?= =?us-ascii?Q?2PO7cENt10IqDWNZ4P1uEOAiEsNxZwv2pyhufMIzXMoDTliICYuZ3x36epej?= =?us-ascii?Q?5hq5YgPauw5e4c35mO2qmzrwXa7YSf93dVeq7UYkAOizniDADulPmH6lrsKj?= =?us-ascii?Q?32osJ7fN44Xx4F7sLezqHNsxJXTUyS1QSBYqWprm/RzR8rTnldPS5/XfCL1x?= =?us-ascii?Q?znjeIhFmlZsq+gIIPrzW3uPzhfjUUwajlN01445LSZ+2Yn0VFWVXMNOE7w+Y?= =?us-ascii?Q?fTEQl77pgfdXmCOQVbR9yK+85jo6Iqlq17DJsa5iS2v2rFqwEXe5jG/pUrCW?= =?us-ascii?Q?uxHrglhG/rbDuNcysF+3PVvWLG4HDYiLKrphhqy8Ua+7606L4e8Xqwcz+o2m?= =?us-ascii?Q?HAAsL3bmPO1bUOcR97xZSreFfrUCGLzWQpcYauXWJHBSquqL+nYj1o/+9J9c?= =?us-ascii?Q?cAGHTGm2fmFkCORHOiEixzwE0BiGd1YUxDUdWO8AILYjbJR3D8z1kESkqnIo?= =?us-ascii?Q?8lECos5hS7t+DhtXK0uHpr/5PLv+nBWIYwhgouVXm1l7/h+2gRRRBL+W8yGd?= =?us-ascii?Q?XSaiaBTlsnP8BsNdoaVDvdH2nok/wsqO8+vHL0XTJov4G3ThxJ/5gNf8qOra?= =?us-ascii?Q?lRF4h1VxUXzxBnycexxMl4WbGMP0yNLx9Swhf4G2EAJfPV7r19E0ia3Ye8L2?= =?us-ascii?Q?k0qKQAY8FPJQacoMOxGj70xA+dVjbKzrfOo09jQeo3gXrXT3/WWR1rvVZQTy?= =?us-ascii?Q?GWsEIkJiuyRZNCypwblLcvoB4LULeFYaSsy6MPV/OmxXVF+alwT18+RKOWOr?= =?us-ascii?Q?aA54xj4P/tn+4XABJ+wJMhRtzEEEVi1YNjSgmcLbe8EUquJlYYDfB6X85LTp?= =?us-ascii?Q?a4T1GySQdrfyVz1T1eU40aLpiOvVsXP3HYBxW/yD12KEJh/tK2OwqhQeQ7wj?= =?us-ascii?Q?b9omRVED5stwC3bagQXtnH6fNCrn?= 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:(13230040)(82310400026)(1800799024)(36860700013)(7416014)(376014);DIR:OUT;SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Oct 2024 16:36:41.3817 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 20d8ed71-bb33-45c9-7122-08dce6ee3930 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: BN1PEPF00006000.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8708 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241007_093649_053667_F3A0047F X-CRM114-Status: GOOD ( 13.27 ) 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 Mon, Oct 07, 2024 at 12:38:37PM -0300, Jason Gunthorpe wrote: > On Fri, Oct 04, 2024 at 10:19:43PM -0700, Nicolin Chen wrote: > > I tried exposing the struct iommufd_viommu to drivers, and was > > able to drop a couple of helpers, except these two: > > > > struct device *vdev_to_dev(struct iommufd_vdevice *vdev) > > { > > return vdev ? vdev->idev->dev : NULL; > > } // Without it, we need to expose struct iommufd_device. > > > > struct iommu_domain * > > iommufd_viommu_to_parent_domain(struct iommufd_viommu *viommu) > > { > > if (!viommu || !viommu->hwpt) > > return NULL; > > return viommu->hwpt->common.domain; > > } // Without it, we need to expose struct iommufd_hwpt_page. > > It seems OK, there isn't really locking entanglements or performance > path on this stuff? ----- The typical use case of the first one is like: dev = vdev_to_dev(xa_load(&viommu->vdevs, (unsigned long)vdev_id)); so I am asking for: /* Caller should lock via viommu->vdevs_rwsem with proper permission */ ----- And for the second one: /* * Convert a viommu to the encapsulated nesting parent domain. A caller must be * aware of the life cycle of the viommu pointer: only call this function in a * callback functions of viommu_alloc or a viommu op. */ ----- Thanks Nicolin