From nobody Thu Feb 12 01:05:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1770798973; cv=pass; d=zohomail.com; s=zohoarc; b=OTf6P+ry9yz/y70Fz2ka1TPuF4M9NXM6y8YTZi0onPZsKChwxCwpnesawJk47ZioKc7S+4PlaB0AL5P6D6zOi0u0cLHOXKEcgIGSfFA2yqPfpp4vTqK/ZHapjLc6l0BNoF5a9jUAB3AoHC/haCVUC7GrTuzRRvJVsY7sl5cRTFA= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770798973; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qxWp6a3HwZnmqXb+bhBKlmUo1MCnEn8NhVYJwJHgVh8=; b=KZxXZqe6Ij4rQRFYyJqF0RMaXXKvG8iqIs4WJsxRGgS9JM5eZrGaKjueEwsxsDv4EF3mYx9wQh/YBOXbQ6vF5moFqwNoE2Qi94G5zxhRJSpvIOmZ5o3iekjhXjj7XJ5eXLVHfcV7KgW8rDXmiVLQFIrcbu+T9PmHAk+8aLNvLwM= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770798973704615.4435906520276; Wed, 11 Feb 2026 00:36:13 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vq5h6-0006SH-VP; Wed, 11 Feb 2026 03:35:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5h1-0006PH-F9; Wed, 11 Feb 2026 03:35:27 -0500 Received: from mail-northcentralusazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c105::5] helo=CH5PR02CU005.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5gy-0002ku-Iy; Wed, 11 Feb 2026 03:35:26 -0500 Received: from SA1P222CA0073.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2c1::23) by PH7PR12MB9173.namprd12.prod.outlook.com (2603:10b6:510:2ee::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9587.19; Wed, 11 Feb 2026 08:35:17 +0000 Received: from SA2PEPF00003AE7.namprd02.prod.outlook.com (2603:10b6:806:2c1:cafe::40) by SA1P222CA0073.outlook.office365.com (2603:10b6:806:2c1::23) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed, 11 Feb 2026 08:35:14 +0000 Received: from mail.nvidia.com (216.228.117.161) by SA2PEPF00003AE7.mail.protection.outlook.com (10.167.248.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 08:35:16 +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.2562.20; Wed, 11 Feb 2026 00:35:05 -0800 Received: from NV-2Y5XW94.nvidia.com (10.126.231.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.2562.20; Wed, 11 Feb 2026 00:35:02 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sbFsJvt5i+IjerxbAtWEQadAUmGpFsewC/HxMJggYNIcnvQYAfQAPRwYwVeFbSvKZINsXn6/8nfDO13xKy/enmHJ8VYrJ5+ds1KWiQGNseRBSXhZMsYVetg+jigUenCt4IsFOgA989Nln7JVX2vropJ2QncAnf4ulxsYz8+RBrlamZHkgrZVlSdfYLIsDvGO6HCGCya4b303y85f99JJsEh2CUVj0TWIi0aBF0uOCx1nKEAA6ZLB4JcuKfRBNnqe7XwlOltQBecq/2oHt5XiQ/a7YiNhKJuxxAS7URw25yK0ctbnKeKeJtdZqmVpCZLypMHJf30wV35gmY5OiwGgfw== 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=qxWp6a3HwZnmqXb+bhBKlmUo1MCnEn8NhVYJwJHgVh8=; b=SkWpzqbstoSOjnO3+p210z+5E+C79DI+nbHKl/PyYJINcDcZFDtR8fVFy+0Ny7DzbPfHuo5Ovnl1Rr0fkBAoKHg7P59E/R5r/9XJzJhPJzGwMHQMpn48nHHxReXnfXr8uPSUuHGF9QtnICWm9sVntTHU+mDwW6HBwVeoniLD83j2xH+8cRoKTg5ypBUuT30K+nY16JHHXImpCDHgaV8Q/MTDb0vbfQ60Mhj14Hwo0XVm9GZT8vrPupcfaS1/aV9c/mWS++irgJCJlTHQCmjhNpP7doudwoVKoWexJlProVoFZ7MM6DwxL0eH+Kj08XrpzQ9AaO+d6THYlIaqc0giyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=nongnu.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 (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=qxWp6a3HwZnmqXb+bhBKlmUo1MCnEn8NhVYJwJHgVh8=; b=l/3cwc+DQrKIHFSKnMEppGG3qRX64cjR+yn4ZsLVC0uPxXcEg2zWlhOjKlWD+F50fPfDJcpv1D1jHaDHLdN9HbWUkjJSWjKlO1JmcmNhOD8I+D8xvKtCq0VxaPQYUkMyxefx1KWlVrRxmh5kEe3sUajMrac4rDp03Q+87E5OUuow4qlRbhvSMXccadjUPPd9Z4oe8+VRs82px0osMunYqwSagJAKJQz5Ov36oAcyl/VgO7uTgaqztTRxTJJP/b3/tkHjy6l2FqII+Sdu5AA8igFSa8RxvZDMr+ndnq61jNKLhnwmCPOSE4sORApHFJutdd1JkZS28+REo5YgRYQxXg== 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 (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; 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 From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [PATCH v5 1/5] backends/iommufd: Introduce iommufd_backend_alloc_veventq Date: Wed, 11 Feb 2026 08:34:11 +0000 Message-ID: <20260211083415.133534-2-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260211083415.133534-1-skolothumtho@nvidia.com> References: <20260211083415.133534-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.231.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: SA2PEPF00003AE7:EE_|PH7PR12MB9173:EE_ X-MS-Office365-Filtering-Correlation-Id: 75d258a8-fe2f-4b92-364b-08de69487bd7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tNnH3gW6g66ffaOptfFa3wBaVHfaDoOgfbjX4ckMVbCUtmV4ClOPDOYm87od?= =?us-ascii?Q?fWN8A9Pwwjx+FVUzgETQ9K8esX2qBP9cqgJ1Yym+VTm+fFfrteb4z11AbyOm?= =?us-ascii?Q?VX4TqSmW/OYNXRM1uNkF6p3eUjHFyYbiS/2Kz06LERff9JzaC/8HTc8mftrE?= =?us-ascii?Q?+vRjbCxD7FFvufcSmLjNSvI66Gq8cVWDDf8ZR4XE2dO4+n+VhqFTtnPMUPAi?= =?us-ascii?Q?xQyfKnDf+SJS2msQzrFaCWhTmu/LNQkCY0wvonwmj2Lt9UP6M3tp9kDjLmAw?= =?us-ascii?Q?8Wjoc4EkKeZX8drSzRKXM/idIfqESbbN3pE7SeTkDze2PvZsZ7FPVVZF7sUE?= =?us-ascii?Q?cndY9u82xJuH9XVZaq4A5kTWC0F6Q5nOxUx4AOx0htJfJ4m8U4IRLBqKKYNg?= =?us-ascii?Q?9mHMLKEFwvvDq3vu0AtFLs6UB88d3K2NEWJzFDWn7floZ/IK4qYGrSn/HZFO?= =?us-ascii?Q?zAQeqVN4Sau0mivOqB2EQHpIYaqNCv2k+dp1uxJKi6+RbGMArXE014jWY98j?= =?us-ascii?Q?n/06i3L07uVuWPeaj3rs0eF0BQiN39ERH3HLG9eNgwNwkuT8+w+df+YQsE4L?= =?us-ascii?Q?8xakVoBsDIdfN1bKnWDh2ZeMF9UaJ0LaVmeUSrNKCF9T/gIZgO2FjfzTnR0J?= =?us-ascii?Q?5sCZR0UyCyEYHxqYoT9QnEO/vApvRqiYyQ6dRIS5RstO5Ze48wQZ1zAWVKcZ?= =?us-ascii?Q?sF1cML4fpKPYvZZpal7SaF+VGe2gMi2icVHicx4oMk1dTSkQRW75DufsURAR?= =?us-ascii?Q?lMW1krijpxyOmStNSHKTMJBpqP5oBlq9RIhHl2UJzkCl2eUpQCES3mgrI4iU?= =?us-ascii?Q?y+b7Ix45IcSzy/LaxkIGLzwylveQHpAkEvfOF8QUUllLaRt+LN15ioIpi/sM?= =?us-ascii?Q?oTO8/0Lctd6Fc2Yyu7Xkb1fz8Ic6Ye5kgNIH6K+EX+FtI6PtXmBjOcuBQHdp?= =?us-ascii?Q?Fo4j/p9PPKD+r2XkWWNfF4NhuU/eFlRWAggIMi2KTD8NyfL/Sp6llNmxWuTB?= =?us-ascii?Q?rYRckhVXOAILu+7WousIXjVyi4H8UJf9URL8GgWvgLKzaYM2VLP3pluwYZ6z?= =?us-ascii?Q?v3H9LAlP7wKjUT7mz8jG7DFZVTrs/+HLpa4oJLHV4pDFuRklX9w2f8CndeM2?= =?us-ascii?Q?mSoVHbA0U0hKHqkcxm2QliKRZLDc/m5HzQNK6aAg1ylt+/o6m1NWSStzg7Ib?= =?us-ascii?Q?GAH5Lhu6eSeldDGyCaYpBLyXBSzqkIdGbPYXDS6iH7vGT7cssSrez59grpRm?= =?us-ascii?Q?fIZeKt0CRAP1JTli6I7pZ96eyHSQTU7hUW9/U2EzEwBMf30uQDdbCNwbuCfj?= =?us-ascii?Q?iCxc/T9zvlSfjrz+bP1M25TC1ImcK0UJ+drMauF2N0FGy3715JoLppNPL2sR?= =?us-ascii?Q?jILaZK4ou0azwRpnMyDCBZSd86xtLffR+RaIJsQCOx5U0UkiVApbBLEOuZwF?= =?us-ascii?Q?eSh/aB1ycIxYqIee5kfCBG/8UX6kVsOd0G1kNxKQjuQfWJfwZSnndhWIOk/n?= =?us-ascii?Q?yKDIHgpmZ9/tqJMc2LRrWXYC+KUrQA87O0DLnT4dDIiqHkH/ns4kwxaq8pnE?= =?us-ascii?Q?BXuDUvQPHstkicXYd4Jgr3OzLizaPkkk2KJv41RN3KAUUizPjMq3N4IVt1XK?= =?us-ascii?Q?B261xhyBIHMf5xA03o6teS2jUej7+qQI20exr3UFdOdd6aeToK4XbPKvKIDX?= =?us-ascii?Q?lf/aUg=3D=3D?= 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)(36860700013)(82310400026)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: N4pvqb3GYlaCd+giNm3vzCmBjPYVAFE5Gtgbj2VF52oCh7odnrSmLaOfkkOqOYbez0mJhCWCi/508lmAjPOXI3tKb8mRl6DAyqf5Nz8gChPPtGsIpnfubl/8Ex+DL+Bon4XB0sotfbupCeoIkdVDixrhbY7Fkt/3jDh2zPoXXashHfxgJMtUHUoKli0LqxWrJlqEF5CRVe4ZMfGitgBvokMdQHxSoI6NA60AED9NidVEK/4lXpOR7RZgTRGK5pZdvW2KzsImhsQVMcNrriCZ0V3EAEjakaIv2qz3oumU7jH0YmHBOkVX9gycVSDgHO080gzDrx8Fiiz1pfZMZO08gQeWFYUf3tr82g1DRM1I0fL6w0El9iEiWJRREBrzw1Il94MFtVnpjt6uNMYEWaCLELk8kFCsDxk8AVBE765H7RuhcYZZWd+ah+MsjCjxcozl X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 08:35:16.8416 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 75d258a8-fe2f-4b92-364b-08de69487bd7 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: SA2PEPF00003AE7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB9173 Received-SPF: permerror client-ip=2a01:111:f403:c105::5; envelope-from=skolothumtho@nvidia.com; helo=CH5PR02CU005.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @Nvidia.com) X-ZM-MESSAGEID: 1770798975150158500 Content-Type: text/plain; charset="utf-8" From: Nicolin Chen Add a new helper for IOMMU_VEVENTQ_ALLOC ioctl to allocate a virtual event queue (vEVENTQ) for a vIOMMU object. Signed-off-by: Nicolin Chen Tested-by: Nicolin Chen Reviewed-by: Eric Auger Signed-off-by: Shameer Kolothum --- backends/iommufd.c | 31 +++++++++++++++++++++++++++++++ backends/trace-events | 1 + include/system/iommufd.h | 12 ++++++++++++ 3 files changed, 44 insertions(+) diff --git a/backends/iommufd.c b/backends/iommufd.c index 13822df82f..acfab907c0 100644 --- a/backends/iommufd.c +++ b/backends/iommufd.c @@ -504,6 +504,37 @@ bool iommufd_backend_alloc_vdev(IOMMUFDBackend *be, ui= nt32_t dev_id, return true; } =20 +bool iommufd_backend_alloc_veventq(IOMMUFDBackend *be, uint32_t viommu_id, + uint32_t type, uint32_t depth, + uint32_t *out_veventq_id, + uint32_t *out_veventq_fd, Error **errp) +{ + int ret; + struct iommu_veventq_alloc alloc_veventq =3D { + .size =3D sizeof(alloc_veventq), + .flags =3D 0, + .type =3D type, + .veventq_depth =3D depth, + .viommu_id =3D viommu_id, + }; + + ret =3D ioctl(be->fd, IOMMU_VEVENTQ_ALLOC, &alloc_veventq); + + trace_iommufd_viommu_alloc_eventq(be->fd, viommu_id, type, + alloc_veventq.out_veventq_id, + alloc_veventq.out_veventq_fd, ret); + if (ret) { + error_setg_errno(errp, errno, "IOMMU_VEVENTQ_ALLOC failed"); + return false; + } + + g_assert(out_veventq_id); + g_assert(out_veventq_fd); + *out_veventq_id =3D alloc_veventq.out_veventq_id; + *out_veventq_fd =3D alloc_veventq.out_veventq_fd; + return true; +} + bool host_iommu_device_iommufd_attach_hwpt(HostIOMMUDeviceIOMMUFD *idev, uint32_t hwpt_id, Error **errp) { diff --git a/backends/trace-events b/backends/trace-events index 8dc64a20d3..b9365113e7 100644 --- a/backends/trace-events +++ b/backends/trace-events @@ -23,6 +23,7 @@ iommufd_backend_get_dirty_bitmap(int iommufd, uint32_t hw= pt_id, uint64_t iova, u iommufd_backend_invalidate_cache(int iommufd, uint32_t id, uint32_t data_t= ype, uint32_t entry_len, uint32_t entry_num, uint32_t done_num, uint64_t da= ta_ptr, int ret) " iommufd=3D%d id=3D%u data_type=3D%u entry_len=3D%u entry= _num=3D%u done_num=3D%u data_ptr=3D0x%"PRIx64" (%d)" iommufd_backend_alloc_viommu(int iommufd, uint32_t dev_id, uint32_t type, = uint32_t hwpt_id, uint32_t viommu_id, int ret) " iommufd=3D%d type=3D%u dev= _id=3D%u hwpt_id=3D%u viommu_id=3D%u (%d)" iommufd_backend_alloc_vdev(int iommufd, uint32_t dev_id, uint32_t viommu_i= d, uint64_t virt_id, uint32_t vdev_id, int ret) " iommufd=3D%d dev_id=3D%u = viommu_id=3D%u virt_id=3D0x%"PRIx64" vdev_id=3D%u (%d)" +iommufd_viommu_alloc_eventq(int iommufd, uint32_t viommu_id, uint32_t type= , uint32_t veventq_id, uint32_t veventq_fd, int ret) " iommufd=3D%d viommu_= id=3D%u type=3D%u veventq_id=3D%u veventq_fd=3D%u (%d)" =20 # igvm-cfg.c igvm_reset_enter(int type) "type=3D%u" diff --git a/include/system/iommufd.h b/include/system/iommufd.h index 80d72469a9..e4ca16da70 100644 --- a/include/system/iommufd.h +++ b/include/system/iommufd.h @@ -56,6 +56,13 @@ typedef struct IOMMUFDVdev { uint32_t virt_id; /* virtual device ID */ } IOMMUFDVdev; =20 +/* Virtual event queue interface for a vIOMMU */ +typedef struct IOMMUFDVeventq { + IOMMUFDViommu *viommu; + uint32_t veventq_id; + uint32_t veventq_fd; +} IOMMUFDVeventq; + bool iommufd_backend_connect(IOMMUFDBackend *be, Error **errp); void iommufd_backend_disconnect(IOMMUFDBackend *be); =20 @@ -86,6 +93,11 @@ bool iommufd_backend_alloc_vdev(IOMMUFDBackend *be, uint= 32_t dev_id, uint32_t viommu_id, uint64_t virt_id, uint32_t *out_vdev_id, Error **errp); =20 +bool iommufd_backend_alloc_veventq(IOMMUFDBackend *be, uint32_t viommu_id, + uint32_t type, uint32_t depth, + uint32_t *out_veventq_id, + uint32_t *out_veventq_fd, Error **errp); + bool iommufd_backend_set_dirty_tracking(IOMMUFDBackend *be, uint32_t hwpt_= id, bool start, Error **errp); bool iommufd_backend_get_dirty_bitmap(IOMMUFDBackend *be, uint32_t hwpt_id, --=20 2.43.0 From nobody Thu Feb 12 01:05:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1770799006; cv=pass; d=zohomail.com; s=zohoarc; b=IPmW1/SmwarVr9O2HCCSf74CBihcPQesaCvaHgkb83JmXLahdP6FHHQZebP5pN/lQ6nX7tkv4vQ6TktDExir76Lo+M9hi29be3FXEDzTlou+PJeKtj1FUpzlWsfHH0T6nJWytPx/gMtVHxmup2+10rEqrOBJc4S+1FVfYIZbOvU= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770799006; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=FOsMj8wk5JeKKPi2aU01Lhh4S0Uf2VOAllAPUWpbf0Q=; b=CCGTlGa6cKoD2r7by2ANPSn6XfF5hqqYVop6qeJp94aVqqlSOglOPLNl+Ix+NbIxDStMpu32zTsHKA1WClIrzEJcubwrGP+NeqEQMoHbLV+ev/HVtl0phCdg56DFKlajEH//ZUYj7bsb9WNnFMEhQoqzfz4lfNp0+gT4idDfstI= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770799005855110.65591704310043; Wed, 11 Feb 2026 00:36:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vq5hA-0006TX-GX; Wed, 11 Feb 2026 03:35:36 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5h6-0006SI-8J; Wed, 11 Feb 2026 03:35:32 -0500 Received: from mail-eastusazlp170120007.outbound.protection.outlook.com ([2a01:111:f403:c101::7] helo=BL0PR03CU003.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5h4-0002lO-L6; Wed, 11 Feb 2026 03:35:32 -0500 Received: from SA1P222CA0071.NAMP222.PROD.OUTLOOK.COM (2603:10b6:806:2c1::18) by PH0PR12MB7837.namprd12.prod.outlook.com (2603:10b6:510:282::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb 2026 08:35:25 +0000 Received: from SA2PEPF00003AE7.namprd02.prod.outlook.com (2603:10b6:806:2c1:cafe::84) by SA1P222CA0071.outlook.office365.com (2603:10b6:806:2c1::18) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.10 via Frontend Transport; Wed, 11 Feb 2026 08:35:23 +0000 Received: from mail.nvidia.com (216.228.117.161) by SA2PEPF00003AE7.mail.protection.outlook.com (10.167.248.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 08:35:24 +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.2562.20; Wed, 11 Feb 2026 00:35:10 -0800 Received: from NV-2Y5XW94.nvidia.com (10.126.231.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.2562.20; Wed, 11 Feb 2026 00:35:07 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hi6zLFmThWvNl0xq2kKe6aRIsLetOiyVMROnIMX2x6PYz0pMQJdDT69+ZZ5q9HnYrwwt5CC/tkVxCb148248/HMq0vrTLORCBOf0VoXIMkoSHOPxY7b2ZLe1/8e9PFAG73x0d9wUr4Z3PJz+aQ/1So+uwn2w9KvoYFnTNLI9KuSqFbq8NZZf9HFMyAsL3sUc3nt1A4k27PfS5NcYBCHc3bAr6wI945XT+xVq0VotW3/GeWpctkDxcMKkp4E9xlllc6nbfijlJYltU71AYf9uAWYD4U4DDhtOf182XiQuioMVpyZ4ee/XoEaF7+RjJtW159MV7BZMEzgQDg1o7VdtVA== 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=FOsMj8wk5JeKKPi2aU01Lhh4S0Uf2VOAllAPUWpbf0Q=; b=mMJg1YoQvQXC9CsK6WPXaPOYFAuvWeW1/qw0Pr8gMUA66nOlsfJ+fJefNRJRMrF5IdqVLNFqlIUlQtg159jpURxKCqGL8EXvyuEu+CGnrHdvwfwR0iiiCDuFdHgulEgoO50fcSBHlALqGDeTK7jKuJ7WCC/rS1s9G6G8SiQpWRXzC2hlSoydXP/SpZjzpMC2+OpcbVK/OFqvZWpy/Lp01VDyusVu3xRgBCD4wOaLWBHCQ2rxVbFlDcqC604FdzVNKFT6068sOL79lmKppXSmlA+k29p78HJ50fXc4bmEc3GmNR/tEeahiLoBVdS24zc95KNiKuROMRWwb4fqTHlTjA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=nongnu.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 (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=FOsMj8wk5JeKKPi2aU01Lhh4S0Uf2VOAllAPUWpbf0Q=; b=BEvDoR4zcvkIwiC6yy8PKt3shy6Nm79ROwFLRlNxT009+3nKFz+1DYkO1kjx7etLLT2kSU1+h3z3a4wqLnTnaUagZxkfY4bpGiGpi+JsLn+an824Lm9L6b8pNZUSfNXNEVfwMhQP6kotX5YVpWMcl1Blb1N4xAitJl1clGPq4SpHi4hHPUeOe/9TVMTMF0CtIb4ZaRfQBguEhH/0WJC9A7uI+R+3r9x/GDYTASmHM+PqMRFiblmAt59TZZr4DBzov8bfFOBozYp0A/0UXeNYMjlYv1Knh9zEB0iVCRdFElQHtWmXk6kE2mOjlraSsDWHdg2MaeghMIdGsQUKnzUWiw== 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 (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; 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 From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [PATCH v5 2/5] hw/arm/smmuv3-accel: Add viommu free helper Date: Wed, 11 Feb 2026 08:34:12 +0000 Message-ID: <20260211083415.133534-3-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260211083415.133534-1-skolothumtho@nvidia.com> References: <20260211083415.133534-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.231.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: SA2PEPF00003AE7:EE_|PH0PR12MB7837:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b1c9c09-90d7-4f52-0854-08de694880b2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|82310400026|36860700013|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?PMpGb6V0Gt+ZCc8upf0hVwBzuhcK+ilzemXHzUo8+b3qbGFB0GPhmAuSip3D?= =?us-ascii?Q?I7BdmTk2a+UFWPi0pUq6rHQuOLbtg7IBkS7wI/9WITxnV4rcuZI7d7YbXkgj?= =?us-ascii?Q?qPhyzaxRSrQq6WQzLbtJs5L+QL0jTwn05TAUmCbpam8ve1Vuhm/5SSwVZRCb?= =?us-ascii?Q?Ymlztaymkm2lfy5KBNXoS9aoocahmR/7HjBgDQjcdTMzdGqsjggWvfCPlfuT?= =?us-ascii?Q?OogIFZ2NV7QObCYAwUWh6tqNFZQljiol2DfK9vTcN3rJZVT3GJE8iC8tMQng?= =?us-ascii?Q?Zz44HOKJ0EIdcgNB7gFOm3RkckpZgLDB+J/zUIvJVmpVBsaNFJBVpv6i4o+Y?= =?us-ascii?Q?tLFQ/ONHC7MjgXimA/cMT/4S5m1YfFdID5ne3FAZsmjJGrYjqy3dhYa7VVxG?= =?us-ascii?Q?FudaVzTrVoZJ0Ka1dxEhd4K5NeRdkeQsdslfm1JgK362VTj0TLvXYsiqH+zT?= =?us-ascii?Q?wUg+jAY+1+MCLgmrEyoKuP8mqdsdA4y+3qDDVqeq+xX8CJxcO4u6iEwDKY4A?= =?us-ascii?Q?C7MUDhWcfIPIAal328UVLG731FvCUUR1pmhlTqtq25F1DsEVtNhoGVymYp/t?= =?us-ascii?Q?V9NJzfWzZiftPVtbNvjXt7rA+R+NDp8zUccBwXEuEeeeF3oqcuNBp+XU9taF?= =?us-ascii?Q?/6W9HD2MIqfRByrghri1mfNbEleYHFUXBo2T0d4Y5HeXPmLJ8pHPv6N3OF7v?= =?us-ascii?Q?A3EQDxxKapnHadj4y0DPFMO+ATgqKR4kMmtjhLR5cCENZOaqNwJbDb3zWd7F?= =?us-ascii?Q?THdHp/gHHRJ6Ro44kYLADbtVKxnqQPCdtAVX29IYE3bgbHxfFzfblCPyMcrl?= =?us-ascii?Q?XX6XzW7ckq7R7YRRLFpIkDvdV+Q7j7/pu4HRP33g1++irDC+8fdS5m+fpl6m?= =?us-ascii?Q?sk8BujpZtt4HPDeLa4ePMx256r7kCOEEIkk/3sB7QNl25rDR0nuEk9ldbBZe?= =?us-ascii?Q?Vw2iCtVwBq55ImyNMfGhSVnkfqGvZf5buXNV6gR4nkpJUfCiwjwkadRWTuJi?= =?us-ascii?Q?Mi6iyrYmjITa7oT6Rge7zgvZ2Abvl45c2qQ30KewOTZlJVQ7hRaNojKiwbK+?= =?us-ascii?Q?c9A8NT1EH/iBfqz+wE6DewADtcMc8Mx1FE4LBEhubeD8olk6XcSbGtlhKmcV?= =?us-ascii?Q?rU1yzMSUWnQEs7xQJNXAYb03AHlqLJWVwFewBFD6zMameWXi/rK5ieHusK1N?= =?us-ascii?Q?Ysqe1AOVd1JMnkXa6FbyrRO8daiT0It5ZoC+DfO3cAnfJqElsYoidVTGjrBw?= =?us-ascii?Q?C66FA8MoMyg8Feb3lkdytYVDKpmg7fe+S7/hHipCJOE7s6JRJVyyphOcSmeB?= =?us-ascii?Q?wEicYCgGgiD0fnbaTX3Ry8Bki3x+bhYGt8MDREmQ3QxoDQ4ZzJn0qieg6g4w?= =?us-ascii?Q?Eor40TvyYweOC8KsmOMkYCfOZJg2iykNPglhe++IEprS0vMMJvVZ4iYNF21J?= =?us-ascii?Q?4ub/8+9NYRBxc+66xXlyJ9oOvXmIe9ARoG8teqmT0D/8fXEvm6KEplRKku0P?= =?us-ascii?Q?x2C2AxcV27wmDo7TRd5Xh3153CpFTPnWdi0OvNqwK7f4qjZ93LHVco/f95rO?= =?us-ascii?Q?s+G2fPR4jIhuqR3CZHAicLWtlAZ7kR/IA40W9/ZYaBVeSDu79bBGKU7PnvYw?= =?us-ascii?Q?gWjizgFdBHtIjqRmlbNgz+rxBr+FsB4xnO4FvUdYT+8c5sIcIH5NSvRXX4PQ?= =?us-ascii?Q?dgq3oQ=3D=3D?= 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)(376014)(82310400026)(36860700013)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3qsKQVnM1vOlIC/BqsovxRLKJ2nTYghMS/ct5TEDar/1q8Jfq3ovFiTjNgLxDjVVrJByis267DsmoqxUDA4EN4H3TyibWdwo5RMeHXGcaJdFNKWCMvrIqIf7Q397tEwFZDsw4GPtAHHuRkDKMXjPEh4VCF/RurPa57oJ/1Wtk2NT/ZQz6aXy1Lhk2ewlnRcX65FQPyRbixJSVl1PDY8TI1s8Q8Er0VFUt6glsLRnlm2zV5NiqgejG55GQUbX/J4MDRpAO2xgOF8mUeck/rKya+OmcAGJYfN62TubDn64zndtaYvN3ovHRudELSeQZB95Vc+GFkZkQJmUrAQmb205+x5S9mXqDjO/oEmNivz7pEsx5DOCicqB4llJG0uXMMTK8B2eJ1BZb5PSHZXMaBXocH9vN6OhjESk0wht/WS9THjKQKNomEYc90d81/TaHCrW X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 08:35:24.9360 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8b1c9c09-90d7-4f52-0854-08de694880b2 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: SA2PEPF00003AE7.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR12MB7837 Received-SPF: permerror client-ip=2a01:111:f403:c101::7; envelope-from=skolothumtho@nvidia.com; helo=BL0PR03CU003.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @Nvidia.com) X-ZM-MESSAGEID: 1770799007376158500 Content-Type: text/plain; charset="utf-8" Move viommu teardown into a helper function and use it from the last device removal path. No functional change. Reviewed-by: Nicolin Chen Signed-off-by: Shameer Kolothum Reviewed-by: Eric Auger --- hw/arm/smmuv3-accel.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index f5cd4df336..c19c526fca 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -390,6 +390,20 @@ bool smmuv3_accel_issue_inv_cmd(SMMUv3State *bs, void = *cmd, SMMUDevice *sdev, sizeof(Cmd), &entry_num, cmd, errp); } =20 +static void smmuv3_accel_free_viommu(SMMUv3AccelState *accel) +{ + IOMMUFDViommu *viommu =3D accel->viommu; + + if (!viommu) { + return; + } + iommufd_backend_free_id(viommu->iommufd, accel->bypass_hwpt_id); + iommufd_backend_free_id(viommu->iommufd, accel->abort_hwpt_id); + iommufd_backend_free_id(viommu->iommufd, accel->viommu->viommu_id); + g_free(viommu); + accel->viommu =3D NULL; +} + static bool smmuv3_accel_alloc_viommu(SMMUv3State *s, HostIOMMUDeviceIOMMUFD *idev, Error **errp) @@ -549,12 +563,7 @@ static void smmuv3_accel_unset_iommu_device(PCIBus *bu= s, void *opaque, trace_smmuv3_accel_unset_iommu_device(devfn, idev->devid); =20 if (QLIST_EMPTY(&accel->device_list)) { - iommufd_backend_free_id(accel->viommu->iommufd, accel->bypass_hwpt= _id); - iommufd_backend_free_id(accel->viommu->iommufd, accel->abort_hwpt_= id); - iommufd_backend_free_id(accel->viommu->iommufd, - accel->viommu->viommu_id); - g_free(accel->viommu); - accel->viommu =3D NULL; + smmuv3_accel_free_viommu(accel); } } =20 --=20 2.43.0 From nobody Thu Feb 12 01:05:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1770798998; cv=pass; d=zohomail.com; s=zohoarc; b=hjZKGiCoJbvjSWXrkYN7djEmOJ3wSuLbpMRuaM00p/jJ+LSP/UWjmMGkQqO1DE3NrQO0obHlZqg0NOuFy9kKPjpKFNxKQNoYIE4APdKOgHm0FWxD7iR/qKqy3Eo/eSXMOQkAIX4zrUDXpbHyWogD8SCcLCsOr/A78bAMYnZHYwY= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770798998; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=A9sZEVKa71d6M5XUl4QD93Mzpa5rjKkK1CXJKd5ijFY=; b=feJbqpEbS0qW71PmD4B8OASgef2La9HZIWTvcUcI0JK0BRU/VAfyvL7Sv8K/h56kIDGSi07lVRmOtJqPN+kB4e1UAlqV5X05c0lpKmhzsAg257fqkzJONXf+RtEqetTJ3omOIADDoN00Yfv80QFdTwqotmaeorsQ+/wOIA25iqc= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770798998587949.9184866791603; Wed, 11 Feb 2026 00:36:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vq5hK-0006kE-HM; Wed, 11 Feb 2026 03:35:46 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5hE-0006dB-T9; Wed, 11 Feb 2026 03:35:40 -0500 Received: from mail-westusazlp170120002.outbound.protection.outlook.com ([2a01:111:f403:c001::2] helo=SJ2PR03CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5hD-0002li-3y; Wed, 11 Feb 2026 03:35:40 -0500 Received: from BN9PR03CA0792.namprd03.prod.outlook.com (2603:10b6:408:13f::17) by MN2PR12MB4303.namprd12.prod.outlook.com (2603:10b6:208:198::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb 2026 08:35:31 +0000 Received: from BN3PEPF0000B06B.namprd21.prod.outlook.com (2603:10b6:408:13f:cafe::18) by BN9PR03CA0792.outlook.office365.com (2603:10b6:408:13f::17) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 08:35:29 +0000 Received: from mail.nvidia.com (216.228.117.161) by BN3PEPF0000B06B.mail.protection.outlook.com (10.167.243.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.0 via Frontend Transport; Wed, 11 Feb 2026 08:35:30 +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.2562.20; Wed, 11 Feb 2026 00:35:14 -0800 Received: from NV-2Y5XW94.nvidia.com (10.126.231.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.2562.20; Wed, 11 Feb 2026 00:35:11 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=M3dy4RRzcf4tA5ZyWYftkmOsS82iilZnBPp2SuQWp0u6O0yUf1DeqVvZVnqhI2GVbpkZDj09Oa3SYm/QyfLVkFLNL6s0sI+JOcN6KhUE1HEQGOT8zxKJksHzyZgmgCdc8XBaq45pbCBzhrLheqg6alXfY3J2sdLUMph0CqhYe8WXDrSuar9FLGxFjV8r2miJmTGPG92Faec7veljtbPLXpbV9d9nqqGA5K7ZRhRk6T22pCkLMLVmAqQphTQSHYfx2YlJZb9yALJmvrx0t4Wwn9aWcfZp35ZM3Tdxn6mOqodg8FvU9FdOrb06eIliVHm7FIU3MzCUI2M4puYJKLONng== 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=A9sZEVKa71d6M5XUl4QD93Mzpa5rjKkK1CXJKd5ijFY=; b=HIXJgcW1moz7bWVkjhqz5PrW+Xy+jISsrmf4fX1rUDfw5HKSlpcrgvqyKOfcYUFegv4JnXO7cuGfx9TOXTHV92e4+QW0NmXuGzBlYOt1NwLdq+7SR01Tx5BmIvhhiPTobs+/gWj5FSmNK/sxNauMcHHdcSKRhevz2hDKYmwmIAGpLgIsdW3+F565oTPplHCoMxQMPuIQe9hjjWmfLDVlmhXWliQ3BJftebH2gskjBwMMj0JHQGXFNNoBjQtOKx7Tqx1bszm384ke34O1X7gj+Eq1CWHk4fYVPvds2Qbp7fs7GT/ZELm4SzxJXwmzDZrEGktmwW//tQlIPCiSoiz6Fg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=nongnu.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 (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=A9sZEVKa71d6M5XUl4QD93Mzpa5rjKkK1CXJKd5ijFY=; b=UoPZAgXRkj51TIoxhQyUz+usa6kO9aci7AjtBLZG8irm/Y2a/hQlOOpkbvU7D4Zi3+LpLiuDuP9xk2pWbONbjnCKHSncl/RIAxlIsX+o1cLZPy4aNza3k/tRGgtppf1AjEMmy9zr13g+n8rviYJX79zvssv6uZe39FEe/gZmaDhxTpGVTPNXieYuK3kq8P6G+oLHTV/RKaSCaR79lslvkVLLA7rbovO6K6KiiAHHfH6XruZZAPsE5UnhYijNHlphNxzK41i6UPqXKJHY2LMO8j8VzBQO+jRb2P8borLr0U2uLnRCgypVofq/3uLpDMlQvp/IQcrHAjAOHOndmlWICg== 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 (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; 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 From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [PATCH v5 3/5] hw/arm/smmuv3-accel: Allocate vEVENTQ for accelerated SMMUv3 devices Date: Wed, 11 Feb 2026 08:34:13 +0000 Message-ID: <20260211083415.133534-4-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260211083415.133534-1-skolothumtho@nvidia.com> References: <20260211083415.133534-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.231.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: BN3PEPF0000B06B:EE_|MN2PR12MB4303:EE_ X-MS-Office365-Filtering-Correlation-Id: d45c7737-5e2a-40f7-742d-08de6948844f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|82310400026|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?quklAGjI6oYXTTz0tNq3KrPuizTfi/LjbeXdDSV/agJTQpwDiUCWMCV++qa7?= =?us-ascii?Q?/M/1qwFXAoRE3bB2RM/J5FRS3iA50xhLng/GFyB6g5xkPYmj3bE8vKi30EOJ?= =?us-ascii?Q?JAodE9MOaKstI71x7eRKp9hVCwW0VBnqy+zP/ZSTqWGqRPEstEOFNubqMRvA?= =?us-ascii?Q?N92YDj8mrq15se9vu+EO9EISyRsANGBoAZYUAlG/bSUB+ex8WT/2QBEug/RC?= =?us-ascii?Q?zijQ29Y/Kb8hPJLxwdrr2JMGSY7rl5yoAXl5wycz26SMfRjySg2GtEh9Wbns?= =?us-ascii?Q?Wjxa/FeW58bVw5jMoIU0zdqXrXMeosv71NSeKGYNqHqaJ1IunM4Yyf1sM+l7?= =?us-ascii?Q?y8hwrXAPYFYzxU5LWGB23ddA3ABLVN8HEY0JfvebudMDOcb5fMC4jGlYjOVk?= =?us-ascii?Q?MZnKfHZJdcZohua7Ca76FeegAu2v7slMwrVf2z1dgibF4f5+rF5nos9xFayA?= =?us-ascii?Q?F2T/0tR1V1zz1Cx3McyjhO7ajhrkpg+Mkty0DfGM25njmAqaVPr1HLYeyZQO?= =?us-ascii?Q?ioYR2bzGKrT93sWz0zv0w3XfIkvxIVcqCRgL0VMAgWKvu1VB3zgPU85+sicA?= =?us-ascii?Q?lb6bdVN+gj1Z/0GPRLG/MaU7RRsHT8/f1ZBY2x7Rr0vYmt+b7rDHT8tj3QKq?= =?us-ascii?Q?w+hcaKkLK7qakUWWJaD3NrJB8z2VRoObd5DS6NDl7Hfe5SWDdFnSBrBGZEMI?= =?us-ascii?Q?InlS84awDZx8t5jfRhNzpYdNcBJvBC2GmW0GOI58Os6TJwtBmXbvcBACkYj7?= =?us-ascii?Q?RuXFfhxq62VIJWALYjbsP+YnMV2p2rHSSeCFJe5nejuctEsjOne7bRCmSZ9g?= =?us-ascii?Q?+D6qMeOX0kOTLGoppTn/CVbsr5CmULSfwKZfgo1386JsWB7CCXh7gQn291Xq?= =?us-ascii?Q?DAGNGTq06SmXQ1/+hvTTqkxyRLdPlKT2PVHk5jRotjtJHT99ka4/Q8mz7ywx?= =?us-ascii?Q?3DSNsPtG5cPUrE04lhIZt9M4g1J2RUiBJ0aEwIMyxee3NQiHsp3fMl3bIOTk?= =?us-ascii?Q?be1LooXTdjEgmRmbh7X+vFarrNEp80+UxKmVtbZ27skZBuvb5yjI8fNBT4fr?= =?us-ascii?Q?+kkifb7hN5/BfCTHvAiBUM/FSdTT06pwXFkCWKaKePEebowAPyBrLSlcP9ag?= =?us-ascii?Q?WSlvGHKQqGxPLY4lAIKEdynFIjVGlC0IgAZdlQ8uy9JCniwn2057yKbPZPvM?= =?us-ascii?Q?X9MHiE76nFQiCqlWPRNRR1aSlahGsQZasLok3yr0J7P+RuMJyBtqISx9VsKt?= =?us-ascii?Q?qE18NKykUxs/vc1xldu0SOUiJnXYVGAksdjp7ny5m8QIwA5HrTRr1cTl0Lun?= =?us-ascii?Q?TSzDnQF/NqWN8CUqqwiae3xjUcgbjl6QrIN2QQqaqvHYjZt8/5GVLWqTT4/j?= =?us-ascii?Q?25fGpoFv9HF75cgi3vezn3IXql5bxpIiFgsdpmfaqUHzfl/Ya/BydBgNog6o?= =?us-ascii?Q?887DTUYhMXfOdAJjJdNAtR3ODpHJ6b7auPjiV8EG7LgJVA2ZaY+1QBS4h6b4?= =?us-ascii?Q?6UpJth4X9ZPiK4/qzx0vvNwM/nRfcBaKFn0P9cipYyfdoQ0avWScUZI4BPl+?= =?us-ascii?Q?590CuEFHFlz1E2c/Wrf3yf81arB3O3NMRC4YA3JRIDf81AtYsbBBkLIbBXP/?= =?us-ascii?Q?r+dseoJ3708mgMocy9NFxv9pJE7HiLoGfqIlxKlphninr2EZz9iSO9x81Wtw?= =?us-ascii?Q?Je+Vmw=3D=3D?= 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)(36860700013)(82310400026)(1800799024)(376014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Bg1n6QJ6ywGFesXJVu+JhHTjnD42tU3jYP3f7poknL1kEqsQ7Fg/wCpymY1C/VKKCan1F7d1yLFy6STRW6GbTDc8FQzvDgC59P+yW8jxv5Y1O/vpgn7kjf2XmVbXhPUfAT7v4GdeArHWSR2dYPKAQfdFcuj4sVYXFU5AzRU1qpOaw3ueGDqtWR/JlKHdu4O6mevZ0QKHtE8vHQ8h5ZQ0qOW1cgfRV1UVRZahpLlVEy6bHOVP7t36QtlZiy+xCb0nfnbP3aQwSAndqkOQ/Q0fUkqH5PfHDDWmBxHEku4uuduDReNJPU1AfAXj5/gRn5+XUJeJ4RmmNYMDQx2uK8mgEOamtTYpkMYBKVQLjFBYSjY4mKTIRObai1/oQIYRUWw7YYSrgodVMYmumjtX8jh+DCUT1tEEBRCrlJiqbbJyX4QpinxJqBLk8QsLmXduxh5Z X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 08:35:30.9705 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: d45c7737-5e2a-40f7-742d-08de6948844f 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: BN3PEPF0000B06B.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4303 Received-SPF: permerror client-ip=2a01:111:f403:c001::2; envelope-from=skolothumtho@nvidia.com; helo=SJ2PR03CU001.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @Nvidia.com) X-ZM-MESSAGEID: 1770798999347158500 Content-Type: text/plain; charset="utf-8" From: Nicolin Chen When the guest enables the Event Queue and a vIOMMU is present, allocate a vEVENTQ object so that host-side events related to the vIOMMU can be received and propagated back to the guest. For cold-plugged devices using SMMUv3 acceleration, the vIOMMU is created before the guest boots. In this case, the vEVENTQ is allocated when the guest writes to SMMU_CR0 and sets EVENTQEN =3D 1. If no cold-plugged device exists at boot (i.e. no vIOMMU initially), the vEVENTQ is allocated when a vIOMMU is created, i.e. during the first device hot-plug. Event read and propagation will be added in a later patch. Signed-off-by: Nicolin Chen Tested-by: Nicolin Chen Reviewed-by: Eric Auger Signed-off-by: Shameer Kolothum --- hw/arm/smmuv3-accel.c | 61 +++++++++++++++++++++++++++++++++++++++++-- hw/arm/smmuv3-accel.h | 6 +++++ hw/arm/smmuv3.c | 4 +++ 3 files changed, 69 insertions(+), 2 deletions(-) diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index c19c526fca..d92fcb1a89 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -390,6 +390,19 @@ bool smmuv3_accel_issue_inv_cmd(SMMUv3State *bs, void = *cmd, SMMUDevice *sdev, sizeof(Cmd), &entry_num, cmd, errp); } =20 +static void smmuv3_accel_free_veventq(SMMUv3AccelState *accel) +{ + IOMMUFDVeventq *veventq =3D accel->veventq; + + if (!veventq) { + return; + } + close(veventq->veventq_fd); + iommufd_backend_free_id(accel->viommu->iommufd, veventq->veventq_id); + g_free(veventq); + accel->veventq =3D NULL; +} + static void smmuv3_accel_free_viommu(SMMUv3AccelState *accel) { IOMMUFDViommu *viommu =3D accel->viommu; @@ -397,6 +410,7 @@ static void smmuv3_accel_free_viommu(SMMUv3AccelState *= accel) if (!viommu) { return; } + smmuv3_accel_free_veventq(accel); iommufd_backend_free_id(viommu->iommufd, accel->bypass_hwpt_id); iommufd_backend_free_id(viommu->iommufd, accel->abort_hwpt_id); iommufd_backend_free_id(viommu->iommufd, accel->viommu->viommu_id); @@ -404,6 +418,41 @@ static void smmuv3_accel_free_viommu(SMMUv3AccelState = *accel) accel->viommu =3D NULL; } =20 +bool smmuv3_accel_alloc_veventq(SMMUv3State *s, Error **errp) +{ + SMMUv3AccelState *accel =3D s->s_accel; + IOMMUFDVeventq *veventq; + uint32_t veventq_id; + uint32_t veventq_fd; + + if (!accel || !accel->viommu) { + return true; + } + + if (accel->veventq) { + return true; + } + + if (!smmuv3_eventq_enabled(s)) { + return true; + } + + if (!iommufd_backend_alloc_veventq(accel->viommu->iommufd, + accel->viommu->viommu_id, + IOMMU_VEVENTQ_TYPE_ARM_SMMUV3, + 1 << s->eventq.log2size, &veventq_i= d, + &veventq_fd, errp)) { + return false; + } + + veventq =3D g_new(IOMMUFDVeventq, 1); + veventq->veventq_id =3D veventq_id; + veventq->veventq_fd =3D veventq_fd; + veventq->viommu =3D accel->viommu; + accel->veventq =3D veventq; + return true; +} + static bool smmuv3_accel_alloc_viommu(SMMUv3State *s, HostIOMMUDeviceIOMMUFD *idev, Error **errp) @@ -429,6 +478,7 @@ smmuv3_accel_alloc_viommu(SMMUv3State *s, HostIOMMUDevi= ceIOMMUFD *idev, viommu->viommu_id =3D viommu_id; viommu->s2_hwpt_id =3D s2_hwpt_id; viommu->iommufd =3D idev->iommufd; + accel->viommu =3D viommu; =20 /* * Pre-allocate HWPTs for S1 bypass and abort cases. These will be att= ached @@ -448,14 +498,20 @@ smmuv3_accel_alloc_viommu(SMMUv3State *s, HostIOMMUDe= viceIOMMUFD *idev, goto free_abort_hwpt; } =20 + /* Allocate a vEVENTQ if guest has enabled event queue */ + if (!smmuv3_accel_alloc_veventq(s, errp)) { + goto free_bypass_hwpt; + } + /* Attach a HWPT based on SMMUv3 GBPA.ABORT value */ hwpt_id =3D smmuv3_accel_gbpa_hwpt(s, accel); if (!host_iommu_device_iommufd_attach_hwpt(idev, hwpt_id, errp)) { - goto free_bypass_hwpt; + goto free_veventq; } - accel->viommu =3D viommu; return true; =20 +free_veventq: + smmuv3_accel_free_veventq(accel); free_bypass_hwpt: iommufd_backend_free_id(idev->iommufd, accel->bypass_hwpt_id); free_abort_hwpt: @@ -463,6 +519,7 @@ free_abort_hwpt: free_viommu: iommufd_backend_free_id(idev->iommufd, viommu->viommu_id); g_free(viommu); + accel->viommu =3D NULL; return false; } =20 diff --git a/hw/arm/smmuv3-accel.h b/hw/arm/smmuv3-accel.h index a8a64802ec..dba6c71de5 100644 --- a/hw/arm/smmuv3-accel.h +++ b/hw/arm/smmuv3-accel.h @@ -22,6 +22,7 @@ */ typedef struct SMMUv3AccelState { IOMMUFDViommu *viommu; + IOMMUFDVeventq *veventq; uint32_t bypass_hwpt_id; uint32_t abort_hwpt_id; QLIST_HEAD(, SMMUv3AccelDevice) device_list; @@ -50,6 +51,7 @@ bool smmuv3_accel_attach_gbpa_hwpt(SMMUv3State *s, Error = **errp); bool smmuv3_accel_issue_inv_cmd(SMMUv3State *s, void *cmd, SMMUDevice *sde= v, Error **errp); void smmuv3_accel_idr_override(SMMUv3State *s); +bool smmuv3_accel_alloc_veventq(SMMUv3State *s, Error **errp); void smmuv3_accel_reset(SMMUv3State *s); #else static inline void smmuv3_accel_init(SMMUv3State *s) @@ -80,6 +82,10 @@ smmuv3_accel_issue_inv_cmd(SMMUv3State *s, void *cmd, SM= MUDevice *sdev, static inline void smmuv3_accel_idr_override(SMMUv3State *s) { } +static inline bool smmuv3_accel_alloc_veventq(SMMUv3State *s, Error **errp) +{ + return true; +} static inline void smmuv3_accel_reset(SMMUv3State *s) { } diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c index c08d58c579..210ac038fe 100644 --- a/hw/arm/smmuv3.c +++ b/hw/arm/smmuv3.c @@ -1605,6 +1605,10 @@ static MemTxResult smmu_writel(SMMUv3State *s, hwadd= r offset, s->cr0ack =3D data & ~SMMU_CR0_RESERVED; /* in case the command queue has been enabled */ smmuv3_cmdq_consume(s, &local_err); + /* Allocate vEVENTQ if EventQ is enabled and a vIOMMU is available= */ + if (local_err =3D=3D NULL) { + smmuv3_accel_alloc_veventq(s, &local_err); + } break; case A_CR1: s->cr[1] =3D data; --=20 2.43.0 From nobody Thu Feb 12 01:05:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1770798962; cv=pass; d=zohomail.com; s=zohoarc; b=dktmC8JjRQdFj002+Bge6AFywkwBf5LzZfrSyaAHcMKfAZKPiPB9a0nUOW7U5WTwcYoku4qgC4IJU4ZWZyOwad9GQn0xbpb8MxK2+jUvUXlJojB1DMy24KDJ8YDABHhTze3L8Jat4qAEfozCr1APUTtVxwID4aKGWAQcZWXqV/4= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770798962; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zZ44aXmBt53mz0Slgk1ui4ihtmzEBO/YNiuncm3EwTQ=; b=af0COpVm7qE/L5gNEdhKVWNgCgoJhuWKYYRPbkkdrYef2LO91NT0aYnNjwnRDLXJ8ZkOojOlbxX7mBru5tjPHwHEXd2zRkg8KhwwBRS9x8KucBwz/k++5ovflq5Q2lScB8yqRj6vBVyIaS2p33zleo6svmJTeg9Rynmw4TJgJ/I= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770798962726934.5619722441595; Wed, 11 Feb 2026 00:36:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vq5hU-0006oA-1c; Wed, 11 Feb 2026 03:35:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5hM-0006mT-Rk; Wed, 11 Feb 2026 03:35:49 -0500 Received: from mail-westusazlp170100001.outbound.protection.outlook.com ([2a01:111:f403:c000::1] helo=BYAPR05CU005.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5hH-0002lt-Fk; Wed, 11 Feb 2026 03:35:46 -0500 Received: from BLAPR03CA0063.namprd03.prod.outlook.com (2603:10b6:208:329::8) by DS4PR12MB999101.namprd12.prod.outlook.com (2603:10b6:8:2fb::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb 2026 08:35:36 +0000 Received: from BN3PEPF0000B06D.namprd21.prod.outlook.com (2603:10b6:208:329:cafe::ce) by BLAPR03CA0063.outlook.office365.com (2603:10b6:208:329::8) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.19 via Frontend Transport; Wed, 11 Feb 2026 08:35:36 +0000 Received: from mail.nvidia.com (216.228.117.161) by BN3PEPF0000B06D.mail.protection.outlook.com (10.167.243.72) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.0 via Frontend Transport; Wed, 11 Feb 2026 08:35:35 +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.2562.20; Wed, 11 Feb 2026 00:35:19 -0800 Received: from NV-2Y5XW94.nvidia.com (10.126.231.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.2562.20; Wed, 11 Feb 2026 00:35:15 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=enfqcDLNBkmZV01md2+IBMyCfjY5JqKr927LYtBG3XkQs+WO/6D55KMtiUq0FSnLjm7FctQGfTLj2R9El1CatDWOyqPQjtWJofs8hd+d7FEwIxlxOvKFnIYmp+ee8YHGU4OqefolpeMjewp/m5pnuUSjQfEaN6k4mwB1s8iH+VikxnA64mkAUxRcDAWoHD9T77Q8ZTrcsDvX/wMsmncRVWHNRSHoT7vYN+EH2iJJdFymWpaelK4vSh2+c3E0stYG7E7cLwkfE4ftKSqva8/rOxndZl6YYs/MooVjaf9oTUXMwz3L2phvMxkhXVvQGRkNzWAYRMfTxGb2U9jRAunhbw== 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=zZ44aXmBt53mz0Slgk1ui4ihtmzEBO/YNiuncm3EwTQ=; b=JdWdTP8gGBZ95XrPNwejhh0J1llXJmVCEDV+X2IGodGi3rzzetTkyEZ27B0t4Bu8HPzJx9s5cgujZiH4zHGEsGa3O/srhOfC4Nv0SXTxRrwTWgcRDsKZrRiif4iJBouTj/eIMs2e9KA7rOa3cT16YGT/jxzlI7WhsAs0epebA9oylktARPlrJb3s2ZsgTJciF4svGwdaAByJNKVUrTImjBisaPq0r6Nc+QK5vRXGPVHkNz/Y1SmXmIVEfLwkOlUZAFCNG99WXRvKDV3pQphmh/6iDwv+0g0Ht8YCvoqsjHhctQO3UNoTF1cX/u+uDbgSWLalyphCfFI7lKELBckotw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=nongnu.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 (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=zZ44aXmBt53mz0Slgk1ui4ihtmzEBO/YNiuncm3EwTQ=; b=KQiY99iJL0iz5SucT1VBtyKmyaY1zJHAtmnXDLSHrp4s+h7mq32mRjFDhbd/IgCNyv/Lsbn5Oxk6aGqprUHpcP6Yo7Q8e0dD2ePwc8oZMC7/bBPfUb+Q+TYd6HvXvOmn/WcFS0HspRbicAfmcRGr+bodCT03qIz4x85F0mYrT+W98l8UNZ0fCeQXqKLVNibJiR+Yy6rFjiQO5fLpsuiPfc0cN2lvUivjPt9mjhyRLQu3+9gXRYtlMMyctKE0EBtOHlR4y7mEA1iqeMuo85k+8sllxpfkrm9ijC0qQ5RJEWRe9rWs5TFLzLa2371ugL4zicxQ9tg6KbQPPSOdQJc9dQ== 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 (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; 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 From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [PATCH v5 4/5] hw/arm/smmuv3: Introduce a helper function for event propagation Date: Wed, 11 Feb 2026 08:34:14 +0000 Message-ID: <20260211083415.133534-5-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260211083415.133534-1-skolothumtho@nvidia.com> References: <20260211083415.133534-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.231.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: BN3PEPF0000B06D:EE_|DS4PR12MB999101:EE_ X-MS-Office365-Filtering-Correlation-Id: b9bdf8c4-387b-4acc-75f2-08de6948873b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|36860700013|1800799024|376014|82310400026; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tnlQmRPhwPLoM8FVx+TgUZwq+fantoyhTpXiYvm1pZKrDWSpspoXMKhS9Dgc?= =?us-ascii?Q?Twr0kYXwuRVsy39GqaJJKkYrKdsfxBenDkRBgqdhlhMtLgNbd39qYRTHypFR?= =?us-ascii?Q?hzgOC8Yw92tcGxEtgWf0+aWkST9K8ocLQl3ifFkyHHjR+og+KcK0EkYlItGd?= =?us-ascii?Q?W/+K/9lw8ts3oXyJJGrkUzOvkWPJRTjy0cH0ZDGipG050lk0Bfo2yRPd4NFF?= =?us-ascii?Q?LT4xsZUnJbprlVq1itcePcBOBvP4jNZEcEdWPiwVII56FB+U+AZVrN7pkX7K?= =?us-ascii?Q?3pp6l73F/hr0uuFH7uVTmsAwRuC7tEjhrR+yk5spSf9k+1sIOJ5IOnwrYkQC?= =?us-ascii?Q?thRLCLuFmJI6PkwhtL0ElOEM8ynEttzS5K2yw59EE2qu2iSCaNc5Ruh5C9Cp?= =?us-ascii?Q?/dRrRweHNhts3l2iAgU6lEFCCT1t0Bq1IjubM1dWqdDa4ejJMf0cAFUEpyC2?= =?us-ascii?Q?6LVn4dfmr0tSSvjunPoG5Tw2lkW5B9zSa5iTD+i52sNu0W0UYHioUOA3mZ56?= =?us-ascii?Q?MOQGTkW8hM3EFLEaizFeeJ5M7Dwc1FD9ShID7filVHIASem5qysTMWKTiLnL?= =?us-ascii?Q?oLhSJG7DkaJqMXvgeHZQIG5bgM34JjwbxHeohttUbkxdQNzuE+hgu0nNASv3?= =?us-ascii?Q?Hx9gOfyRtjSVvsHVRZ5hazehEYEYYqvPu0duodf+I0fKkEgsrr6WO/kKeDZK?= =?us-ascii?Q?TC/0BLwJzTX12o4LrcuRhF1z6RK3iQPIq+WPmUfb3K6pJ0y4pIwZhYNaxqFg?= =?us-ascii?Q?sXhnCPqPMrhv+c18VqWLi0g41VN+Vr4C7oybcNvgEuDzVU/TyZpLtzJSXmkm?= =?us-ascii?Q?cUAKC5yIgOahwpbTkJ0Qv0M24rSGevC61Jw9jw694N7Y3JxU+H/vio8vQBWa?= =?us-ascii?Q?jDf5xRioWHvobarIXA9GGKiELWmLFg8RKpudPXXUvmt3iToi5s1S53lrTHWK?= =?us-ascii?Q?UpiXEU8aUMIcjXsFO10q+tbOsljHlQO2Qokpf3rtdUTNcTV7ysrxFPNvs2YH?= =?us-ascii?Q?Tc+EoEXAf6KaYGM8r/i5fepZ48bqEF5DGSgJOpFSkJTKnsqXy9F6qEm1ZWdE?= =?us-ascii?Q?nKlesQB0skXk4eWYa8XiyUfycXaPfWkZNtasxxdP/RcTXC5LYSHa/xjClHDP?= =?us-ascii?Q?IU2XiKcRlch8LUdrOV0du19xQOGEaROsT9rBu7c/iA8hK5Rg0CedERqxKKm7?= =?us-ascii?Q?OgtdIFVWPlIYorlqxiFpPvOPQv2IaUOpWbaYRrMySs8WZ6p7v98nnet9bmma?= =?us-ascii?Q?aPFgMJCFaE/AdhUcvsYJDlkx2pJ7uBhSXsN73P9n88Z1X9Pqmoz9YR/6FabT?= =?us-ascii?Q?uL+EqnVix57a0CoO2hZAPYRJ0F8LxtpxdYk2vAyV4MJd2C6oQbW4fPAQWRwo?= =?us-ascii?Q?15IYq7uYbzo93AKG1mXiY50acuWE4vHgqEHMv67hZRUcxMOLZFrSHaX47ODR?= =?us-ascii?Q?O4wICvio3+DAceevuP/7KpkJgbig+IziNQxjhAlhgmTka9kQR1aU6Ha9ZJeM?= =?us-ascii?Q?XNjbsefLRk8tLJX9sKO96VRIqBxGrjkdRf/jUiB8SAaBBgYEchl0GA2Tqte7?= =?us-ascii?Q?MSFZUwxtFVO8kXYrTgaUqNsnysmzMA9L1et+bYxobM86eYmbYL+zcc5UfrYB?= =?us-ascii?Q?WQUKV/nlfUe1mWROX8C24cSKrFUFfV92fXNfZM8s7Oor/z2iVs1qHN7pqZQo?= =?us-ascii?Q?TEkR9g=3D=3D?= 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)(36860700013)(1800799024)(376014)(82310400026); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Xh/O5jzYcwF62RPilHEYbfb3WIO1EiQeYrmPJ5v4TuMHEBKp2Hvq6f6rJ7Q+OFhqto+xSWhD1APdv1Eia+NqVmRx0es84WGMvoPveSfERWmZ5rbJoWO1Z5O66+PMniIhh9eC/SJvSd3N/5LdqY6j+4nWLplk9FLvluI88JsModIaj7zyinezLAXkIHDqGdaDryhzSOyeaByLBU1ihNsc0oMITdHETd6AsVh0znteodQ+H0zAQNJ4CFsU4ooSwx+OTnqTrV9G+QsxLcxCNUzaghgtdxemHNlXAtyHRX9JZB1YV1GnQyuYzT40ZY0QV1unx3q+msmkAbd9pDiNvqjJkcX7QTmfQvlAMgh9IKxtqqZA3POTg7Ut40IZwhSQQFLQTnDmwT8NZ7G6Rh8Y+ej5QAQ4S2XUlbCs2mHtS/VYJ+C2JTJjpIY2rMaaArApaJou X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 08:35:35.8554 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b9bdf8c4-387b-4acc-75f2-08de6948873b 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: BN3PEPF0000B06D.namprd21.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB999101 Received-SPF: permerror client-ip=2a01:111:f403:c000::1; envelope-from=skolothumtho@nvidia.com; helo=BYAPR05CU005.outbound.protection.outlook.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FORGED_SPF_HELO=1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_PASS=-0.001, SPF_NONE=0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @Nvidia.com) X-ZM-MESSAGEID: 1770798963401158501 Content-Type: text/plain; charset="utf-8" Factor out the code that propagates event records to the guest into a helper function. The accelerated SMMUv3 path can use this to propagate host events in a subsequent patch. Since this helper may be called from outside the SMMUv3 core, take the mutex before accessing the Event Queue. No functional change intended. Reviewed-by: Nicolin Chen Reviewed-by: Eric Auger Tested-by: Nicolin Chen Signed-off-by: Shameer Kolothum --- hw/arm/smmuv3-internal.h | 4 ++++ hw/arm/smmuv3.c | 21 +++++++++++++++------ hw/arm/trace-events | 2 +- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/hw/arm/smmuv3-internal.h b/hw/arm/smmuv3-internal.h index a6464425ec..b666109ad9 100644 --- a/hw/arm/smmuv3-internal.h +++ b/hw/arm/smmuv3-internal.h @@ -352,7 +352,11 @@ typedef struct SMMUEventInfo { (x)->word[6] =3D (uint32_t)(addr & 0xffffffff); \ } while (0) =20 +#define EVT_GET_TYPE(x) extract32((x)->word[0], 0, 8) +#define EVT_GET_SID(x) ((x)->word[1]) + void smmuv3_record_event(SMMUv3State *s, SMMUEventInfo *event); +void smmuv3_propagate_event(SMMUv3State *s, Evt *evt); int smmu_find_ste(SMMUv3State *s, uint32_t sid, STE *ste, SMMUEventInfo *e= vent); =20 static inline int oas2bits(int oas_field) diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c index 210ac038fe..148af80efd 100644 --- a/hw/arm/smmuv3.c +++ b/hw/arm/smmuv3.c @@ -168,10 +168,23 @@ static MemTxResult smmuv3_write_eventq(SMMUv3State *s= , Evt *evt) return MEMTX_OK; } =20 +void smmuv3_propagate_event(SMMUv3State *s, Evt *evt) +{ + MemTxResult r; + + trace_smmuv3_propagate_event(smmu_event_string(EVT_GET_TYPE(evt)), + EVT_GET_SID(evt)); + qemu_mutex_lock(&s->mutex); + r =3D smmuv3_write_eventq(s, evt); + if (r !=3D MEMTX_OK) { + smmuv3_trigger_irq(s, SMMU_IRQ_GERROR, R_GERROR_EVENTQ_ABT_ERR_MAS= K); + } + qemu_mutex_unlock(&s->mutex); +} + void smmuv3_record_event(SMMUv3State *s, SMMUEventInfo *info) { Evt evt =3D {}; - MemTxResult r; =20 if (!smmuv3_eventq_enabled(s)) { return; @@ -251,11 +264,7 @@ void smmuv3_record_event(SMMUv3State *s, SMMUEventInfo= *info) g_assert_not_reached(); } =20 - trace_smmuv3_record_event(smmu_event_string(info->type), info->sid); - r =3D smmuv3_write_eventq(s, &evt); - if (r !=3D MEMTX_OK) { - smmuv3_trigger_irq(s, SMMU_IRQ_GERROR, R_GERROR_EVENTQ_ABT_ERR_MAS= K); - } + smmuv3_propagate_event(s, &evt); info->recorded =3D true; } =20 diff --git a/hw/arm/trace-events b/hw/arm/trace-events index 8135c0c734..3457536fb0 100644 --- a/hw/arm/trace-events +++ b/hw/arm/trace-events @@ -40,7 +40,7 @@ smmuv3_cmdq_opcode(const char *opcode) "<--- %s" smmuv3_cmdq_consume_out(uint32_t prod, uint32_t cons, uint8_t prod_wrap, u= int8_t cons_wrap) "prod:%d, cons:%d, prod_wrap:%d, cons_wrap:%d " smmuv3_cmdq_consume_error(const char *cmd_name, uint8_t cmd_error) "Error = on %s command execution: %d" smmuv3_write_mmio(uint64_t addr, uint64_t val, unsigned size, uint32_t r) = "addr: 0x%"PRIx64" val:0x%"PRIx64" size: 0x%x(%d)" -smmuv3_record_event(const char *type, uint32_t sid) "%s sid=3D0x%x" +smmuv3_propagate_event(const char *type, uint32_t sid) "%s sid=3D0x%x" smmuv3_find_ste(uint16_t sid, uint32_t features, uint16_t sid_split) "sid= =3D0x%x features:0x%x, sid_split:0x%x" smmuv3_find_ste_2lvl(uint64_t strtab_base, uint64_t l1ptr, int l1_ste_offs= et, uint64_t l2ptr, int l2_ste_offset, int max_l2_ste) "strtab_base:0x%"PRI= x64" l1ptr:0x%"PRIx64" l1_off:0x%x, l2ptr:0x%"PRIx64" l2_off:0x%x max_l2_st= e:%d" smmuv3_get_ste(uint64_t addr) "STE addr: 0x%"PRIx64 --=20 2.43.0 From nobody Thu Feb 12 01:05:32 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass(p=reject dis=none) header.from=nvidia.com ARC-Seal: i=2; a=rsa-sha256; t=1770798984; cv=pass; d=zohomail.com; s=zohoarc; b=iDUKlV8P+jGrgPiCfs2EC9PI35SxJfhGTWzLpZIIxbj7ARBPTjjBc4awB/zSanNKS3NMhkUgXppPYWWMFgM1SUaXfXMZ/7eyASmYMAHWTOohAh0vBqV/OlvyepxLDXv97LE2pTElTabdjlj/nvPm8Av6SiHHDxdqYXQkvGbTjgE= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1770798984; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=s8EJWlSU+V3M5XnhTqMiDvsUhp96w6z5Xu2cN9XhREc=; b=jYz+CkaLziEkDV6UhwFrKxdq1k1CwVhzMKDRxkRSoDJL+ofYLR7LfUD5A1cpciV4+jpt7EvyV+VNL3LELAZWHPdwu5zXS0Jeybg4Dl6XbHzNFlvdfxywuS5PIqtIfem2eg0gGauNKntEcJsPyQl4hFrHRBKDzsGJgaOLheVpT24= ARC-Authentication-Results: i=2; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=nvidia.com); dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1770798984636180.58481454634943; Wed, 11 Feb 2026 00:36:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vq5hY-0006rj-87; Wed, 11 Feb 2026 03:36:00 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5hP-0006o4-CZ; Wed, 11 Feb 2026 03:35:51 -0500 Received: from mail-westus3azlp170100009.outbound.protection.outlook.com ([2a01:111:f403:c107::9] helo=PH7PR06CU001.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vq5hN-0002mL-KC; Wed, 11 Feb 2026 03:35:50 -0500 Received: from PH3PEPF000040A8.namprd05.prod.outlook.com (2603:10b6:518:1::4a) by CH3PR12MB7738.namprd12.prod.outlook.com (2603:10b6:610:14e::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.10; Wed, 11 Feb 2026 08:35:39 +0000 Received: from CY4PEPF0000E9CD.namprd03.prod.outlook.com (2a01:111:f403:f912::4) by PH3PEPF000040A8.outlook.office365.com (2603:1036:903:49::3) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.9587.15 via Frontend Transport; Wed, 11 Feb 2026 08:35:39 +0000 Received: from mail.nvidia.com (216.228.117.160) by CY4PEPF0000E9CD.mail.protection.outlook.com (10.167.241.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.8 via Frontend Transport; Wed, 11 Feb 2026 08:35:38 +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.2562.20; Wed, 11 Feb 2026 00:35:23 -0800 Received: from NV-2Y5XW94.nvidia.com (10.126.231.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.2562.20; Wed, 11 Feb 2026 00:35:20 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wiVvZrGHX/H1O3Ho8eM5c/PlC7VHnuCzzYvhyQnOibI3O4fVB+Slb+6hIz+u7y541z78emTnpDAGssBu06kEuiDVCVckSEPvfWSc9vzwd01hqET7HcvwlURTr/SaItIM72CupdS9ix5Ru7NXgej3abdUhcYl0WvJlaiEkk1ndDLAIhCmwL3AQJu211bMQtiphWomlbOh8uNlroW8pc7bJVtyg7W96S+ioEV001qomOlCBdHsriAKltME2/V1WjvJ8cYnlKMmK76wYWuxjRLLF5X1/AmVDBrqoXsWy48KgqOSchoqD9n0QTGsef1aGMkD0+iKFX5oVd/hbiK4ep+Lvw== 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=s8EJWlSU+V3M5XnhTqMiDvsUhp96w6z5Xu2cN9XhREc=; b=lQRF/9Z29ZfTMvOfq5pbuJQF6j3hUZXNf1nAETPmEJP22vYMSsWN000V2hnsNuJr6tYbZN8bSpAEC0coSfqUzskE8d3i6ffKUP3mNlLl9x3YV3Xvgy5ssDTuMOIeO74oh4Ny7SNBa9g/ZqsB+AMogonLjbb3iPgZnFkJqtu5qTjYpVmI0D7VFSzbTqnum0q8DF3SFH4FZn5rRpLa6lDC5pWxtY9/0WjCpbxCnXSNaSVXtmg1YTgq1tqCm9XZEjKnSOKsaMViT9dccLxazW11AMtRBAdhG1vBCuyRBTA7DjO5p0nYuqbIy1wsilJUWZyKVWpyMQzE008MlsHXEgYSQw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=nongnu.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 (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=s8EJWlSU+V3M5XnhTqMiDvsUhp96w6z5Xu2cN9XhREc=; b=T9nI0oCOhYaZl6I4jAJOoO1JiNwgF2uff9g13Wx36MkWpaNo7hn9cRSTW6H0TLpNJw47JPCVswXifVfGYCCxOj7gL8kTGEXzG8Sok8gIF+KvwMHCLzdbDzJg2LaxO5HjBR1m6NPJ2VJVdqpSmixYVcnvbQ7629GtlJRetxwudah6SilPHNgJsyujmCOEwDyu63HRvmA1lTKQBCokH18W3OQPmGg9pKRvZLZkaiYQlRR1L3aP0LpsRL1G9RUZ8mVPN7VQds0aP+ZRIFJpzkZXuXxNtrgMCyzcV/GAjLrSzDhExWfg7ueq7KQqkL1Xzyj6q+x27UpNXEHIZdG/rJandA== 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 (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; 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 From: Shameer Kolothum To: , CC: , , , , , , , , , , , Subject: [PATCH v5 5/5] hw/arm/smmuv3-accel: Read and propagate host vIOMMU events Date: Wed, 11 Feb 2026 08:34:15 +0000 Message-ID: <20260211083415.133534-6-skolothumtho@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260211083415.133534-1-skolothumtho@nvidia.com> References: <20260211083415.133534-1-skolothumtho@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Originating-IP: [10.126.231.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: CY4PEPF0000E9CD:EE_|CH3PR12MB7738:EE_ X-MS-Office365-Filtering-Correlation-Id: 66c35351-17b1-4c7c-cac1-08de694888f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|36860700013|82310400026|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?N2cG66hItPweL2IdtyRLw6I88KxPUMpSycmX++QKf4HElp4AQ/wGSz20MXTq?= =?us-ascii?Q?5RSM22aVnzxxZepmVZkbl8a4DPbHVCzfqwgUSW3xAk/kyLOYr3NcskZgpDUL?= =?us-ascii?Q?VTi4WCR0Yauv/K8hEXovyUV1nfAQPOGtqG+LbUSQHoGLSzONJ1ELsSj97wws?= =?us-ascii?Q?q7vtLZZAjyxP0PHPk3Rvcg6n7stpJSRfDB64He81gzDuW7s7zBIvhNqKYB/U?= =?us-ascii?Q?XaKFOS0+FdDGKEj/phdP7+nh8EGsK8XgBarJz9PiJ09u9smli1o12NtcyePi?= =?us-ascii?Q?RuUkIxSqwvku60SRxd1N/As+sKcR89rWRoby8TdbkuOFrMI8yBlr6QBp1Plk?= =?us-ascii?Q?GtVWlg38er3xL0v7BXQkXLU3vEragWKa3FBAaqcz5Kf8qthGI+/qFY6CCWsE?= =?us-ascii?Q?Ek62ATdy3ds4YVd59rhPUwOnm370997hMLTVu1NjeHG0DxS+eattN9QqZNzs?= =?us-ascii?Q?R36SRbDw6PeRt0YEaP5BXp5ZjcAQ4MaZ4mQHYMncabYhdAi/nMF5uCR3I7op?= =?us-ascii?Q?qJpm8wOHiwTKV4txg3wG/76LC3hatcDfa2LnR0FaJLaNfwVG0MEgl17bQFyM?= =?us-ascii?Q?I+4ZEmfHO9jvMCu+lV/xsIZuFDNtD0LvtrPvuE/tXESgY+tQnz8hQC1qR/FS?= =?us-ascii?Q?nYtf1C1XbZqBmzRsgsX0pnfG2PLhnC+fEztVk3RyfTdhOTB3TGcBF4UVaySe?= =?us-ascii?Q?ogDFG4YZv5+odC5Vn1TZONsL7JR/BERh/NoTeZi46YeQhrnZbYIJ2HaixV/L?= =?us-ascii?Q?YMxJPaUwALwdVw99SK+jMb81W+V4U+4o5CSGpaM3Rb6iN8QRmXkxUxFzN599?= =?us-ascii?Q?UUiwTvHNxA6shHFiMgu5T3Xpm27RCSMLDVXDw4iT8gimei1Tyl4FZg5TOvHG?= =?us-ascii?Q?V2/uG/RW+e8Yhnsfe7RIMKEw/owXUwRHNdmIdaa9Wqvf5q+swzsZBjF4V4wu?= =?us-ascii?Q?CQLGcGnl0qnjP4rR/bI4tnWL0dZKmcMEW7rpM7mP26dbrX1w+uBIHiSDRDSj?= =?us-ascii?Q?5M5YvxxiqYmWtyv4wPABxrt53PGB0zjNM8HKoJhvAdLFf2IwqpudK9syrxfI?= =?us-ascii?Q?+tJ1xV0pKz01A4jqjgJnzg/gAugDT9/iF5ru9FNyw4VLs2Bm7zhmNFzlod44?= =?us-ascii?Q?3+fwwLhkX3f8jcKHM7r+bAJCrLdANAHXDPXgwfWqqKwO+yHrmypyAXPiKMEe?= =?us-ascii?Q?B92Yz+SHfTws8WbSLf9p8mzWVw4AbYTglv1b6ZWLm1LMsJYiKAZLCHft+HVK?= =?us-ascii?Q?uhGYeLBNVol842ClDa7gNIMJR4hFY/3AF4VxCbCDv7MAtGQ+uKdwegObGSaI?= =?us-ascii?Q?7YZTdGrrAgZlGXISWxFQHx2BS5FHJibpDvUjMxrZxyCW0UufdUI/+wzcektC?= =?us-ascii?Q?2jVpKOWU+JpP5IFBICrgAM51kUEwT/ReMBkhtrXyGDUGmwH5b3BJRUjes1Io?= =?us-ascii?Q?Yox+9Dnd8rY4JaM89v7STixzz9uGkCvAwW7qy6fRS9GPhe10bu0VHAvZ1Fya?= =?us-ascii?Q?Xh5Pjjg9Fai9Ot5l9wZ8BfSbpCTAVTbtSy96wQvdu3VB0uo7NaGhLpTdDMq5?= =?us-ascii?Q?0STIQFITNnxvHJgowfDdceJhivL1LUQzAy0dbrDlRwzUdxt/v8uENQrcyQkQ?= =?us-ascii?Q?fsZDScypn7asTncl85u/YcbX4ZBMgjtM0UnoiLDAwJzQYY/GWM8y+wDdrtxI?= =?us-ascii?Q?Ba64Lg=3D=3D?= 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:(13230040)(376014)(36860700013)(82310400026)(1800799024); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: R3D+5T6Za2IucudDacpUN0twu4zAQB2dlYuivVcYg269D6c9ZPcdV6JBUu85M5EHRtAHFZsG41XUm0CGC0fYWB/Rt/D356L2Y+rvDl72Xk8+B0Am1HAdrJw1cY/OdKnROfvaXcZnkRilOYoTYU0EqSl6H3b4f83iftjMISS3Bm1arsLv2Yyp9Wls9vcllsbKPRvFjYH57ohtJjjw5/ej9gPhZtVvG83W7AKtrxXrB1lE2Hyoahj3g7w3tMiWTS/rh0ajT7KUiAfHDyg23yjyIEC/M9KkKWbDZH7tTZxjAzQhg3mVZW4vf8MceLtqCpaWbabQ6LZy0bOwkcoOHe+zBb4vssEd9bwm8YWHUF8OnT8pCKAuZVL4gP+uYx2+I9cTCNIgOelmccIsVcQrQnF+B45Z98MsPQLRJASrVhB9tjK9jAu0pnYLs7N6cgJt0hVJ X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2026 08:35:38.8199 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 66c35351-17b1-4c7c-cac1-08de694888f2 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: CY4PEPF0000E9CD.namprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR12MB7738 Received-SPF: permerror client-ip=2a01:111:f403:c107::9; envelope-from=skolothumtho@nvidia.com; helo=PH7PR06CU001.outbound.protection.outlook.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_NONE=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: qemu development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @Nvidia.com) X-ZM-MESSAGEID: 1770798985790154100 Content-Type: text/plain; charset="utf-8" Install an event handler on the vEVENTQ fd to read and propagate host generated vIOMMU events to the guest. The handler runs in QEMU's main loop, using a non-blocking fd registered via qemu_set_fd_handler(). Tested-by: Nicolin Chen Signed-off-by: Shameer Kolothum Reviewed-by: Eric Auger --- hw/arm/smmuv3-accel.c | 62 +++++++++++++++++++++++++++++++++++++++++++ hw/arm/smmuv3-accel.h | 2 ++ 2 files changed, 64 insertions(+) diff --git a/hw/arm/smmuv3-accel.c b/hw/arm/smmuv3-accel.c index d92fcb1a89..0d5dcef941 100644 --- a/hw/arm/smmuv3-accel.c +++ b/hw/arm/smmuv3-accel.c @@ -390,6 +390,48 @@ bool smmuv3_accel_issue_inv_cmd(SMMUv3State *bs, void = *cmd, SMMUDevice *sdev, sizeof(Cmd), &entry_num, cmd, errp); } =20 +static void smmuv3_accel_event_read(void *opaque) +{ + SMMUv3State *s =3D opaque; + SMMUv3AccelState *accel =3D s->s_accel; + struct { + struct iommufd_vevent_header hdr; + struct iommu_vevent_arm_smmuv3 vevent; + } buf; + uint32_t last_seq =3D accel->last_event_seq; + ssize_t bytes; + + bytes =3D read(accel->veventq->veventq_fd, &buf, sizeof(buf)); + if (bytes <=3D 0) { + if (errno =3D=3D EAGAIN || errno =3D=3D EINTR) { + return; + } + error_report_once("vEVENTQ: read failed (%m)"); + return; + } + + if (bytes =3D=3D sizeof(buf.hdr) && + (buf.hdr.flags & IOMMU_VEVENTQ_FLAG_LOST_EVENTS)) { + error_report_once("vEVENTQ has lost events"); + accel->event_start =3D false; + return; + } + if (bytes < sizeof(buf)) { + error_report_once("vEVENTQ: incomplete read (%zd/%zd bytes)", + bytes, sizeof(buf)); + return; + } + + /* Check sequence in hdr for lost events if any */ + if (accel->event_start && (buf.hdr.sequence - last_seq !=3D 1)) { + error_report_once("vEVENTQ: detected lost %u event(s)", + buf.hdr.sequence - last_seq - 1); + } + accel->last_event_seq =3D buf.hdr.sequence; + accel->event_start =3D true; + smmuv3_propagate_event(s, (Evt *)&buf.vevent); +} + static void smmuv3_accel_free_veventq(SMMUv3AccelState *accel) { IOMMUFDVeventq *veventq =3D accel->veventq; @@ -397,6 +439,7 @@ static void smmuv3_accel_free_veventq(SMMUv3AccelState = *accel) if (!veventq) { return; } + qemu_set_fd_handler(veventq->veventq_fd, NULL, NULL, NULL); close(veventq->veventq_fd); iommufd_backend_free_id(accel->viommu->iommufd, veventq->veventq_id); g_free(veventq); @@ -424,6 +467,7 @@ bool smmuv3_accel_alloc_veventq(SMMUv3State *s, Error *= *errp) IOMMUFDVeventq *veventq; uint32_t veventq_id; uint32_t veventq_fd; + int flags; =20 if (!accel || !accel->viommu) { return true; @@ -445,12 +489,30 @@ bool smmuv3_accel_alloc_veventq(SMMUv3State *s, Error= **errp) return false; } =20 + flags =3D fcntl(veventq_fd, F_GETFL); + if (flags < 0) { + error_setg_errno(errp, errno, "Failed to get flags for vEVENTQ fd"= ); + goto free_veventq; + } + if (fcntl(veventq_fd, F_SETFL, flags | O_NONBLOCK) < 0) { + error_setg_errno(errp, errno, "Failed to set O_NONBLOCK on vEVENTQ= fd"); + goto free_veventq; + } + veventq =3D g_new(IOMMUFDVeventq, 1); veventq->veventq_id =3D veventq_id; veventq->veventq_fd =3D veventq_fd; veventq->viommu =3D accel->viommu; accel->veventq =3D veventq; + + /* Set up event handler for veventq fd */ + qemu_set_fd_handler(veventq_fd, smmuv3_accel_event_read, NULL, s); return true; + +free_veventq: + close(veventq_fd); + iommufd_backend_free_id(accel->viommu->iommufd, veventq_id); + return false; } =20 static bool diff --git a/hw/arm/smmuv3-accel.h b/hw/arm/smmuv3-accel.h index dba6c71de5..c9c10e55c3 100644 --- a/hw/arm/smmuv3-accel.h +++ b/hw/arm/smmuv3-accel.h @@ -23,6 +23,8 @@ typedef struct SMMUv3AccelState { IOMMUFDViommu *viommu; IOMMUFDVeventq *veventq; + uint32_t last_event_seq; + bool event_start; uint32_t bypass_hwpt_id; uint32_t abort_hwpt_id; QLIST_HEAD(, SMMUv3AccelDevice) device_list; --=20 2.43.0