From nobody Sat Jul 25 13:39:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1784325703846567.2824225849658; Fri, 17 Jul 2026 15:01:43 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 6DD6641DE5; Fri, 17 Jul 2026 18:01:42 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id DD23B41DED; Fri, 17 Jul 2026 18:00:49 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id EDCFD41A69; Fri, 17 Jul 2026 18:00:40 -0400 (EDT) Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010064.outbound.protection.outlook.com [52.101.56.64]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id CEC3141A4F for ; Fri, 17 Jul 2026 18:00:39 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by DS0PR12MB7900.namprd12.prod.outlook.com (2603:10b6:8:14e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Fri, 17 Jul 2026 22:00:32 +0000 Received: from DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720]) by DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720%6]) with mapi id 15.21.0223.012; Fri, 17 Jul 2026 22:00:32 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aDobK4MYCJSeNQKGNpL0GYniGigpDALYzW+LqANFRcnl5teeYSOBoWTgbouC9IfUW3YFHlDaRUcddNzBmdsKunTRWc09hbPoj/qw6ljSKEv0R4x0Blg9W51WMU+3V7ETOOk77X/BtNaI2Q5d3m9q+lWp30Wk1HNCCoGty9FReWK1k9rWgGmL4YtonZKUVp/ivpweuasTs1TcFe16L35A4nhtSG+4X8hauaTpxkmiPiLYn7/h2ei41qCQ8XFuLzSyBdI7s0k0C7Jby64JVFSjRBWyiEKFk2EBIOOcjtbmxo3n9Zsf7H/9E72Whc75Kjv7gtT+ugcz4926ja/nY0fMNw== 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=a71WI7H8ugJ50iFwOog3wDwwEg6iHcWEZ9lNpzn+Kkk=; b=w4Uu1MrVhoBXKEcIX8jJHivw0Gz5Bog67uDlxTUEjuRMq4oFlFOAjY68wJEZ5/2GVZPkYBn+GfDZ6rFFvDuptZhJlmJOEafqbsibIO4gxfHgAz4l4vbu2FYjJAhoWZO3Iviu0qVFWOFdTC7wm7hjEO0MGXmCFVIgJdmPytSMSHHVkZqWXApgfbU1nbJyIIE5G6N9SxPboCQo/bKxXj4N+ab7mva9GBrpvgJUFlTzmSaqalN45wrBYDRQfVQSmqXhtDF3QXn44kSwYsG0JXUlZ9EjQhAhsGBWXfTKd5SbmFH/WEaFtdZk7vd7y5uZ/TQer93Ns1ZuBqpY+Ap45cne7g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a71WI7H8ugJ50iFwOog3wDwwEg6iHcWEZ9lNpzn+Kkk=; b=Gdbh3cExmGVVdOtfojVx/JRFGvm2zDhdQl5GdhGlGseUHdRzdVS0sQZ3Uufzjiq+HXiOEQtWmqE4GyfW95ucXsz4x0rX5BJ8SWdG/puIK+3JGHG7aasDt3usujZFw4+o4sDx6N0N9rYNXqt3fJvcAbc4oB8H9Mj1PNz9059CgbZ3A/+xqbpKocRVC3kkfNMz4AE7t6esmKiG19FqTsTpWoKdDw5HtVSFsIYg+WG8bKiWWF8jz7WLcILw18xYJ7oKTAPgffR/I538V1xsptCRvtaBpNFqepD7kN1y5fRSQK12uufcBR39jBScDFCqUf3epD2+w+izF08uRu/9aRq7Jg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH v10 1/6] conf: Include check for pci_bus in virDomainIOMMUDefEquals() Date: Fri, 17 Jul 2026 15:00:20 -0700 Message-ID: <20260717220025.873311-2-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260717220025.873311-1-nathanc@nvidia.com> References: <20260717220025.873311-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY5PR04CA0002.namprd04.prod.outlook.com (2603:10b6:a03:1d0::12) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|DS0PR12MB7900:EE_ X-MS-Office365-Filtering-Correlation-Id: d5e9d0e5-2682-4869-e5bd-08dee44ed272 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|366016|376014|22082099003|18002099003|56012099006|10067099003|11063799006; X-Microsoft-Antispam-Message-Info: DLApPQmgzEDcoGPZv2LPcz06l+M9wZjCh58Id8brR+WUFSllmCefolTtgEgkpLNvzybFPholuosrNrB8e8knUl9fOM4ect7bFnYKpytN/wE1FyaRxZwSG3o7ef4F8Gv0Qs2fCMPxG14cjvLaAsF7bZ25X8KYNXXlL+yGiDzq1CLCsDKFCghmAOio4QS3HcX9eaVCenz5H/yo0h93Qb9t8dK74jz/aAsacbpeMxjKLKRTzY3iw6Nw6fylAnT8uQ/+uCnd/s1ZRXm7VhWhh3b6cXK0YPoTz5UQq+GIgypUTsZHPi0ZGlH+J0U9DtcBxDbaVYjNgJcn3nFsAxNY+dYX2T9Vbpks1K56XgP1YIcxPSt2/1yCncwnu9WPCiKpaTUnaQ8rSGlQKBYNgWXckrDkaK/WE0Ko4RxDo9aJy4Bu1YIJaoAy5HmX7ia13Q61m5DPKUgFT9SaXd/w+gm4zgYLQY7OJe2SkYl8hNMd4L/l3dd0hmvG7AsGLGUeDIoNMtu9JXwoOsilQYR+ETJTNZNMobb31S7FSF+qcFRYMawIggYSD0VVV4BtOuzAi9p3qNz33XY7UBWBwZLI+mgTrfzbjx/zcSmqgQ7OZ4//+W/uCFRPjxG8vCfT4E4kyWXb64bQnFwEac7UZ9R8I/WyUB+YP6xKy6ZEILtl859ST2iLB7U= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(22082099003)(18002099003)(56012099006)(10067099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?dlB3JrfA6T5mnUw/VGzyE9FBJOKCS1KIoq1aHQP+56pkneLucZ9B+t2ih6Ps?= =?us-ascii?Q?FyXTjH7TK6K+bEyzdh06VulI5EJmEHwX/coQL5HoUUjG6Ca/Nwvs1nW+HBue?= =?us-ascii?Q?7deb4NYk9z14CdeZOehfEcXKuZknMXB5AeFHOecclnJEsoEdCpXGjyUaQHHW?= =?us-ascii?Q?mL8EjfSBKy3Ock4Rl0gTSwqqkxO7FZ2DCQPOoZqkkh17/4w4lQfF6jpztRfy?= =?us-ascii?Q?SFToPKZuSMxNhzFnOPd2B86Bx50eKi8uS0m21rQDDKZSTopPvh8KN7YM8veH?= =?us-ascii?Q?apLOhLO6sQpsOv5V5HxpFd+fwB0NJZU4M4ki9aUo7WHDCsH8TKfzJktl9fym?= =?us-ascii?Q?B6SkyvnBQ162tD4WbYTTLtTNxdl19up5E3IUARRdG3BV9A5wPAzuXQ9u1iko?= =?us-ascii?Q?f4preybYZVDNDsoYkmi8Lw2AiuWY2z1inGTzaO1164kiRF/8fqq7sTvedE0H?= =?us-ascii?Q?BvNG+Cmo0Ta2OyiwXm3M3h2rq10xjyXjpWGQ/qTeEvOaJFXMDkf3HB/hTAGz?= =?us-ascii?Q?0BR8sfdONprltNMp6iQph9NyzCE8hefWJ28Y5dG6cm10diL/1aC22lSnFCrO?= =?us-ascii?Q?ZCEl8Zg/S/jGm2MxT1hntouA8bICjNdiULxK/3IfS8eZKg/mcZlMIqKZxUi8?= =?us-ascii?Q?WJ98dV4rHpmJZinGuAXIsfQfa8Y/sGDKa1gzpDIOdMnDlG+O91trYf+JNpoN?= =?us-ascii?Q?Mi7WQ+V/zHE4J3WxyOGvozwx7hwR3kLzhw28bIFq7UN69jWMCZ8gK3Ok9Rmn?= =?us-ascii?Q?ce90FXhKS9B3glAsEMXBaW+K5BUumQtSk3QTIC/Z0WZskIvSkT5EEZe7dVuo?= =?us-ascii?Q?UgavIBVVW8lD49k1cgacX8wPyxzjFBN705ebU93q4AXb1lGR74v9eJWWFj+R?= =?us-ascii?Q?G8hZf+hBq7CUQxzR7Wtte5mEZv8AXOKWQS6/3H3yfb50+rNbUSSmc0jXWOBl?= =?us-ascii?Q?RhgFCzkOOaEbLPWFmVdmbo2NRALQ987tj/0guu3V/v7yhQAehOvLsGBccjq4?= =?us-ascii?Q?tUAEtZlGpmUXaYoM7dlw+a2RLV7qtgxNIohVUSQOga6SxzWATiYvwwdOERuH?= =?us-ascii?Q?N28WK5r2uNjwYxr7RuMGWD0eijLwyIZL3TptmT8vbIOthtCnYGx3Gx8DdsgI?= =?us-ascii?Q?Lr24JkXZWOjr6pw6pRsXt5i1dPZCAe6YIheoRcqwYbVgpKwX1y89izTg3Wc6?= =?us-ascii?Q?DDjZhIH+NQjp4MW7vOm54eeFUZ2QQGO0+a1T6oEd1u8Z2QCosbiCvOaQw0sE?= =?us-ascii?Q?kY4ZXxhaAR7nulsFsrEJC0olpGc+c1io0evxuORjK+KKjZPA2H4kMMpWRraD?= =?us-ascii?Q?ACzmckXh2C3gPmJFa9EL/FV+6OfVkxFgT0gfIbWGbUpiekKs1PvgreOjqKxL?= =?us-ascii?Q?gy4qtxDecQieD6rmokTunaQ9cWwlgRIonLrfgaURTnlNoK9RL8bEXEpdtrTl?= =?us-ascii?Q?Enye1QYfPJbQbUA0cUVHxOo6UjV2StSVKOCOxTpWJUoSAa10NAXF/eSVFIwV?= =?us-ascii?Q?Jy/yB6XIomy4xrY99BqUi2A9o4BhRGvWYF+Fat5cXGIUByTWnlZceHU7RU7r?= =?us-ascii?Q?4nLSuxpxS5+Ri52Oj1HrNoiarqCmWdQ1wNQAi3iDXkSbhzqK8uJZtkrUBlkZ?= =?us-ascii?Q?BLR8f3mJnVYbIN0JAp2l+VXyzNYxJFUv+og3y4YVrFo6+wS8FsBJZGCMe455?= =?us-ascii?Q?ERHoVa1WoXIbHKK07ZbKyVAXK1Fw1+HYb3Ce5U99kejcp8icLD3jFENXaSUT?= =?us-ascii?Q?ygqX9eFe8w=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5e9d0e5-2682-4869-e5bd-08dee44ed272 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2026 22:00:32.3501 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zummUFNimYG+9MGyc20DtSr+ta9eCWtSXL+H5pM8TuOyUcLlQxG4aLhQdu2XeBBjNM4rdq2eYz61sv760WQTiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7900 Message-ID-Hash: BT5EWKGSG2ZQHAMHGE5VJF45DCVBOM55 X-Message-ID-Hash: BT5EWKGSG2ZQHAMHGE5VJF45DCVBOM55 X-MailFrom: nathanc@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Matt Ochs , Nicolin Chen , Shameer Kolothum , Nathan Chen X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1784325704403158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen virDomainIOMMUDefEquals() should check for pci_bus being equal across two virDomainIOMMUDef being compared. Fixes: 4d6419b286af ("qemu: Implement pluggable-device smmuv3") Signed-off-by: Nathan Chen --- src/conf/domain_conf.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 17c4a57cd8..94cfb27c1d 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -16849,6 +16849,7 @@ virDomainIOMMUDefEquals(const virDomainIOMMUDef *a, a->iotlb !=3D b->iotlb || a->aw_bits !=3D b->aw_bits || a->dma_translation !=3D b->dma_translation || + a->pci_bus !=3D b->pci_bus || a->xtsup !=3D b->xtsup || a->pt !=3D b->pt || a->granule !=3D b->granule) --=20 2.43.0 From nobody Sat Jul 25 13:39:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1784325891930944.8977806993936; Fri, 17 Jul 2026 15:04:51 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id CBA7241BA3; Fri, 17 Jul 2026 18:04:50 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 0B919423EB; Fri, 17 Jul 2026 18:01:00 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id C009A41A4E; Fri, 17 Jul 2026 18:00:41 -0400 (EDT) Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azon11010064.outbound.protection.outlook.com [52.101.56.64]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 2709441AB0 for ; Fri, 17 Jul 2026 18:00:40 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by DS0PR12MB7900.namprd12.prod.outlook.com (2603:10b6:8:14e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Fri, 17 Jul 2026 22:00:35 +0000 Received: from DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720]) by DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720%6]) with mapi id 15.21.0223.012; Fri, 17 Jul 2026 22:00:35 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=R+L9SbzagGQIrbyj2nceZQy68mNnPqPYxqBIjgIiRiDaQhJp5f3OXqoK51zW/gtiEJtf/yxQdmkTYiOLEVeDr0b4DQmy2tUzozhpjIHHubu6z/l9r6mgd/5q6LVtScvwJIRak4iRBSSleovVwhLRwEFGF6j/ECtIpMgZj8vRRf0PAJ/Exy523QYWLK/BKoTDOZ0nAnHs1b5M/Q0gvLHmgUKPNU8od3Bb1LqrjkA3bwakCoQ0zSdOTevAWYwnBFc/qKSgU8JIXC1H05jMnipFwSJ67u31XD/3t8Yr4KIONgLJOePV+H5qMK3W2TC2vBM/U6T04fhc1UKS0qFvYRTErg== 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=UfNLourwbE5boBXd19FcLb1nt6/ngK25HY8FYgm9G0Q=; b=mRFTe9kRk5cZG2bbrqeyV3ybth2BKeM4+SrHazytS2fhLh6M2INrSSLo4q0At7iIaO65MsXMqItPeYVPz6Vm7stqVu+eC9WXIatIS9dJG9GfZefZ8z3R/T5ecf9/+lsWOl4FEO0/yOYQXfN17uAR7/7u96mwrJyuu28y09b5yMVjc+VEqofyTBQpEwxeHgB7LZOqDRleKVOouoQc+xErXQP8cVsBVN0P2FhzH9x62Ika37y5dQHWAAtsJD1scvwHeTU/zEDBPfReNNrpvzYLpsQ2LHGPJhXDpIv9L2uMt2oEgjDHmrstX2ZAiKVj0jnEC3M0xD3shuyZYxhk9sgJKw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UfNLourwbE5boBXd19FcLb1nt6/ngK25HY8FYgm9G0Q=; b=cGqA9JDq/MwFIblNT3KKPUvt/5sn6LURa7xt33DfdQa6q8bCVSaCWIe2OwmKE821ly1LM8SJY8TC7UuQKVgci/AG8LXGt1hqsRmXr+ts4I5fuoObzSlONvs43wMKDsL+RW6bPbaapfGyn3SqMhTSK+raJ5koKdobv0QAlg95rC06EZ1bocYqCA14WY4LWLKMJ1U1V8QG/cKw9tzIaVt3PT1MKWCsKAlBDn4PXszEdf3MacwTmIQCM0yUiHUuVu+iU0EE7CRSRovh6eqEgsY2sK+CT7DW3BFTVUsu20bX0a05noineJuluFchGwldv73XcOU6g4rpLbVwBPbJr1VJxA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH v10 2/6] docs: formatdomain: Include Libvirt version for IOMMU pciBus attribute Date: Fri, 17 Jul 2026 15:00:21 -0700 Message-ID: <20260717220025.873311-3-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260717220025.873311-1-nathanc@nvidia.com> References: <20260717220025.873311-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0229.namprd13.prod.outlook.com (2603:10b6:a03:2c1::24) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|DS0PR12MB7900:EE_ X-MS-Office365-Filtering-Correlation-Id: 02040c41-c89c-49cd-a1e6-08dee44ed43d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|366016|376014|22082099003|18002099003|56012099006|10067099003|11063799006; X-Microsoft-Antispam-Message-Info: BZjVLMvakoAxjm5k/anK7BEuBh6bt1Rwf7fA0aFHZyKEniYXtRj5jlgBuR/aCi0acMSHlO9iBNsA9vu3tTYB67KIBPzSjpSKSUUo58B4WQvQSEXWetd53SOBpVFSRYnvsYvzCxuAaF+iYT2J+kaPgJ7HdEs4dOKD7P+h2dspIZtAHx6Vj6Iup1F+u8gCuUv26P9JuNMZe39ezV2Nyxg6e7aRHOcjNr1SRoSkUEO6leI5mzq7WygW15pV2RW1MOlI/k0UAQYX2LW7lTVrjpuhE51TTUdqSwVnWF3iLaq7GdOuUBPAdvUKGhisiUH8wfRxYYTIk9NsLrhrNFX4sKImPwIGxmHnBTQ8xCF3L5UIk4UsaK526+mEHsnxn/++CFCdKbTJcBtAh3pzS+JC59+tCBOiYgDXmZbpaEVVA9RGgEIQm6FZNBoaTcNASI6QoBINn/PCzELS0bVWATya9z9L1QJ2coJPno2EJ7zGO6A0v0HB8qD5NLv/CUauXpomwVOHPIOI4HGYyxciyp8C49k+ABtUeLv9XKKWMdqy6frasi42dv49dDo2Ti9MTx+/lw0CsvIdjUY/FixG2ly2rjhA1n5Z4xqFlHIozURNPvOD+F+E/oabR6SvfqyL13Bovd6xnT6CbNqP43uqpWuHKTMBNxUZbhrOyzsvWPIz437YVEA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(22082099003)(18002099003)(56012099006)(10067099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?vG1WxY3KyFneEGGmweXnoni+b/4GwNlVInqB4xvN48mXUM7M2n3GMde+yfBf?= =?us-ascii?Q?y9FNM18OX0xr4rKF8CQW8X/8f7EXQe04r87VVsaMT/Ac9Q8y8Xrvifpd54XA?= =?us-ascii?Q?mskjhtaeX2JZ8OweGomeRa+COQ4IK3blBBdDEJrUAXl8TnCj79gVkcPAhhn3?= =?us-ascii?Q?YHl2DoQV0rMWiIlxmFZzt9DixkPjYfkAHe1oFjm9bWh0+WcY/c1FYewdqlzW?= =?us-ascii?Q?rosMSO+nulek85d+oMBGCxIK1kZIMoH39Mpa0uGn5n3BgZsea1Pz8s04RaJC?= =?us-ascii?Q?x+3dFmAoUdzYXl77XQf9Bbl3KruS6X3eZ0P1POeucHnBgDAyvQuGbbBSAmO2?= =?us-ascii?Q?8LfIKzUuFqpwVcY9GDw5/huS2Zw9p4Po83RD2/CCAHj54e0n/iVaxpFF4zIH?= =?us-ascii?Q?CFZv3GkHu1NPFm4V/Je7ZBTY+MPplHbyq1H1Kv9tJK1qiDhuZsk5JYrxOxO1?= =?us-ascii?Q?huvFG+p1OurKIB30vY36c74P6WxwnWd4bBcPl25610D0qx3exJ0cKa+KJIt7?= =?us-ascii?Q?4EvWItK1QNDmEUz5wWb07nrIpG5pt2tv8SsD7mZRRo+pF4SV+VZmr5q86Kjx?= =?us-ascii?Q?9EetMlr/EveetSA5vcTXfzK58sBIFSbXHjcdrMXFeR2gnt8aA5nhvzDa2rJo?= =?us-ascii?Q?8rLzl8oHzPW33AXfEeGZhFfTnSOmnhBKl9UABuZeAeE2vkB6/ha7nSbjxNkq?= =?us-ascii?Q?Ey8R5v9Dg7zdvZfjbqsz/lRJi+OyjezqAJ8GgdFgszGoT58nLSCtCG3lj5QK?= =?us-ascii?Q?NmoSPSiYkRqhtz5MsCTJbinFk/B/izmwdbs0ve9QYpl1jL3mw1hGPxxopVPR?= =?us-ascii?Q?FXXthNaAUkn1AdQmjLBOQ6DTM9TAjkkd8g7oHIcSs6oXAwZ2PszU/DiU47cN?= =?us-ascii?Q?Jx6F0q1yjmD8k2FoMAmr0Ez+WIUnXXWCFp2E7n7+IyNb9DS5c8Ft1CpOg2OF?= =?us-ascii?Q?PBpb6dNmK/dRJ9K2idgdGFygIHV+nMIffYtoI14+bfmvDYIt65CLHnJ3xESM?= =?us-ascii?Q?IIJCLCD7krvOHQBjaHneyLJ1gTTp4KQqjl1vOphdO8EHWu4wMQk+QQ0piF0J?= =?us-ascii?Q?BUUIvHRJfG+jbxSuxpPL1wdnd06fHs93EBiO0bsFwPDkYqivYScn+ksj37+5?= =?us-ascii?Q?xM9CLb2cGY6sgcizGcyNPQ7FgaMGLJn3rktrKHewmysvAT1mVB93ZqWZ7f/R?= =?us-ascii?Q?y4D+SkuKdVHaC6FFibxvG9SDYhNcnh8fvRvwvfxR91lcclW1bK/GeYqnTu3D?= =?us-ascii?Q?o1kUh+lg6HmVBoJplD4GDlfMLCEFM2XyT2kYiuG3GxTUdjgU5k0LCq9Fr0TM?= =?us-ascii?Q?CeDU/KSjvNOhaJxUItFGBTYmV3bjN9coiWWewGL+cSAr1eiR1KIFiP48y5OV?= =?us-ascii?Q?DG5cFz+mCYtuFBZ/p5jkFvBARHo4k5MizfZRiNk78HtrRibvMVDUizNhPeJV?= =?us-ascii?Q?owtQ6V/bMiHYCN+rmfWqTSjSNiaF02sAjWbNYL9v91eFNH6LIwV5qspxc3Pm?= =?us-ascii?Q?yzgK/cuMs2KXKGhEtL9syZ0F1LBIX0LR8yvLh3A9Gukvgp7MfeRyHa8XAgZu?= =?us-ascii?Q?p6qgZEUPzZz48S5NTf6kfZzUyJWGgZxSfpdgdsxuszo947rKn/gYhd6mt2fI?= =?us-ascii?Q?H+eYylGI6O0IsfdF3f94fdrh4ZGsX6k6zidIzAqM+F+IozmGmWEv/o+qe1qA?= =?us-ascii?Q?ocjqwMP3+x4zHJ0Ft8TdnFkAxqZ0nAUM9NOosRQAJIVWvOv1FRsygjoNESFg?= =?us-ascii?Q?NV852rxIkQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02040c41-c89c-49cd-a1e6-08dee44ed43d X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2026 22:00:35.3361 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: GTnhpHLpM8mgPeURR3MFgNcWyQxJIr1+pADRwJkuQKPEX7NLHzBb32rGr8WCDjWS/OHcdKnfwJK7i5w0/8B9gQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7900 Message-ID-Hash: O4ALF6OON4Y554G6WB5AFWN35HJ4M7GP X-Message-ID-Hash: O4ALF6OON4Y554G6WB5AFWN35HJ4M7GP X-MailFrom: nathanc@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Matt Ochs , Nicolin Chen , Shameer Kolothum , Nathan Chen X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1784325893420158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Update formatdomain doc to mention IOMMU pciBus attribute was introduced in Libvirt v11.10.0. Fixes: 4d6419b286af ("qemu: Implement pluggable-device smmuv3") Signed-off-by: Nathan Chen --- docs/formatdomain.rst | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index a861f9f177..2cc97d2daa 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -9424,7 +9424,8 @@ Examples: =20 ``pciBus`` The ``pciBus`` attribute notes the index of the controller that an - IOMMU device is attached to. (QEMU/KVM and ``smmuv3`` model only) + IOMMU device is attached to. + :since:`Since 11.10.0` (QEMU/KVM and ``smmuv3`` model only) =20 In case of ``virtio`` IOMMU device, the ``driver`` element can optionally contain ``granule`` subelement that allows to choose which granule will be --=20 2.43.0 From nobody Sat Jul 25 13:39:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1784326173038497.5752617760015; Fri, 17 Jul 2026 15:09:33 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 9EA1941BA1; Fri, 17 Jul 2026 18:09:31 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id BA808423D0; Fri, 17 Jul 2026 18:03:10 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 95ADF41BAE; Fri, 17 Jul 2026 18:03:00 -0400 (EDT) Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013021.outbound.protection.outlook.com [40.93.196.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 4EB8B41E26 for ; Fri, 17 Jul 2026 18:00:54 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by DS0PR12MB7900.namprd12.prod.outlook.com (2603:10b6:8:14e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Fri, 17 Jul 2026 22:00:37 +0000 Received: from DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720]) by DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720%6]) with mapi id 15.21.0223.012; Fri, 17 Jul 2026 22:00:37 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RQbaEGKJX87oO5l93k+/sawP1pGiZ4YYRoJk2bvb+5c3I4jOS2WlpcgSCmGPdW+alRNWk3cN3SPx/HR0RICk0xYR++xVXt0G956m76SZNCbfZWcJIdo9a9wyodKTkqoaJdngQHn5pjKgNk9h4oGKjcmgL+1OUtvqeHFhGqsJJwpzMqV0rrt99qlP5Z+begukJ0R7GCSOddobuoxxJ17Ez4qk0J5vv5Zn389qB6ifmqsEI7yiWY1tY/h4+ECZJkTkGp2b2W2ns2dyay6OXggbp58JtVF9pLrxQpL6BcZOfmv7FuRRPbZt+Y8+nkfIrunQYCmXcPQiCCn5SGybbgrvow== 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=Vgb5/UJ18os6psiB5GFgOUd5L48jkVzQKCwzP6egKTE=; b=zRzoIk8b2ne3ul3GdOvvsGmTTP8IKSEhyZYSJA+0oaLQz/By6JPsD6o/6oDa+GoH5gYW5kqXTn7wSgSYh6TjU466yVAJT6SToVN/7Zc/fN3GkRiG14Or5jD8Z1QLOcZNkvUJ9zkHjsd9zKO2BTajIyb8pqzPDGFBUuFtURIxK/Zdu6TElDd6+UR496QrR40XdNsUP8U90o4frh3oPFrpCtpdNeWCgtH1151tARtBS0fWRNxzO0NloFDEpVl3Ws6PDRhoE8D9pQH/Idnc550ZCMXwduYUdNvS2rHCT/Ii/dZJ/aQ87OPTeK60Ry9vLV7laR01HAS6HE/7gfE/MoU2SA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Vgb5/UJ18os6psiB5GFgOUd5L48jkVzQKCwzP6egKTE=; b=qKU9Fti/J6EmJ48CPZm+AcRrpew3IhpON/gCN3Fw9lyOHhlNX/LgCjXbnFdT2fEZDhZpcCfW0pkH+Yg5osCJMqC5rxHOEcLXBJm1cwEUCtzyp5385sY1Xd8QEwMgL2/5QE6plx1XSXsZk+V2CoFgCXxNcY8F2D7m3idVgzYj9yCyBTQUWkDOc6gHhikKbg8KxZJ7wdAO1kXj+B/6wtmBtYoL2ce6A/rL0pLefbDQMkfGrpfDyN00J+k/ZIQwpj8/xGwCYKf0fxmYSsePden2oCxZS8Q3gVdy9trPD5QkdmA2x1x6H6scjfL6KABQdW8n4Pc7RkNP5KOAeP5KwnaRew== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH v10 3/6] qemu: Add support for HW-accelerated nested SMMUv3 Date: Fri, 17 Jul 2026 15:00:22 -0700 Message-ID: <20260717220025.873311-4-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260717220025.873311-1-nathanc@nvidia.com> References: <20260717220025.873311-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0336.namprd03.prod.outlook.com (2603:10b6:a03:39c::11) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|DS0PR12MB7900:EE_ X-MS-Office365-Filtering-Correlation-Id: be9be946-65f5-4874-ad85-08dee44ed550 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|366016|376014|22082099003|18002099003|6133799003|3023799007|56012099006|10067099003|11063799006; X-Microsoft-Antispam-Message-Info: lXNEDfiEGessy9faQzThLUDpl9mYRIAC6rPU2XvvAvTXJWG/gXHwFxAxiYxUdWhzocEGn+DRS68q9y0JSLwT/lije+QV47mkAROsAd1mLa1Pnu3CJijajHgSsNfs0tF0nN9h211z02IWVg8OWdwT+wYYiPRC2u/kh2JKcpLev288vprGW6C40N5iDtPDCckfidcxtoTyTk8xvwLPEChLG+TodQhXkx7oxidQwe8WPZ6pXo3tQu1Q0AMIJbWduqQppjTIHpQNA7I8VkzkY/yLPVK49MJKzUCOjyULkrslJzogcaXyltcymQLXIY5jYxzp8MvQf/I/LrjaMjS1NEYZP4cgWepWZmFiTU5wfFCyvWpsmWBdxu0o/HH9Lx+UGzzBqmQrIdrZfxhKEVMZ/3hvOpeXTh6ZTNH/+Dwa6uLW4IAuu56qIu02YmDFN+3R5Eis2TPrikTiRSAZHnKiQ9Kq3dEMP6zcehLlDcOzc/vYctEjp7hVvGbf9pwIj0evMoa2Et5PxJvFOEvJGbcE9OKw4hTDTFIuG8D4zgGBlPphm1+IAWoWO1hVW4ggMLc6Ye8/Rd1qE2ZgEmQucJkM0sZxLmGpt+b/RdfGl7M+eD6FRW577Wk96ojiYJqwqke3fIcVGqg7npv8HeZZ10ahvmNtOq0fMfUOnC/o5Ms7nFO10N4= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(22082099003)(18002099003)(6133799003)(3023799007)(56012099006)(10067099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6F+YLHjoheGMCtquUPXO+JYCYqc7+DskSO4seCsinsNKbxfb4iWIILv/OF7V?= =?us-ascii?Q?hjynYYfQcEmr5Lk2PlcuybQ+DV21hDB8CE6uqNKwtC0xoYSogwnrBvu+FsFE?= =?us-ascii?Q?iVGxNo6M5grI22Na88NCtIR00VXgd/w/DSzjdlNvQ//e0DMUDqm9aQl1ZnZk?= =?us-ascii?Q?95Pa/7EaUbw8vRKbHWGXf6rGAZWjIo90TnqSRaClBSxdZvYbh4QaYtYIqVQJ?= =?us-ascii?Q?p5k0sEFYXqUNQ2aiURKxfF59Rxr1rLp3Ip23Z45j/INpbV2IjJnRirL/sghF?= =?us-ascii?Q?SQnmHxCOBzLu/EgllZ4dthuNEpWNgYpuW6VzkNasfOd5SOzsIDegLZZtIav6?= =?us-ascii?Q?r7HF6LT3O4Kztj9no4USZ46fM0dXTszxhTShyuHMwO7pnkps5a8Z+emL3Dpu?= =?us-ascii?Q?xbtz7YZMVmeXaNCMPBuocNgjn7uNsU7nryyYH5AaCY8hSnaaGkJMg+9iNphR?= =?us-ascii?Q?o/qsX+cG2h0avG+t6Yj7mEhPrbiwZpbPpOiX3itY/s4tccAYnOnbgYeUOc3f?= =?us-ascii?Q?n3SyPNzFFoWiq5L8FS1xJc6aCNXeJHjuRLUw6/mNfht106JJ1+mWJN7rJFjr?= =?us-ascii?Q?d48SVU/6QZ8bBbHuJ0hO+7nA5i6b9h2Os5NWUIiXkYBTvU4bfM+WH8U9OQ18?= =?us-ascii?Q?Hk5fVy+C0IBQEQ4w7Ifs1qfopeIakHM0xDX59rlxey2VUNlhoXQzqerHWVM8?= =?us-ascii?Q?KtY5KeCCwBDh71QJWBLD9UMrsIT9lI2xXKBwyez6AyKzlOQQlbWEX+h25HxA?= =?us-ascii?Q?fEIstDdpBSyKZ2xp+fNzGjiCQ9dDsIUqFVB0tnZvdYFLyEYZT5XsHxGwXdkD?= =?us-ascii?Q?ZRXQ2tf5yvgGlxHec3rN85jhbqNU3EEsryLbk4z5UbIbMQm42YZrvT4Qivxz?= =?us-ascii?Q?Ht24hZw5xk0GGeCqAtxN6ZbdVOoKk47vNPiRK/AKIF+IyTuJoeq9kl1CJkcX?= =?us-ascii?Q?IYD2K1s5TcxiHnAUh94453T17LhhGZQRXqVtHYhnU9/aXm5Q/N2vdJq+FTUS?= =?us-ascii?Q?cm/0MaidDbhZEWkonRqJTwBsx8GPLovsHCFUZESbK/henftMgXKUUyt3exYs?= =?us-ascii?Q?fHeEujGNHnkVrRoIPc97O8a5O6634W+w8Pije6JlorJO4WXx2ocxTjjeh3CL?= =?us-ascii?Q?KBFoj0O0IT0w2KI9Uzuqm0MxBjRJIaCbX+BPl/B3VSW7BIdAWZDADypt9k5Y?= =?us-ascii?Q?34O4/EbJmBykMNLm+e6jzEwLvRpnysYAsF7d7RCiFtFio95va5LausdFhAqE?= =?us-ascii?Q?MUVXZITJJcjidIg5Auz5VquzP5urspv+3HBKvePeoaLttaXhdBdhnFeDfTtU?= =?us-ascii?Q?1jIQOioiixqpcYJabTr7In0KXVWb2dvgfUc/SKzPv3v/zsFVGct+7372HHDy?= =?us-ascii?Q?aoJYEPB2pKPdbvFyZPk075viTo/ybN/sSSVQRrjRRYlPB+0rm38qV/r7lCWA?= =?us-ascii?Q?JEhkSMVGkowbECygTWMpJu27gpRlGMRK/eww4HOTRfLdsVONNSeLTG556ncU?= =?us-ascii?Q?sVC3qhKD2+Aa/tmuW7rv0s127DMeW0BODX+KZoFS4PQI71lLEiaW2tTn4s4h?= =?us-ascii?Q?cfSIqq4xi4abVhF6QORt1RMEcas/HTfEFBI/tliMsxHaUBxNMVoR+v9hLMx7?= =?us-ascii?Q?fmu8iSczoAaucmnszheHqBPGeamooB2b2JiE/RleQlBi0ksLFWBSqwgkvM3e?= =?us-ascii?Q?XvzwXF49q6E+3TG0xLwWQmCT0cfyGvga7JjJclPHupwxSv+PwOYV7dYWMQ2L?= =?us-ascii?Q?z9Pc5ndGQw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: be9be946-65f5-4874-ad85-08dee44ed550 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2026 22:00:37.1521 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 90QFKrANERP5Leao8tMdKYhdsNcO/z7xi8MJNIJVKgKM8//nkDWM5HaMNf5w/tjGqOv63wY9qBqIhmpNw8gUZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7900 Message-ID-Hash: BB2QZB7FY5CAHPQYHQPQSIOZCNQ7BOHM X-Message-ID-Hash: BB2QZB7FY5CAHPQYHQPQSIOZCNQ7BOHM X-MailFrom: nathanc@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Matt Ochs , Nicolin Chen , Shameer Kolothum , Nathan Chen X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1784326174817158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Add support for enabling HW-accelerated nested SMMUv3 via attribute and its additional attributes for ATS, SSID, RIL, and OAS configuration. Signed-off-by: Nathan Chen --- docs/formatdomain.rst | 38 +++++++++++++++ src/conf/domain_conf.c | 79 +++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 5 ++ src/conf/domain_validate.c | 27 ++++++++++- src/conf/schemas/domaincommon.rng | 25 ++++++++++ src/qemu/qemu_command.c | 15 ++++++ 6 files changed, 188 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 2cc97d2daa..22076dedc1 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -9427,6 +9427,44 @@ Examples: IOMMU device is attached to. :since:`Since 11.10.0` (QEMU/KVM and ``smmuv3`` model only) =20 + ``accel`` + The ``accel`` attribute with possible values ``on`` and ``off`` can + be used to enable hardware acceleration support for smmuv3 IOMMU + devices. + :since:`Since 12.6.0` (QEMU/KVM and ``smmuv3`` model only) + + ``ats`` + The ``ats`` attribute with possible values ``on`` and ``off`` can be + used to enable reporting Address Translation Services capability to + the guest for smmuv3 IOMMU devices with ``accel`` set to ``on``, if + the host SMMUv3 supports ATS and the associated passthrough device + supports ATS. If ``accel`` is enabled and ``ats`` is not configured, + the hypervisor default value is used. + :since:`Since 12.6.0` (QEMU/KVM and ``smmuv3`` model only) + + ``ril`` + The ``ril`` attribute with possible values ``on`` and ``off`` can be + used to report whether Range Invalidation for IOMMU devices with + ``accel`` set to ``on`` is compatible with host SMMUv3 support. If + ``accel`` is enabled and ``ril`` is not configured, the hypervisor + default value is used. + :since:`Since 12.6.0` (QEMU/KVM and ``smmuv3`` model only) + + ``ssidsize`` + The ``ssidsize`` attribute sets the number of bits used to + represent SubstreamIDs. A value of N allows SSIDs in the range + [0 .. 2^N - 1]. The valid range is 0-20, and a value greater than 0 + is required for enabling PASID support, as doing so advertises PASID + capability to the vIOMMU. If ``accel`` is enabled and ``ssidsize`` is + not configured, the hypervisor default value is used. + :since:`Since 12.6.0` (QEMU/KVM and ``smmuv3`` model only) + + ``oas`` + The ``oas`` attribute sets the output address size in units of bits. + If ``accel`` is enabled and ``oas`` is not configured, the hypervisor + default value is used. + :since:`Since 12.6.0` (QEMU/KVM and ``smmuv3`` model only) + In case of ``virtio`` IOMMU device, the ``driver`` element can optionally contain ``granule`` subelement that allows to choose which granule will be used by default. It is useful when running guests with different page size diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 94cfb27c1d..db44ba9a72 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2863,6 +2863,10 @@ virDomainIOMMUDefNew(void) =20 iommu->pci_bus =3D -1; =20 + iommu->ssid_size =3D -1; + + iommu->oas =3D -1; + return g_steal_pointer(&iommu); } =20 @@ -14746,6 +14750,26 @@ virDomainIOMMUDefParseXML(virDomainXMLOption *xmlo= pt, &iommu->pci_bus, -1) < 0) return NULL; =20 + if (virXMLPropTristateSwitch(driver, "accel", VIR_XML_PROP_NONE, + &iommu->accel) < 0) + return NULL; + + if (virXMLPropTristateSwitch(driver, "ats", VIR_XML_PROP_NONE, + &iommu->ats) < 0) + return NULL; + + if (virXMLPropTristateSwitch(driver, "ril", VIR_XML_PROP_NONE, + &iommu->ril) < 0) + return NULL; + + if (virXMLPropInt(driver, "ssidsize", 10, VIR_XML_PROP_NONE, + &iommu->ssid_size, -1) < 0) + return NULL; + + if (virXMLPropInt(driver, "oas", 10, VIR_XML_PROP_NONE, + &iommu->oas, -1) < 0) + return NULL; + if ((granule =3D virXPathNode("./driver/granule", ctxt))) { g_autofree char *mode =3D virXMLPropString(granule, "mode"); unsigned long long size; @@ -16850,6 +16874,11 @@ virDomainIOMMUDefEquals(const virDomainIOMMUDef *a, a->aw_bits !=3D b->aw_bits || a->dma_translation !=3D b->dma_translation || a->pci_bus !=3D b->pci_bus || + a->accel !=3D b->accel || + a->ats !=3D b->ats || + a->ril !=3D b->ril || + a->ssid_size !=3D b->ssid_size || + a->oas !=3D b->oas || a->xtsup !=3D b->xtsup || a->pt !=3D b->pt || a->granule !=3D b->granule) @@ -22734,6 +22763,36 @@ virDomainIOMMUDefCheckABIStability(virDomainIOMMUD= ef *src, dst->pci_bus, src->pci_bus); return false; } + if (src->accel !=3D dst->accel) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device accel value '%1$d' do= es not match source '%2$d'"), + dst->accel, src->accel); + return false; + } + if (src->ats !=3D dst->ats) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device ATS value '%1$d' does= not match source '%2$d'"), + dst->ats, src->ats); + return false; + } + if (src->ril !=3D dst->ril) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device ril value '%1$d' does= not match source '%2$d'"), + dst->ril, src->ril); + return false; + } + if (src->ssid_size !=3D dst->ssid_size) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device ssid_size value '%1$d= ' does not match source '%2$d'"), + dst->ssid_size, src->ssid_size); + return false; + } + if (src->oas !=3D dst->oas) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device oas value '%1$d' does= not match source '%2$d'"), + dst->oas, src->oas); + return false; + } if (src->dma_translation !=3D dst->dma_translation) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Target domain IOMMU device dma translation '%1$s= ' does not match source '%2$s'"), @@ -29204,6 +29263,26 @@ virDomainIOMMUDefFormat(virBuffer *buf, virBufferAsprintf(&driverAttrBuf, " pciBus=3D'%d'", iommu->pci_bus); } + if (iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&driverAttrBuf, " accel=3D'%s'", + virTristateSwitchTypeToString(iommu->accel)); + } + if (iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&driverAttrBuf, " ats=3D'%s'", + virTristateSwitchTypeToString(iommu->ats)); + } + if (iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&driverAttrBuf, " ril=3D'%s'", + virTristateSwitchTypeToString(iommu->ril)); + } + if (iommu->ssid_size >=3D 0) { + virBufferAsprintf(&driverAttrBuf, " ssidsize=3D'%d'", + iommu->ssid_size); + } + if (iommu->oas >=3D 0) { + virBufferAsprintf(&driverAttrBuf, " oas=3D'%d'", + iommu->oas); + } if (iommu->granule !=3D 0) { if (iommu->granule =3D=3D -1) { virBufferAddLit(&driverChildBuf, "\n"); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 0c6c79c413..40ea6090f8 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3105,6 +3105,11 @@ struct _virDomainIOMMUDef { virTristateSwitch xtsup; virTristateSwitch pt; int granule; /* -1 means 'host', 0 unset, page size in KiB otherwise */ + virTristateSwitch accel; + virTristateSwitch ats; + virTristateSwitch ril; + int ssid_size; + int oas; }; =20 typedef enum { diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 3946f92182..710a891904 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -3203,6 +3203,16 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *i= ommu) virDomainIOMMUModelTypeToString(iommu->model)); return -1; } + if (iommu->accel !=3D VIR_TRISTATE_SWITCH_ON && + (iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ssid_size >=3D 0 || + iommu->oas >=3D 0)) { + virReportError(VIR_ERR_XML_ERROR, + _("accel must be enabled for iommu model '%1$s'= when setting ats, ril, ssidsize, or oas"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } break; case VIR_DOMAIN_IOMMU_MODEL_VIRTIO: if (iommu->intremap !=3D VIR_TRISTATE_SWITCH_ABSENT || @@ -3210,7 +3220,12 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *i= ommu) iommu->eim !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->iotlb !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || - iommu->pci_bus >=3D 0) { + iommu->pci_bus >=3D 0 || + iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ssid_size >=3D 0 || + iommu->oas >=3D 0) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' doesn't support some addi= tional attributes"), virDomainIOMMUModelTypeToString(iommu->model)); @@ -3233,6 +3248,11 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *i= ommu) iommu->aw_bits !=3D 0 || iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || + iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ssid_size >=3D 0 || + iommu->oas >=3D 0 || iommu->granule !=3D 0) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' doesn't support some addi= tional attributes"), @@ -3245,6 +3265,11 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *i= ommu) if (iommu->pt !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->xtsup !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || + iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->ssid_size >=3D 0 || + iommu->oas >=3D 0 || iommu->granule !=3D 0) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' doesn't support some addi= tional attributes"), diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 121e4e06a6..c7d7ebc876 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6454,6 +6454,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index e726dc661c..2d5eaa1e80 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6276,6 +6276,8 @@ qemuBuildPCINestedSmmuv3DevProps(const virDomainDef *= def, { g_autoptr(virJSONValue) props =3D NULL; g_autofree char *bus =3D NULL; + g_autofree char *ssidsizeStr =3D NULL; + g_autofree char *oasStr =3D NULL; virPCIDeviceAddress addr =3D { .bus =3D iommu->pci_bus }; =20 bus =3D qemuBuildDeviceAddressPCIGetBus(def, &addr); @@ -6286,10 +6288,23 @@ qemuBuildPCINestedSmmuv3DevProps(const virDomainDef= *def, return NULL; } =20 + if (iommu->ssid_size >=3D 0) { + ssidsizeStr =3D g_strdup_printf("%u", iommu->ssid_size); + } + + if (iommu->oas >=3D 0) { + oasStr =3D g_strdup_printf("%u", iommu->oas); + } + if (virJSONValueObjectAdd(&props, "s:driver", "arm-smmuv3", "s:primary-bus", bus, "s:id", iommu->info.alias, + "T:accel", iommu->accel, + "S:ats", qemuOnOffAuto(iommu->ats), + "S:ril", qemuOnOffAuto(iommu->ril), + "S:ssidsize", ssidsizeStr, + "S:oas", oasStr, NULL) < 0) return NULL; =20 --=20 2.43.0 From nobody Sat Jul 25 13:39:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1784326533020156.80475404085655; Fri, 17 Jul 2026 15:15:33 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 7D0293F890; Fri, 17 Jul 2026 18:15:31 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 2819D41DBA; Fri, 17 Jul 2026 18:03:28 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 05C2043DB7; Fri, 17 Jul 2026 18:03:16 -0400 (EDT) Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013021.outbound.protection.outlook.com [40.93.196.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id DA9CB41BBD for ; Fri, 17 Jul 2026 18:00:54 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by DS0PR12MB7900.namprd12.prod.outlook.com (2603:10b6:8:14e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Fri, 17 Jul 2026 22:00:38 +0000 Received: from DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720]) by DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720%6]) with mapi id 15.21.0223.012; Fri, 17 Jul 2026 22:00:38 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=y+hnpChb4L6t/SxKmkFdt5yJ6Iwo49oq42A9Ij1yIRwXC3vug+S9UOPVWSdIS8VrokGbhA8wK5lLLEbwwHV4tTRSFnsDdRuekNfFF3SpDkU8PX658Ao60SyG9a4Mu15/PuSMqNZC6B94wW5ttoasYEYjUPvsTG3S04W03fXxvZhdoU6JeG8N3JOsfuLspusw9yhGt5fx8fuxdGj0vLsorrGIsd3japYd+ZPuTh0dDxtvIXz2YralVsh+uzrRv5ENYIRHBu4oe22ZjZfv1/kb+dKTX6ad7ESVIfoy75BAEJlGJRQvYoFlOlrYgokBHs3XnTK9fqlyFcPRq7TzmMjNkQ== 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=/1G9yix+FmYZdPZJa42DxD5rSdTKag7CFLXYYZngx6E=; b=K4XZlN8pVy3b0ShHsfPPr0+Wi04I0UT5JvnTiNH0GgDtpHJPpwtdcqdMrURLI0kJyYF/BcVyzMu2gjrNAdn0z4YT/4POWNQiP49cPnFQYe4HE1JfHeV9N0XE5Usf6VnKj0NB75H6G+kyc7DX5cX6uKiUYCmmeaYmzu/9xo3Vkej9YfDiOYtPXCdsoAHlxw35l7EFE7cT9501Mcmcu55QGVMYdG2tQGHVSrBXcOQOwS+MT01o1x6f+p/aKw2bkQkzhjk3jTglZAFhw3INjXTHlrRlOE1MxKxaZOrI6YMLDnjb9bHHqGU8QlpyYDFWrzaIbfes0byC7uFv2TrEZ3zztA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/1G9yix+FmYZdPZJa42DxD5rSdTKag7CFLXYYZngx6E=; b=P+R4NL6yRH5uI0xAm7ljT7N/F7LNHEz1U5l0p1j2sVsvJG7SGLTwhd9OhsW5c1Lv5mkLbMjp5tJEdgPRuv8jJwY8/176nVpqhvY5n7nbxuP6EpTzWPCa+O+8wSjDg271SMswRWAuKGC6CYaYn6XUsf/oH7ISH6amH+K+S078hWe9MRrDifDotE7tJxM5xGhig7T6Gy6WL93SZEz0m6NEt5kKQPwtL4MkbfWG8j0kCdROoP+MubCqj+UetYrx2Qs5iqka+cYXfjOe3s4Fwa220DiFTAerWx8eF1m8fwmSw5t4W6SLVuVLKGAMwsFPTDaHxWSgYTzcB+Q8s/awO4KGAA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH v10 4/6] qemu: introduce QEMU_CAPS_ARM_SMMUV3 Date: Fri, 17 Jul 2026 15:00:23 -0700 Message-ID: <20260717220025.873311-5-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260717220025.873311-1-nathanc@nvidia.com> References: <20260717220025.873311-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0215.namprd13.prod.outlook.com (2603:10b6:a03:2c1::10) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|DS0PR12MB7900:EE_ X-MS-Office365-Filtering-Correlation-Id: 81ef6e4d-0996-4740-a99f-08dee44ed638 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|366016|376014|22082099003|18002099003|6133799003|3023799007|56012099006|10067099003|11063799006; X-Microsoft-Antispam-Message-Info: l7KuwYqayOECg7hk7uXaO6CJYQ9z483xL+WUgTPNjv/aUkGkJXLjPqOhg8vEO8+soPXiOAqJ25CMioxPBbkWGsdJeHetKk7BYNkhdH2rqldT4QncOZCzKgw+l9iWS+ae7L0acNqia8xNEwUoBlG9TNQq8AkHyTzQeafV8uUbIyPicR0JvIZPkJnlYaMlZImGhFRqF/e86oZnOPhP6yqr55Jm/kJbiv/0HBf8N2llGameTnHlj9iIpDmf53Bc+VvQYMyxD4r1Cw/KvlKrQU3OLLPdTvVosftpljXXWnRM8VWhxIinTppPaEq6OvB6PDeR8IkeK/zaBjwFoVlg2RgUN6FwYWDsGVmvioVz8CgE4U5w5nHtUdYtEpEqxEv+sylOz9ujvoxjI+8BfsXPGOmSgRl6f5goa5sCgxI+R5tYJuiMWWKK/fTmh93gxDeT9YvRTejMGTuCSWo4o0vR0A/nrGuONJqIeAMP29uSRbK2DA17lXBkPY2P1rjedE+81nVCYylt0w+U17IHYHaeQ1yHDXCBfJSF/djqganfQXVDcb4QsAQtRfL8bjoTlwOEHY0R7rtY9uloFDPpepcMQmbSCNv6EGIC9mq0pd0gOBxBOrAGhligCi+AD18NQwx5cdrRsegiBNlnWtQdU4yNIIjZp2Mp22998SZLGsIYeKxDe6k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(22082099003)(18002099003)(6133799003)(3023799007)(56012099006)(10067099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8oAF5f6y18Qy7u+gxXvPTLLrD0gnCZsjl+duFGYE+JJGgzXQ1v9+c6TqMW2Y?= =?us-ascii?Q?pNHAFBut45pyANSldWzB/MWmASSovdzdR7Z2l8jtxxrtmivufKQ+I1QB2KSy?= =?us-ascii?Q?ZrYSHTEEVnGVNotE5ovLWlUL2nQ1pimMvlasT9MylgYON39JgbUTvn6Gdt4J?= =?us-ascii?Q?8NqbFeQC1oUYJTGhhn/s8fcwRRRq1mWu9ek5E23OeojIfva+pLIBKjZuNgLo?= =?us-ascii?Q?UOOb8HLFG61k9e9At5/wXStpyzsk+hxqp2hMQmmT4Cuyz07zUFszVUW158vP?= =?us-ascii?Q?Yxuf6nnPj9+63nybK2QkF8C4m+osFyuJRKLYFMNj94ir9YmZJ1XtPMQW6Ls9?= =?us-ascii?Q?1cxFGriWDPvVJk5SLXhvHdlt/D0wMfgSG5EDSXCy7CSRRv8VYFFGFPK7SZIb?= =?us-ascii?Q?cTTPXMy23NrlvGrLGVHd17elXRRbiENliIXgcXW0zSy4OF4v50ODxnxLnaSL?= =?us-ascii?Q?+V2WW7sC5XFyzwc79qa7viOPchc7Xi5idQq9v5eMeCIykRvT40lSYCEQzr+b?= =?us-ascii?Q?opb8tBna7U85j4TC429Jmj2ho6fQGSVFB9LWSYht7Rb8C7PlIvL/RWO/l7Tw?= =?us-ascii?Q?lpDg2wFfC08xTDRoB7sAIEcuAvCBr62lN7b/Aib3BTtBQVpPf+En2C88V95Z?= =?us-ascii?Q?BhwVADlvvhl4oogOOQF96SH7t5WqaaKLl+QqLKS8FpLrEdd2iUJ/sQRFQXjX?= =?us-ascii?Q?Aui5nmpeeFyUtmSub70yhKE/wZVXLfgVhEigE4iEl9LCKT+B2Syu9MOzhfo6?= =?us-ascii?Q?/pwdV98biR7pYkcwOHyUshQT+WU5QZZ7qmGtXfset78FkkA9iXE6BgMGxrKa?= =?us-ascii?Q?ynD0EPV/wvDv3iffHnS+LGudhxwbGbipSc82s1s69sZtMnEl+m8jcXOysiHT?= =?us-ascii?Q?6SR3vYDCGIeP+tHVEByJOtD+ouV6ztP/ZLvMGgWl9f150EatOk4G3D9KHKdV?= =?us-ascii?Q?VjNZYQ0SCX0tN8wriNxpXzA/ndDRUFG4CpIJOMaFhxT7qkGH+E2DDUgXRwyr?= =?us-ascii?Q?J7QKw6hB4HrBTWkkvBihTs//3QVR+APUPkrT4MK57k6v89Df5JEhDo1sP4aw?= =?us-ascii?Q?GMZWc6uGvWqzjy7LYVc0CUkXaWLchJ3MueJQ1D/G/ktpHmDSxznFCecErH0t?= =?us-ascii?Q?oncz0TxLn9Faw6N4maoraarVlJ2FYzH5lRMgWb2RWn3xn5VZkbhSuN5XZx9U?= =?us-ascii?Q?SqcfbySpPYbGGJHkmFu975Z2uy+M/6yL9O3CFyoffdn8Tr91PPwVxxKu11CG?= =?us-ascii?Q?HMk+i7Qm+94D5PAtQW+hddWvK733DLWvOvL9DyHDJ22VRL0lDyFCAQN3zkip?= =?us-ascii?Q?5Kg+W/ZCaxMNJQbXhIr/EI0fPj/bCrMWOGwfuxQnVVFYrd2jSyuZJZ8WV3dL?= =?us-ascii?Q?jxmsnlbB7jANeR2q73JQMBwey6sDqsa3EcX9jUYjwU/POeU0nTcYTQuW/9zJ?= =?us-ascii?Q?UXNsCHC7muUKi6ejfGaCX6te6DqUyW7S1kWWJH2gEvSB+YAv4TmksAJq0tog?= =?us-ascii?Q?G5zbuD1cI2aI/0YvMu20Xxu8MH4t0WVJRhsQCjl+S0NCfgzOnd7NfOQ+gARw?= =?us-ascii?Q?whhIJKDf5mIFce88ZdvBM1lP6dRT/qUQoo+BG4tJ1CRMA68dfH4qec/sGMQ0?= =?us-ascii?Q?fNXseDiDd+6MnyHF+12tgW4XnUX722cZK2+VO+qtjD5mmB1sUP0VcdblnkEx?= =?us-ascii?Q?vXl3sbff6rfJWUTXPw0tQvRFajIHptdtZJQHjIRavscv5aLyrHC5t++xF+Ck?= =?us-ascii?Q?j5gQvw23vA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 81ef6e4d-0996-4740-a99f-08dee44ed638 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2026 22:00:38.7110 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 1eCreL1ZDKX+e0rMQOx6QgENVHWvbsUwYdNBlr2mYbMWlp2f30OMg0EKd3b147WDy78IykTLvQN0ZEk8U8Gxjw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7900 Message-ID-Hash: ZRQFHMKRA27FMY44E5YPVLLL4JZY7VSU X-Message-ID-Hash: ZRQFHMKRA27FMY44E5YPVLLL4JZY7VSU X-MailFrom: nathanc@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Matt Ochs , Nicolin Chen , Shameer Kolothum , Nathan Chen X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1784326534566158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen The arm-smmuv3 QOM type appears in qom-list-types on ARM QEMU as far back as 8.2 because the type is used for machine-integrated IOMMU (-machine virt,iommu=3Dsmmuv3). That reply does not indicate support for a user-pluggable -device arm-smmuv3. User-pluggable SMMUv3 with the smmu_per_bus property was added in QEMU 10.2.0. Probe that property via device-list-properties instead of registering arm-smmuv3 in virQEMUCapsObjectTypes[], so the capability tracks pluggable device support rather than mere QOM visibility. Skip arm-smmuv3 device-list-properties probing on non-ARM targets. In qemu_validate.c, an IOMMU with pci_bus set requires QEMU_CAPS_ARM_SMMUV3; machine-integrated SMMUv3 without pci_bus keeps using QEMU_CAPS_MACHINE_VIRT_IOMMU. Update caps_8.2.0_aarch64, caps_9.2.0_aarch64, caps_10.0.0_aarch64, caps_10.2.0_aarch64, caps_11.0.0_aarch64, caps_8.2.0_armv7l, and caps_11.1.0_aarch64 .replies with the arm-smmuv3 device-list-properties exchange. Signed-off-by: Nathan Chen --- src/qemu/qemu_capabilities.c | 12 ++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_validate.c | 9 +- .../caps_10.0.0_aarch64.replies | 79 ++++++---- .../caps_10.2.0_aarch64.replies | 89 +++++++---- .../caps_10.2.0_aarch64.xml | 1 + .../caps_11.0.0_aarch64.replies | 132 ++++++++++++---- .../caps_11.0.0_aarch64.xml | 1 + .../caps_11.1.0_aarch64.replies | 143 ++++++++++++++---- .../caps_11.1.0_aarch64.xml | 1 + .../caps_8.2.0_aarch64.replies | 79 ++++++---- .../caps_8.2.0_armv7l.replies | 79 ++++++---- .../caps_9.2.0_aarch64+hvf.replies | 75 ++++++--- 13 files changed, 514 insertions(+), 187 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index be57dcad8e..c98023bbe2 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -767,6 +767,7 @@ VIR_ENUM_IMPL(virQEMUCaps, =20 /* 495 */ "blockdev-mirror.target-is-zero", /* QEMU_CAPS_BLOCKDEV_MIRR= OR_TARGET_IS_ZERO */ + "arm-smmuv3.smmu_per_bus", /* QEMU_CAPS_ARM_SMMUV3 */ ); =20 =20 @@ -1643,6 +1644,10 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCap= sDevicePropsAMDIOMMU[] =3D { { "xtsup", QEMU_CAPS_AMD_IOMMU_XTSUP, NULL }, }; =20 +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsArmSmmuv3[= ] =3D { + { "smmu_per_bus", QEMU_CAPS_ARM_SMMUV3, NULL }, +}; + /* see documentation for virQEMUQAPISchemaPathGet for the query format */ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] =3D { { "blockdev-add/arg-type/+file/drop-cache", QEMU_CAPS_MIGRATION_FILE_D= ROP_CACHE }, @@ -1808,6 +1813,9 @@ static virQEMUCapsDeviceTypeProps virQEMUCapsDevicePr= ops[] =3D { { "amd-iommu", virQEMUCapsDevicePropsAMDIOMMU, G_N_ELEMENTS(virQEMUCapsDevicePropsAMDIOMMU), QEMU_CAPS_AMD_IOMMU }, + { "arm-smmuv3", virQEMUCapsDevicePropsArmSmmuv3, + G_N_ELEMENTS(virQEMUCapsDevicePropsArmSmmuv3), + -1 }, { "scsi-block", virQEMUCapsDevicePropsSCSIBlock, G_N_ELEMENTS(virQEMUCapsDevicePropsSCSIBlock), -1 }, @@ -2825,6 +2833,10 @@ virQEMUCapsProbeQMPDeviceProperties(virQEMUCaps *qem= uCaps, !virQEMUCapsGet(qemuCaps, device->capsCondition)) continue; =20 + if (STREQ(device->type, "arm-smmuv3") && + !ARCH_IS_ARM(qemuCaps->arch)) + continue; + if (!(qemuprops =3D qemuMonitorGetDeviceProps(mon, device->type))) return -1; =20 diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 3014f3dc5e..c03c32389b 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -741,6 +741,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ =20 /* 495 */ QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO, /* 'blockdev-mirror' support= s 'target-is-zero' */ + QEMU_CAPS_ARM_SMMUV3, /* arm-smmuv3.smmu_per_bus */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 439d4b1916..500b8ee680 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5711,7 +5711,14 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMM= UDef *iommu, virDomainIOMMUModelTypeToString(iommu->model)); return -1; } - if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VIRT_IOMMU)) { + if (iommu->pci_bus >=3D 0) { + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_ARM_SMMUV3)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("IOMMU device: Setting pciBus for '%1$s' = is not supported with this QEMU binary"), + virDomainIOMMUModelTypeToString(iommu->mode= l)); + return -1; + } + } else if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_MACHINE_VIRT_IOMMU)= ) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("IOMMU device: '%1$s' is not supported with t= his QEMU binary"), virDomainIOMMUModelTypeToString(iommu->model)); diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies b/tests= /qemucapabilitiesdata/caps_10.0.0_aarch64.replies index 0448dcaab9..382b76e021 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_10.0.0_aarch64.replies @@ -32067,17 +32067,44 @@ { "execute": "device-list-properties", "arguments": { - "typename": "scsi-block" + "typename": "arm-smmuv3" }, "id": "libvirt-31" } =20 +{ + "return": [ + { + "name": "primary-bus", + "type": "link" + }, + { + "default-value": 0, + "name": "bus_num", + "type": "uint8" + }, + { + "name": "stage", + "type": "str" + } + ], + "id": "libvirt-31" +} + +{ + "execute": "device-list-properties", + "arguments": { + "typename": "scsi-block" + }, + "id": "libvirt-32" +} + { "error": { "class": "DeviceNotFound", "desc": "The libvirt device dump was not collected for this version+de= vice tuple" }, - "id": "libvirt-31" + "id": "libvirt-32" } =20 { @@ -32085,7 +32112,7 @@ "arguments": { "typename": "scsi-generic" }, - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -32093,7 +32120,7 @@ "class": "DeviceNotFound", "desc": "The libvirt device dump was not collected for this version+de= vice tuple" }, - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -32101,7 +32128,7 @@ "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -32191,7 +32218,7 @@ "type": "bool" } ], - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -32199,7 +32226,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -32278,7 +32305,7 @@ "type": "int" } ], - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -32286,7 +32313,7 @@ "arguments": { "typename": "max-arm-cpu" }, - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -32534,12 +32561,12 @@ "type": "link" } ], - "id": "libvirt-35" + "id": "libvirt-36" } =20 { "execute": "query-machines", - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -33634,7 +33661,7 @@ "default-ram-id": "ram" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -33642,7 +33669,7 @@ "arguments": { "typename": "virt-10.0-machine" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -33889,7 +33916,7 @@ "type": "string" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -33897,7 +33924,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -34016,12 +34043,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -34315,12 +34342,12 @@ "deprecated": false } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { "execute": "query-command-line-options", - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -35787,12 +35814,12 @@ "option": "drive" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { "execute": "query-gic-capabilities", - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -35808,7 +35835,7 @@ "kernel": false } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -35819,7 +35846,7 @@ "name": "host" } }, - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -35852,7 +35879,7 @@ } } }, - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -35867,11 +35894,11 @@ } } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { - "id": "libvirt-43", + "id": "libvirt-44", "error": { "class": "GenericError", "desc": "Parameter 'model.props.hv-passthrough' is unexpected" diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.replies b/tests= /qemucapabilitiesdata/caps_10.2.0_aarch64.replies index 2a5be22ed8..c0cb15aa3a 100644 --- a/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.replies @@ -33933,11 +33933,44 @@ { "execute": "device-list-properties", "arguments": { - "typename": "scsi-block" + "typename": "arm-smmuv3" }, "id": "libvirt-32" } =20 +{ + "return": [ + { + "name": "primary-bus", + "type": "link" + }, + { + "default-value": 0, + "name": "bus_num", + "type": "uint8" + }, + { + "default-value": false, + "name": "smmu_per_bus", + "description": "on/off", + "type": "bool" + }, + { + "name": "stage", + "type": "str" + } + ], + "id": "libvirt-32" +} + +{ + "execute": "device-list-properties", + "arguments": { + "typename": "scsi-block" + }, + "id": "libvirt-33" +} + { "return": [ { @@ -34008,7 +34041,7 @@ "type": "int32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -34016,7 +34049,7 @@ "arguments": { "typename": "scsi-generic" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -34057,7 +34090,7 @@ "type": "int32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -34065,7 +34098,7 @@ "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -34159,7 +34192,7 @@ "type": "bool" } ], - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -34167,7 +34200,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -34236,7 +34269,7 @@ "type": "bool" } ], - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -34244,7 +34277,7 @@ "arguments": { "typename": "max-arm-cpu" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -34492,12 +34525,12 @@ "type": "link" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { "execute": "query-machines", - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -35539,7 +35572,7 @@ "default-ram-id": "ram" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -35547,7 +35580,7 @@ "arguments": { "typename": "virt-10.2-machine" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -35810,7 +35843,7 @@ "type": "child" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -35818,7 +35851,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -35943,12 +35976,12 @@ "type": "bool" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -36176,12 +36209,12 @@ "deprecated": false } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { "execute": "query-command-line-options", - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -37743,12 +37776,12 @@ "option": "drive" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-gic-capabilities", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37764,7 +37797,7 @@ "kernel": true } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37775,7 +37808,7 @@ "name": "host" } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37808,7 +37841,7 @@ } } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37819,7 +37852,7 @@ "name": "host" } }, - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37852,7 +37885,7 @@ } } }, - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37867,11 +37900,11 @@ } } }, - "id": "libvirt-45" + "id": "libvirt-46" } =20 { - "id": "libvirt-45", + "id": "libvirt-46", "error": { "class": "GenericError", "desc": "Parameter 'model.props.hv-passthrough' is unexpected" diff --git a/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_10.2.0_aarch64.xml index df3e2a8275..f637cb6f11 100644 --- a/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_10.2.0_aarch64.xml @@ -186,6 +186,7 @@ + 10002000 61700287 v10.2.0 diff --git a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.replies b/tests= /qemucapabilitiesdata/caps_11.0.0_aarch64.replies index fef7dd9730..078716745d 100644 --- a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.replies @@ -33845,11 +33845,87 @@ { "execute": "device-list-properties", "arguments": { - "typename": "scsi-block" + "typename": "arm-smmuv3" }, "id": "libvirt-32" } =20 +{ + "return": [ + { + "name": "memory", + "type": "link" + }, + { + "name": "secure-memory", + "type": "link" + }, + { + "name": "primary-bus", + "type": "link" + }, + { + "default-value": 0, + "name": "bus_num", + "type": "uint8" + }, + { + "default-value": false, + "name": "smmu_per_bus", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "44", + "name": "oas", + "description": "Specify Output Address Size (for accel=3Don). Suppor= ted values are 44 or 48 bits. Defaults to 44 bits. oas=3Dauto is not suppor= ted.", + "type": "OasMode" + }, + { + "default-value": "on", + "name": "ril", + "description": "Disable range invalidation support (for accel=3Don).= ril=3Dauto is not supported.", + "type": "OnOffAuto" + }, + { + "default-value": 0, + "name": "msi-gpa", + "type": "uint64" + }, + { + "default-value": false, + "name": "accel", + "description": "Enable SMMUv3 accelerator support. Allows host SMMUv= 3 to be configured in nested mode for vfio-pci dev assignment", + "type": "bool" + }, + { + "name": "stage", + "type": "str" + }, + { + "default-value": "0", + "name": "ssidsize", + "description": "Number of bits used to represent SubstreamIDs (SSIDs= ). A value of N allows SSIDs in the range [0 .. 2^N - 1]. Valid range is 0-= 20, where 0 disables SubstreamID support. Defaults to 0. A value greater th= an 0 is required to enable PASID support. ssidsize=3Dauto is not supported.= ", + "type": "SsidSizeMode" + }, + { + "default-value": "off", + "name": "ats", + "description": "Enable/disable ATS support (for accel=3Don). Please = ensure host platform has ATS support before enabling this. ats=3Dauto is no= t supported.", + "type": "OnOffAuto" + } + ], + "id": "libvirt-32" +} + +{ + "execute": "device-list-properties", + "arguments": { + "typename": "scsi-block" + }, + "id": "libvirt-33" +} + { "return": [ { @@ -33926,7 +34002,7 @@ "type": "int32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -33934,7 +34010,7 @@ "arguments": { "typename": "scsi-generic" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -33975,7 +34051,7 @@ "type": "int32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -33983,7 +34059,7 @@ "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -34077,7 +34153,7 @@ "type": "bool" } ], - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -34085,7 +34161,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -34154,7 +34230,7 @@ "type": "bool" } ], - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -34162,7 +34238,7 @@ "arguments": { "typename": "max-arm-cpu" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -34411,12 +34487,12 @@ "type": "link" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { "execute": "query-machines", - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -35466,7 +35542,7 @@ "default-ram-id": "ram" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -35474,7 +35550,7 @@ "arguments": { "typename": "virt-11.0-machine" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -35752,7 +35828,7 @@ "type": "child" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -35760,7 +35836,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -35890,12 +35966,12 @@ "type": "bool" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -36123,12 +36199,12 @@ "deprecated": false } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { "execute": "query-command-line-options", - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -37709,12 +37785,12 @@ "option": "drive" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-gic-capabilities", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37730,7 +37806,7 @@ "kernel": true } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37741,7 +37817,7 @@ "name": "host" } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37774,7 +37850,7 @@ } } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37785,7 +37861,7 @@ "name": "host" } }, - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37818,7 +37894,7 @@ } } }, - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37833,11 +37909,11 @@ } } }, - "id": "libvirt-45" + "id": "libvirt-46" } =20 { - "id": "libvirt-45", + "id": "libvirt-46", "error": { "class": "GenericError", "desc": "Parameter 'model.props.hv-passthrough' is unexpected" diff --git a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_11.0.0_aarch64.xml index 3fdc0d6621..b5f43d9be5 100644 --- a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml @@ -188,6 +188,7 @@ + 11000000 61700286 v11.0.0 diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.replies b/tests= /qemucapabilitiesdata/caps_11.1.0_aarch64.replies index 41cd5496c6..c91d77655d 100644 --- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.replies @@ -33939,11 +33939,98 @@ { "execute": "device-list-properties", "arguments": { - "typename": "scsi-block" + "typename": "arm-smmuv3" }, "id": "libvirt-32" } =20 +{ + "return": [ + { + "name": "memory", + "type": "link" + }, + { + "name": "secure-memory", + "type": "link" + }, + { + "name": "primary-bus", + "type": "link" + }, + { + "default-value": 0, + "name": "bus_num", + "type": "uint8" + }, + { + "default-value": false, + "name": "smmu_per_bus", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "cmdqv", + "description": "Enable/disable CMDQV support (for accel=3Don). Valid= values are on, off, and auto. Defaults to auto.", + "type": "OnOffAuto" + }, + { + "default-value": "auto", + "name": "ats", + "description": "Enable/disable ATS support (for accel=3Don). Valid v= alues are on, off, and auto. Defaults to auto. Please ensure host platform = supports ATS before setting it to on.", + "type": "OnOffAuto" + }, + { + "default-value": "auto", + "name": "oas", + "description": "Set Output Address Size in bits (for accel=3Don). Va= lid values are 44, 48, and auto. Defaults to auto.Please ensure the value d= oes not exceed the maximum Output Address Size supported by the host platfo= rm.", + "type": "OasMode" + }, + { + "default-value": "auto", + "name": "ssidsize", + "description": "Set number of bits used to represent SubstreamIDs (S= SIDs). Valid values are 0-20 and auto. Defaults to auto. A value of N allow= s SSIDs in the range [0 .. 2^N - 1]. A value of 0 disables SubstreamID supp= ort. A value greater than 0 is required to enable PASID support.Please ensu= re the value does not exceed the maximum SubstreamID size supported by the = host platform.", + "type": "SsidSizeMode" + }, + { + "default-value": "auto", + "name": "ril", + "description": "Enable/disable range invalidation support (for accel= =3Don). Valid values are on, off, and auto. Defaults to auto. Any attempt t= o turn it 'on' while the host does not support it would fail.", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "accel", + "description": "Enable SMMUv3 accelerator support. Allows host SMMUv= 3 to be configured in nested mode for vfio-pci dev assignment. Please ensur= e the host SMMUv3 supports nested translation before enabling.", + "type": "bool" + }, + { + "name": "stage", + "type": "str" + }, + { + "default-value": 0, + "name": "msi-gpa", + "type": "uint64" + }, + { + "default-value": 0, + "name": "identifier", + "type": "uint8" + } + ], + "id": "libvirt-32" +} + +{ + "execute": "device-list-properties", + "arguments": { + "typename": "scsi-block" + }, + "id": "libvirt-33" +} + { "return": [ { @@ -34020,7 +34107,7 @@ "type": "int32" } ], - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -34028,7 +34115,7 @@ "arguments": { "typename": "scsi-generic" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -34069,7 +34156,7 @@ "type": "int32" } ], - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -34077,7 +34164,7 @@ "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -34171,7 +34258,7 @@ "type": "bool" } ], - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -34179,7 +34266,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -34248,7 +34335,7 @@ "type": "bool" } ], - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -34256,7 +34343,7 @@ "arguments": { "typename": "max-arm-cpu" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -34511,12 +34598,12 @@ "type": "link" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { "execute": "query-machines", - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -35555,7 +35642,7 @@ "default-ram-id": "ram" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -35563,7 +35650,7 @@ "arguments": { "typename": "virt-11.1-machine" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -35841,7 +35928,7 @@ "type": "child" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -35849,7 +35936,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -35979,12 +36066,12 @@ "type": "bool" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -36212,12 +36299,12 @@ "deprecated": false } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { "execute": "query-command-line-options", - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -37810,12 +37897,12 @@ "option": "drive" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-gic-capabilities", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37831,7 +37918,7 @@ "kernel": true } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37842,7 +37929,7 @@ "name": "host" } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37875,7 +37962,7 @@ } } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37886,7 +37973,7 @@ "name": "host" } }, - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37919,7 +38006,7 @@ } } }, - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37934,11 +38021,11 @@ } } }, - "id": "libvirt-45" + "id": "libvirt-46" } =20 { - "id": "libvirt-45", + "id": "libvirt-46", "error": { "class": "GenericError", "desc": "Parameter 'model.props.hv-passthrough' is unexpected" diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_11.1.0_aarch64.xml index f7dd14a1ad..28bf1aff57 100644 --- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml @@ -188,6 +188,7 @@ + 11000050 61700287 v11.0.0-1600-g5611a9268d diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies b/tests/= qemucapabilitiesdata/caps_8.2.0_aarch64.replies index 002ca31b9f..c4d0be6029 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies +++ b/tests/qemucapabilitiesdata/caps_8.2.0_aarch64.replies @@ -31157,17 +31157,44 @@ { "execute": "device-list-properties", "arguments": { - "typename": "scsi-block" + "typename": "arm-smmuv3" }, "id": "libvirt-32" } =20 +{ + "return": [ + { + "name": "primary-bus", + "type": "link" + }, + { + "default-value": 0, + "name": "bus_num", + "type": "uint8" + }, + { + "name": "stage", + "type": "str" + } + ], + "id": "libvirt-32" +} + +{ + "execute": "device-list-properties", + "arguments": { + "typename": "scsi-block" + }, + "id": "libvirt-33" +} + { "error": { "class": "DeviceNotFound", "desc": "The libvirt device dump was not collected for this version+de= vice tuple" }, - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -31175,7 +31202,7 @@ "arguments": { "typename": "scsi-generic" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -31183,7 +31210,7 @@ "class": "DeviceNotFound", "desc": "The libvirt device dump was not collected for this version+de= vice tuple" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -31191,7 +31218,7 @@ "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -31281,7 +31308,7 @@ "type": "bool" } ], - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -31289,7 +31316,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -31368,7 +31395,7 @@ "type": "int" } ], - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -31376,7 +31403,7 @@ "arguments": { "typename": "max-arm-cpu" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31585,12 +31612,12 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { "execute": "query-machines", - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32702,7 +32729,7 @@ "default-ram-id": "ram" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32710,7 +32737,7 @@ "arguments": { "typename": "virt-8.2-machine" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -32946,7 +32973,7 @@ "type": "child" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -32954,7 +32981,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33067,12 +33094,12 @@ "type": "child" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33366,12 +33393,12 @@ "deprecated": false } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { "execute": "query-command-line-options", - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -34736,12 +34763,12 @@ "option": "drive" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-gic-capabilities", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -34757,7 +34784,7 @@ "kernel": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -34768,7 +34795,7 @@ "name": "host" } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -34801,7 +34828,7 @@ } } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -34816,11 +34843,11 @@ } } }, - "id": "libvirt-44" + "id": "libvirt-45" } =20 { - "id": "libvirt-44", + "id": "libvirt-45", "error": { "class": "GenericError", "desc": "Parameter 'hv-passthrough' is unexpected" diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.replies b/tests/q= emucapabilitiesdata/caps_8.2.0_armv7l.replies index b8f7b6f68a..51cd48e1d1 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.replies +++ b/tests/qemucapabilitiesdata/caps_8.2.0_armv7l.replies @@ -31391,17 +31391,44 @@ { "execute": "device-list-properties", "arguments": { - "typename": "scsi-block" + "typename": "arm-smmuv3" }, "id": "libvirt-32" } =20 +{ + "return": [ + { + "name": "primary-bus", + "type": "link" + }, + { + "default-value": 0, + "name": "bus_num", + "type": "uint8" + }, + { + "name": "stage", + "type": "str" + } + ], + "id": "libvirt-32" +} + +{ + "execute": "device-list-properties", + "arguments": { + "typename": "scsi-block" + }, + "id": "libvirt-33" +} + { "error": { "class": "DeviceNotFound", "desc": "The libvirt device dump was not collected for this version+de= vice tuple" }, - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -31409,7 +31436,7 @@ "arguments": { "typename": "scsi-generic" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -31417,7 +31444,7 @@ "class": "DeviceNotFound", "desc": "The libvirt device dump was not collected for this version+de= vice tuple" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -31425,7 +31452,7 @@ "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -31519,7 +31546,7 @@ "type": "bool" } ], - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -31527,7 +31554,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -31606,7 +31633,7 @@ "type": "int" } ], - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -31614,7 +31641,7 @@ "arguments": { "typename": "max-arm-cpu" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31756,12 +31783,12 @@ "type": "link" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { "execute": "query-machines", - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32819,7 +32846,7 @@ "default-ram-id": "ram" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32827,7 +32854,7 @@ "arguments": { "typename": "virt-8.2-machine" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -33063,7 +33090,7 @@ "type": "child" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -33071,7 +33098,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33184,12 +33211,12 @@ "type": "child" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33411,12 +33438,12 @@ "deprecated": false } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { "execute": "query-command-line-options", - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -34898,12 +34925,12 @@ "option": "drive" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-gic-capabilities", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -34919,7 +34946,7 @@ "kernel": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -34930,11 +34957,11 @@ "name": "host" } }, - "id": "libvirt-43" + "id": "libvirt-44" } =20 { - "id": "libvirt-43", + "id": "libvirt-44", "error": { "class": "GenericError", "desc": "The CPU type 'host' requires KVM" @@ -34953,11 +34980,11 @@ } } }, - "id": "libvirt-44" + "id": "libvirt-45" } =20 { - "id": "libvirt-44", + "id": "libvirt-45", "error": { "class": "GenericError", "desc": "The CPU type 'host' requires KVM" diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.replies b/te= sts/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.replies index 14b11c5c30..31b13f865b 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.replies +++ b/tests/qemucapabilitiesdata/caps_9.2.0_aarch64+hvf.replies @@ -30532,17 +30532,44 @@ { "execute": "device-list-properties", "arguments": { - "typename": "scsi-block" + "typename": "arm-smmuv3" }, "id": "libvirt-28" } =20 +{ + "return": [ + { + "name": "primary-bus", + "type": "link" + }, + { + "default-value": 0, + "name": "bus_num", + "type": "uint8" + }, + { + "name": "stage", + "type": "str" + } + ], + "id": "libvirt-28" +} + +{ + "execute": "device-list-properties", + "arguments": { + "typename": "scsi-block" + }, + "id": "libvirt-29" +} + { "error": { "class": "DeviceNotFound", "desc": "The libvirt device dump was not collected for this version+de= vice tuple" }, - "id": "libvirt-28" + "id": "libvirt-29" } =20 { @@ -30550,7 +30577,7 @@ "arguments": { "typename": "scsi-generic" }, - "id": "libvirt-29" + "id": "libvirt-30" } =20 { @@ -30558,7 +30585,7 @@ "class": "DeviceNotFound", "desc": "The libvirt device dump was not collected for this version+de= vice tuple" }, - "id": "libvirt-29" + "id": "libvirt-30" } =20 { @@ -30566,7 +30593,7 @@ "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-30" + "id": "libvirt-31" } =20 { @@ -30651,7 +30678,7 @@ "type": "bool" } ], - "id": "libvirt-30" + "id": "libvirt-31" } =20 { @@ -30659,7 +30686,7 @@ "arguments": { "typename": "max-arm-cpu" }, - "id": "libvirt-31" + "id": "libvirt-32" } =20 { @@ -30816,12 +30843,12 @@ "type": "link" } ], - "id": "libvirt-31" + "id": "libvirt-32" } =20 { "execute": "query-machines", - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -31871,7 +31898,7 @@ "default-ram-id": "ram" } ], - "id": "libvirt-32" + "id": "libvirt-33" } =20 { @@ -31879,7 +31906,7 @@ "arguments": { "typename": "virt-9.2-machine" }, - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -32120,7 +32147,7 @@ "type": "child" } ], - "id": "libvirt-33" + "id": "libvirt-34" } =20 { @@ -32128,7 +32155,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-34" + "id": "libvirt-35" } =20 { @@ -32246,12 +32273,12 @@ "type": "child" } ], - "id": "libvirt-34" + "id": "libvirt-35" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-35" + "id": "libvirt-36" } =20 { @@ -32545,12 +32572,12 @@ "deprecated": false } ], - "id": "libvirt-35" + "id": "libvirt-36" } =20 { "execute": "query-command-line-options", - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -33866,12 +33893,12 @@ "option": "drive" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { "execute": "query-gic-capabilities", - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -33887,7 +33914,7 @@ "kernel": false } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -33898,11 +33925,11 @@ "name": "host" } }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { - "id": "libvirt-38", + "id": "libvirt-39", "error": { "class": "GenericError", "desc": "The CPU type 'host' requires KVM" @@ -33921,11 +33948,11 @@ } } }, - "id": "libvirt-39" + "id": "libvirt-40" } =20 { - "id": "libvirt-39", + "id": "libvirt-40", "error": { "class": "GenericError", "desc": "The CPU type 'host' requires KVM" --=20 2.43.0 From nobody Sat Jul 25 13:39:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1784326280635221.872587121661; Fri, 17 Jul 2026 15:11:20 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 8616B41D08; Fri, 17 Jul 2026 18:11:19 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id F3DC143DF4; Fri, 17 Jul 2026 18:03:17 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 609A141B98; Fri, 17 Jul 2026 18:03:04 -0400 (EDT) Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazon11013021.outbound.protection.outlook.com [40.93.196.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id A248141E30 for ; Fri, 17 Jul 2026 18:00:54 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by DS0PR12MB7900.namprd12.prod.outlook.com (2603:10b6:8:14e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Fri, 17 Jul 2026 22:00:40 +0000 Received: from DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720]) by DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720%6]) with mapi id 15.21.0223.012; Fri, 17 Jul 2026 22:00:40 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ttveBPcDertIzdAgmJlh5cagCKnBYdd9MTWl7VqH/2vnhvlJyKSByUvBST3XRflMo0jyfY2cDBSEmC7RYfr42PLc6+4fQuDR6iFbm6NjigX84AAbtwVCkTguMN2BP3pSIogc3QU3/nJbJD3wfo6+S7RB1rO12y9qKGyyI5N/Qkg2X2lJEKtoYflvEkqT6PQBYCDfqU4RIxr5YU5iLYwVzwbgSDWxkLgqTFIHuhk0h8FaN2d8mn5uy62tQrfyMiDAFIDLYRXdEPPDuKvgvjtW4PotkcLwa1lOdbJCh3VnwIUS8hogIRlaiC2B+aFLV+gGdke//nO5uRkZyzVyPmKpeA== 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=mxgSSudLOLlz/Isye/mH+LymJJ//9Sp5MSlmQWZrW0Q=; b=SRtx3bibcFybzd90GZBiTaVyPsw3GUnCzy3HgkYnzwLpjdAWY7cgOKPD6JXIU19h/V3lSnPU3W+/0b4kOW9xV73G8DtY99bWw30svZRrXrQ2iuf6/WgaPRiMlLlfzsgjCoFQ3Wn+t/YPckrf7sjRwRQvmpw3Ogs49Bl1xdpgnt27t+Pg0N21sy1jDKAFwFQXVRflB7gCIufmei5ujESpBprtSFvmgjAJu6BvufuPkeQ9hI7KovqbPs/3QSzkS367xub2t952y7oWbU2b0z2g6Wq/drUYyi5xGYBsZb+47T8lbarMmraeZ+a1FFi2EPTfYlzW31aLC6IRgVGzoIOE1A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mxgSSudLOLlz/Isye/mH+LymJJ//9Sp5MSlmQWZrW0Q=; b=uVVrLVznfrkX2As4czQbUhtguiDIYFLUkMne5icH3yU7YGhwatgvy23vGKbFl+36RlgV4VKswmEVcerYzV2cV1w7uCBM5vRdaBokrD2r8JWu04aMQjjSl0qh2JRpjIO40Px9s3MS52ssMFikOXitJWsy1SGgv/7uvcHU4QmtSwWTt59c5WKJMrDyyAqSU40BJonyIMt117dlctrJ78iSJTTIhe1TxtN2VMKuuvifYgTzAsUY8Jwmc9chb7K0H1AnuMX9Kxf3y5SA4difrUT4LVxEThWna0jU7nRjfTjlfjO5Ebb/kw196VOe7JGLTH0NdjqrqFpH4pdFGRCJ+Y97ow== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH v10 5/6] qemu: introduce QEMU_CAPS_ARM_SMMUV3_ACCEL Date: Fri, 17 Jul 2026 15:00:24 -0700 Message-ID: <20260717220025.873311-6-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260717220025.873311-1-nathanc@nvidia.com> References: <20260717220025.873311-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0225.namprd13.prod.outlook.com (2603:10b6:a03:2c1::20) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|DS0PR12MB7900:EE_ X-MS-Office365-Filtering-Correlation-Id: 8b13442f-40ab-4eb0-5ba9-08dee44ed736 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|23010399003|366016|376014|22082099003|18002099003|6133799003|3023799007|56012099006|10067099003|11063799006; X-Microsoft-Antispam-Message-Info: J1NmIcyojq9/fAJX/3RwOgl0xaYm7Bj4sCfNcF7NN3e2X0/tJ01oWisdqWxL+1xSzHmUKX607JBDldGovPPRrn+buiOHZFJ5MfdQ3f8BMy3GoNZfd4bRFcaJmuwS+LavHyWencVKWohbn+pP7U9riKRR+L5RWaHaFcABdv4JL8y0mM7MT1ZyUvKjtX5KuPC27nwromcujNEAqwtRaLDnDtFXwiCe33Jr/0UGOI1k2ofuL5+xrcCojhK4Krent2146i4BWqW2P8mA22gtSqhDfxiMZUvf8VGr3i2nkQwb2jJeD54sjH7XiAXNySbuoc8Dshfx0F7fD/dFvd4weOMtxwQ/09jr6glQAj44nHyr9Fw33rLVS2PatvNBReucmXKPak2BiwMLaaqfr3oWMkaQ0Wdp4zuDdDToCTg3Hh4yS9v1zvGPAhld2ROJHLoVW24H8Qwh0I519OrwXSoZFUtqUnawEKTvJ09+Y7P30+t4D9YruDZdiPwpCR2uUxJL3/MmV52N/xJH23J+a2wdZQhC0BxYu2oJccP2mUSXjXQXrsbxxi3zsOi7OwdJsPmphZv98uZHS3NAO4ddsKfc13PPCC/WXlWNsVlE5Xt+uu2TjZQDzWIpXfhAhmrzWa6e20RKVgeePG/aEFJfTd3BeFKMrm6kfpt+y1670iaMYELVmCI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(22082099003)(18002099003)(6133799003)(3023799007)(56012099006)(10067099003)(11063799006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?H1J+h4rzYC4bNZajUc0Gno5utyuSdpDQDyl59EbUflBhMyjtl/vHrsWbTApF?= =?us-ascii?Q?ARVvoCnq2MLOLmWMEBt9GUj0s4LPR5wPuijDKWltKiZzS9TcpN1emd98mr4D?= =?us-ascii?Q?DKpyz7c7TkWbj7ewIYbwNniXPI6442qUef5swqQkq/BoHnCUwqqNxE6WeKY5?= =?us-ascii?Q?BeqDpPHTtB0utlfqVg77ewPjSHGlQvP/psv5UKpkBZK3K1XR2PDqG8F59BDf?= =?us-ascii?Q?PgyZiJ5L1WdKqpeUmJ7ey7j7EFu2NAm4rJFXVSsB5NCJmCFiS64H5YOQHFMC?= =?us-ascii?Q?vxHg9ENGjJgiWlXOgjC2MR1i31/idNVY3uuzh7YTwOzRHCDubiHAkJgyHUbD?= =?us-ascii?Q?FxxEss58ItZsaJhJrsJMyaPGrpc/Ob/q4xAnsO0ZJQqpBAWVDNz0gVlnvQ/H?= =?us-ascii?Q?GTSj+7r7Ns8cubLgb8x1qhRNCz1bjAiMmga9TDoldexeM8qtWFO4CaIIO6ju?= =?us-ascii?Q?wMk7vEhKkxf2nYDyft8s4z9pyTfSvI0EvANaIccGwl78xrGrYtC9dzqHssQp?= =?us-ascii?Q?G+pYuRaIv8+kf/flld+WG4nW13wcWQ1zZCA7egxir8257vcsLzIHlWZdFHn6?= =?us-ascii?Q?2np92263GRDTU4AhaWAzC8pY48fEEgSPxERkZGL7PNiMlYv96DdteqLipUBL?= =?us-ascii?Q?c4djQZdE3YW5Hp+GDsCrAeVItRyxS6ytmJHvaQJTKxhQEdcPmYiMEIumai7n?= =?us-ascii?Q?Ef2HKaOrIWmgZdZCS+wT1ztNrbLUJ+vkROYNU+1/K2KMUaDvDtrwA+4iwxh3?= =?us-ascii?Q?fKg8MdhTbPiASgu/Xgbws644YLx2RL72ZnOkgcd1Lh7ONLsu+Z1bhHJs5i95?= =?us-ascii?Q?hu7TIZ41NJHevmXNwAks5/hx6KTE2FVJw1KsHJKyIU7wBOVZvqozSAxdW/DA?= =?us-ascii?Q?hs9ov4UKHe5JOx5NpFpIk/q0bJPh0VJXhSqpASLeykO1bbSiRQ8VbYoEMEO7?= =?us-ascii?Q?dDR3vvrfr/dzbzJP810plAshVLH2iXKtE9Pjs8dTkKsmHC2czLDvaMP0ybi4?= =?us-ascii?Q?Tu4eS+9D+n3ZJ62h9ZebqcxrRSYrvQE0l2pq+57Ypqo05W6A7IqcJW9+P39N?= =?us-ascii?Q?7Rst8ZtZEeCiRR+ONXKrHaQYNPOW+CjMZh6QV7Djh9y58BaT63IxhaXjqGgB?= =?us-ascii?Q?6Vf+KcYQkzK6Bpq3tiBiZ6WDw3hsmROSpPs6T7u/MC7BRYrUXDekt5fTEprw?= =?us-ascii?Q?DoSe+S9NHPyNViz/40X915wpoKIu29KDZYW2WiO3nr1p2kgZUG70qi9miMGJ?= =?us-ascii?Q?sw77g1Gac7EVJVeLGPzNtG0avCL/sAV7QfNAy+7P7lrrq7L2iX70fxErRF33?= =?us-ascii?Q?roUrZBlok4p393aiZHwDwb6WlVG3tI/03pnLqM/PzOZYl231to2px9eYzoG6?= =?us-ascii?Q?iXaDoAX1Blp1a9muFkgtgm2t83vL/8OMAjsRzEz5BdY+QymFZ0AzgEqO7dII?= =?us-ascii?Q?aI1HdsbOuMlw5TH8oWe0Dr7pauz59f+B04DJAYSLqyYiKDuPCVVlXrtBM3NX?= =?us-ascii?Q?JcmI7ORMQzXNGbEj1/4Otp4htwVMbS1JPRt9JZl+70wkC4YjqT4Z5AdxuDK6?= =?us-ascii?Q?ciH/m5ZtyvM0OLnmUknz+jwShE7cBYBqBllLnsvNN7qp3U7/b0M3JfwebtbK?= =?us-ascii?Q?AHixG3nhgoSrV0Yc/gCExPVZqIJ0Icx3ejIVHoqZJ/P0Hsd7RQO2DQzLgg0I?= =?us-ascii?Q?glkdKa/D8r5EmPt0aJ0K3+lQUWNVgiNyRRL06xMS52Ua+t3MjoDySEq/l1Ei?= =?us-ascii?Q?zaKkNidbaw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8b13442f-40ab-4eb0-5ba9-08dee44ed736 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2026 22:00:40.3235 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Cr02GznVOsRMrGQ4ik4SaF7Pfvd6FcfpUpz19fQdNq3i9fLPoFH913N/ck8/wi8ygc3FHI38KPF61Wvmp6LfVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7900 Message-ID-Hash: DG57FFEMB6LGPQKI3T6CSQAHXUK4HATH X-Message-ID-Hash: DG57FFEMB6LGPQKI3T6CSQAHXUK4HATH X-MailFrom: nathanc@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Matt Ochs , Nicolin Chen , Shameer Kolothum , Nathan Chen X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1784326281246158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen The arm-smmuv3 accel device property, used for HW-accelerated nested SMMUv3, was added in QEMU 11.0.0 on top of the pluggable device introduced in 10.2. Probe it alongside smmu_per_bus via device-list-properties. Validate the domain iommu accel attribute in qemu_validate.c when QEMU lacks this capability. Checking accel is sufficient because ats, ril, ssidsize, and oas were introduced in the same QEMU release, and it only makes sense to backport accel, ats, ril, ssidsize, and oas all together. Signed-off-by: Nathan Chen --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_validate.c | 12 ++++++++++++ tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml | 1 + tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml | 1 + 5 files changed, 17 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index c98023bbe2..db146688f6 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -768,6 +768,7 @@ VIR_ENUM_IMPL(virQEMUCaps, /* 495 */ "blockdev-mirror.target-is-zero", /* QEMU_CAPS_BLOCKDEV_MIRR= OR_TARGET_IS_ZERO */ "arm-smmuv3.smmu_per_bus", /* QEMU_CAPS_ARM_SMMUV3 */ + "arm-smmuv3.accel", /* QEMU_CAPS_ARM_SMMUV3_ACCEL */ ); =20 =20 @@ -1646,6 +1647,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCaps= DevicePropsAMDIOMMU[] =3D { =20 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsArmSmmuv3[= ] =3D { { "smmu_per_bus", QEMU_CAPS_ARM_SMMUV3, NULL }, + { "accel", QEMU_CAPS_ARM_SMMUV3_ACCEL, NULL }, }; =20 /* see documentation for virQEMUQAPISchemaPathGet for the query format */ diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index c03c32389b..4efea95a8d 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -742,6 +742,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ /* 495 */ QEMU_CAPS_BLOCKDEV_MIRROR_TARGET_IS_ZERO, /* 'blockdev-mirror' support= s 'target-is-zero' */ QEMU_CAPS_ARM_SMMUV3, /* arm-smmuv3.smmu_per_bus */ + QEMU_CAPS_ARM_SMMUV3_ACCEL, /* arm-smmuv3.accel */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 500b8ee680..0c7f2a0fc3 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5826,6 +5826,18 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMM= UDef *iommu, return -1; } =20 + /* While QEMU_CAPS_ARM_SMMUV3_ACCEL tracks the .accel attribute of + * arm-smmuv3 it is also a good indicator of .ats, .ril, .ssidsize, and + * .oas attributes as all of them were introduced in the same release, + * and these features are meant to be backported all together. */ + if (iommu->model =3D=3D VIR_DOMAIN_IOMMU_MODEL_SMMUV3 && + iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_ARM_SMMUV3_ACCEL)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("iommu: accel is not supported with this QEMU bin= ary")); + return -1; + } + if (iommu->granule > 0) { /* QEMU supports only 4KiB, 8KiB, 16KiB and 64KiB granule size */ if (!(iommu->granule =3D=3D 4 || diff --git a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_11.0.0_aarch64.xml index b5f43d9be5..097e13fbe6 100644 --- a/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_11.0.0_aarch64.xml @@ -189,6 +189,7 @@ + 11000000 61700286 v11.0.0 diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_11.1.0_aarch64.xml index 28bf1aff57..76d03d3269 100644 --- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml @@ -189,6 +189,7 @@ + 11000050 61700287 v11.0.0-1600-g5611a9268d --=20 2.43.0 From nobody Sat Jul 25 13:39:29 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) client-ip=38.145.34.151; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 38.145.34.151 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; arc=fail (Bad Signature); dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [38.145.34.151]) by mx.zohomail.com with SMTPS id 1784326055706511.01582252753144; Fri, 17 Jul 2026 15:07:35 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 4058441B81; Fri, 17 Jul 2026 18:07:34 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id E4DC3423F6; Fri, 17 Jul 2026 18:01:25 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 3972A41AD5; Fri, 17 Jul 2026 18:01:16 -0400 (EDT) Received: from BN8PR05CU002.outbound.protection.outlook.com (mail-eastus2azon11011061.outbound.protection.outlook.com [52.101.57.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 7688841DCA for ; Fri, 17 Jul 2026 18:00:48 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by SA1PR12MB6969.namprd12.prod.outlook.com (2603:10b6:806:24c::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.12; Fri, 17 Jul 2026 22:00:42 +0000 Received: from DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720]) by DM4PR12MB5390.namprd12.prod.outlook.com ([fe80::2815:c27e:a0a:2720%6]) with mapi id 15.21.0223.012; Fri, 17 Jul 2026 22:00:42 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FORGED_SPF_HELO,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zHbRXTA5ylVNfm3lUEmlcyX5EpL6tapyXRKqtIr8sCF5l9HkZKTX2ZP2dkWLCKc3KwFR8Myr2dqjKlLHnak2/j9Ge/LZXxH8D8r3HxFRjjW/gmBH44Z9z/zEiYjWnFxK5ruXIh0elK1Es0clQlaTZ2kHBnDminsetLDQobVk4V4uth0bDXd5xOSYs0+TBn/LHKF0E1lKTr9jTmSOBPn2b3SkNlZ11y6ccA88xewTZHIgnRbe+I7Y37E/c+np0REJojuMiaHdvEOBh4Mn1lgPwqEokURmPQ+GT2cYcBgRDQNArf0Ek6RYKGJ65i/gL7yFV+sA8chw/aNGG7U47++nRg== 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=93Yi7lpKDsEstPnGUM/p3zPY4fNN0U3LOiswg8CK2SQ=; b=sabKGBFxQKRd8ncr2hVxh4h2FlxlNKWaH2v8irdwl9ONO0Ks/zzO+hZqvlPvHxjrcDyKoCMYTdFOdVCNlZJSmfliMoFZE/3126vd9tJIf/f0LEz6aeBpSJgKLayjcCa5jv1GSlDsyR5t4ZSDeXYfOvTR6Hl1/QmX+cx3eV87JMYQ6hvNQxuodkuNrsWEr7l1gmGEGbpSm9hCa41jq6ooh1oVqgohEiVJwc7QDfec2hNq3I8q9OzAKtxP/PS7cYe21aZckgTAd7Ho2g6gIPkUCIWoLGo744hbyB0WABNI1oViUyEY1HpBcQn+x1uwkDLByNsIQjbKNaxMVqQzvwZaYA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=93Yi7lpKDsEstPnGUM/p3zPY4fNN0U3LOiswg8CK2SQ=; b=SzZ+byRwJuNEV3oP1XBJN0BW8CUKPXSia3BzWCYzWR9h4f6uu1XJQNd8Ow6EZJeZ0wkc0XU1Mws0s0rNSOiNwQil2lGU+FGzt8tQv/CIv7yvJK+b0yjIUiqwElGRwsh7M/3QULonRYX05f7c+B3mpFPtIgiPRTbo1l6gf8Z7ArP96npulMuiz9nZ/Tv2KqyustrI234z9XCxtSS1A0ZWSjgKNoaFxf97HzlL2krtdvNhLTGhs8IJdBrZyurv/dcUoQlleS/+cj4NOTteitd6ArXeb0NyfsS5PAHfC2ZePqUi2AN0+Dp0sSPkSwSHMFnJlT05jCSktDqghIDYTQ1PIg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [PATCH v10 6/6] tests: qemuxmlconfdata: provide HW-accel smmuv3 sample XML and CLI args Date: Fri, 17 Jul 2026 15:00:25 -0700 Message-ID: <20260717220025.873311-7-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260717220025.873311-1-nathanc@nvidia.com> References: <20260717220025.873311-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0088.namprd13.prod.outlook.com (2603:10b6:a03:2c4::33) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|SA1PR12MB6969:EE_ X-MS-Office365-Filtering-Correlation-Id: 7075f34c-9e51-41e0-2760-08dee44ed84c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|20052099010|22082099003|18002099003|6133799003|3023799007|56012099006|11063799006|10067099003; X-Microsoft-Antispam-Message-Info: 3ii+HTAWMkV4QtTFJ9bzbLY8JMoTBKSc8chDqWmHwo/QWhU7tLuPwe5+ULcG43eKFrussrxyhontq8gl1WwZ4h5UQTHcp9IoIDPjOFleCu32tG8RBeag4y3jGHMZdjP6MQkyfCufKpCKdDeRHS1f3+OTDLCWY3EJP3FNVsHTovI5p3eX3CpTdj0VRhbRUPokrvBoUg2pEoiTrXX0hxNHQ5uOR7mxbfz81Dtam6kWVBxCHa5SvVerXjnxFr9ekF8SxFNxm7nw7nMjRAlXPpwCFQXil+kl5Nq6EDz5F3NNleWoDw7mcyOVxDY0ht/4ahuPD0r8YqMOQQprhg0lT9VOXt0bKkX+fKQ372v1uNCgGdAjQ+IeGndwdtPJXhfkFUBsueRnyrvCbqbsBszCP8gwpRYrBoe2MO2VPkoRVBAbczUnGcHiLwfP9VcgZQYr0NQWQ1NYTfXFw3Mcc4qbroQph+TouEOY0Ogd9VtDCNLPvtpSfyBLEKXPOCSLkEVtkKVvCSEn0NBiqaFxmx8ch3mQxksSlAii5x7SK7MJkIDH4z3ArdO7smvukv5Dr9i3nj9GCBkQI5IFiMZGReZk5pAxMeEOSzlAD9zeoWLxP1fPRfmkcX3h2336gJRht9n2NjTlVL4xpQIovdHfu4IRv4HqiiMLkCI1r3Ylzs929mUy77k= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(23010399003)(1800799024)(366016)(20052099010)(22082099003)(18002099003)(6133799003)(3023799007)(56012099006)(11063799006)(10067099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?69yR+GP30yT/EL9rinWDgkfWiu3IbyktnmSOEKoQkDPHC1sKIvu1LTqroSOk?= =?us-ascii?Q?RF9FcDy5QshT24/rtcrmpbnCd8EsV+lZJ7O5MLJTM7pZro44nXnktyAJBd2F?= =?us-ascii?Q?18EcNJZiVHm2rYXSzksVBjK/62e+DxyF4CfUN6WvqmjXN97wF1HsnNkyMTN6?= =?us-ascii?Q?2ZgF/YHKjx3pOovsaNua/D7zaXhyTFF6CAcmXMcgmotBxfljxDHqF0Y5mgJT?= =?us-ascii?Q?Vd0g4+0l1ZmMwYEa4kTk7A+6bczw2p/yyAMZqRVFlS7MweDoR59P684XAkWF?= =?us-ascii?Q?Z+PpsqqaNLAx5/RKYGRanwD4ELNOQFFfjdwoFhf0dM983Aabr8YRBpEXMAhd?= =?us-ascii?Q?1PlcNO/fQ39YuH1DHZD6pgc7bNrq6cM2ymJH77K5dhxrlCRSPf8v7Nlet5wi?= =?us-ascii?Q?uAA8cBRW6/al/uW0XMt12pzfWfrxKfCJokYoRuv45ohthMdSQoV1q9IpupPJ?= =?us-ascii?Q?OvEkhU2AwHphQQ16rGdrZOqKkoqBFub3Tu2wCE5wQ4uicaAhsMnclrNmIBcZ?= =?us-ascii?Q?YKxPRws6phMndgPiK7PjOXhZPe465mNnGXpXEDFcpWmZIRsbAon0vgPtPiIC?= =?us-ascii?Q?KSOTkb5UsPHQs+v+6zQ4jb9iBZr4VpnPKGUBvWGt/Gr2jQAnk3EY9DsCFyDo?= =?us-ascii?Q?2f1xoSNaD3MfnZfEqAPOU8rKHzqC5qwO1ABqEiKJysrfxqSoca1weHnJNahC?= =?us-ascii?Q?O+r5iErD7euhf0Kvq89ee4KwQ++xFZM/VLk+k0IXhgFe87pHJoDZ+k8H+AkN?= =?us-ascii?Q?MRzfVfMQ/RzNSVVFOaE6nxMbokZpHgkaalh6sDyvvJE/SF7CFH6RLCcOHP6K?= =?us-ascii?Q?kxMdGKW4+EjJoaA+dFWuiOdmD5Sy/w6AxVq5p4F/fAMFtxxBFHh0Mlgb3sdO?= =?us-ascii?Q?KOpk/xQIi5b+xD3VPsJj5zTDkTEJqT6WSordV9RdchR1ZopuoM0S7LkFq2ou?= =?us-ascii?Q?hJQwboFuwrqGNUubc3EGxUaZTGer6fwGzQ2iNdeFyfGbHTCRF6KA7vQchnvh?= =?us-ascii?Q?qCSh6aJiL4oqo8DSZs+kZx/uuI2+i8G8eEeE4HtI9cJNmNPzwoffbzWI80sR?= =?us-ascii?Q?0AnKLhGjkDI+AwAtHHmeMtX5IdUBvoqjgAcHAF+CNp+9IM8rkCESR82daJsJ?= =?us-ascii?Q?B9u2gXiBt6K46IjXRpzhEiGo+Uj+xAnzEYhcE2BxaatKyGaq52q+e6sw8NBP?= =?us-ascii?Q?kZ1X3/dUUVCKPAM3oDH7p2IHFEgJ1DKrfq+hhJLOK4yTj0d8AJ5jH3dy3HIo?= =?us-ascii?Q?bi3a8biESzNkXIINvJ3HH1JWEfXGspiUhT+01gvRanBYIQaxYL+TxghN0656?= =?us-ascii?Q?0Mt/rE14wCI4LeybNnKuyyb3tV8NDc+bGb2dZRYNhkhRGhRiv6e1VGG4raQ2?= =?us-ascii?Q?lWFuF5MrMIXnKzIyLLoA5/EeHk5C01LLstZJGO4yTsJYtVYwx/j5xUxxHD/J?= =?us-ascii?Q?OeqtLm/Y2BJkc8EwyEeSmGDhfgV0jTuPUB9KLca72THy6kqQqXrVAjyJa/2a?= =?us-ascii?Q?1AOP/YraOvyuK0yyCzjoVG648x3ug7x5vFXOQdjyUgmmmfZujVO3wv/1Uiv8?= =?us-ascii?Q?B653eTIyOOZNDbMHSQ4ntzA1RfNtpe0DuehM4qFehFVDWfnsLsdVUF44bVa8?= =?us-ascii?Q?QEmFj9SoG9IFwrriJS+KVoCkDfOBo4cszzvYMDfKTek5soLmjfKO3vQedhXU?= =?us-ascii?Q?BhhxMLrGoB43dZmEbSz3+JYMjeiStrF6CIjnOnfI7pTzJMLoMDPTNk8xW+hg?= =?us-ascii?Q?xZSzDkqhyw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7075f34c-9e51-41e0-2760-08dee44ed84c X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jul 2026 22:00:42.1866 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: lNDJbWxzYqQMGLn7qW6Ct8DOWzv++lBiLrPt4x3iDfSJUc3dOm5xnztijFSmx9CIKPn0OyiIvj3kYZdpk0DI1w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB6969 Message-ID-Hash: DMS2YNTASEP4WU4OG7EJJXAYULNPHZTE X-Message-ID-Hash: DMS2YNTASEP4WU4OG7EJJXAYULNPHZTE X-MailFrom: nathanc@nvidia.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Matt Ochs , Nicolin Chen , Shameer Kolothum , Nathan Chen X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nathan Chen via Devel Reply-To: Nathan Chen X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1784326058371158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Provide sample XML and CLI args for the HW-accel smmuv3 XML schema for virt machine types. Signed-off-by: Nathan Chen --- ...uv3-pci-bus-accel-auto.aarch64-latest.args | 38 +++++++++++ ...muv3-pci-bus-accel-auto.aarch64-latest.xml | 63 +++++++++++++++++++ .../iommu-smmuv3-pci-bus-accel-auto.xml | 53 ++++++++++++++++ ...u-smmuv3-pci-bus-accel.aarch64-latest.args | 38 +++++++++++ ...mu-smmuv3-pci-bus-accel.aarch64-latest.xml | 63 +++++++++++++++++++ .../iommu-smmuv3-pci-bus-accel.xml | 53 ++++++++++++++++ tests/qemuxmlconftest.c | 2 + 7 files changed, 310 insertions(+) create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.a= arch64-latest.args create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.a= arch64-latest.xml create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.x= ml create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel.aarch6= 4-latest.args create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel.aarch6= 4-latest.xml create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel.xml diff --git a/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.aarch64-= latest.args b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.aarch64= -latest.args new file mode 100644 index 0000000000..40423e505d --- /dev/null +++ b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.aarch64-latest.= args @@ -0,0 +1,38 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/var/lib/libvirt/qemu/domain--1-guest \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.local/share \ +XDG_CACHE_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.cache \ +XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-guest/.config \ +/usr/bin/qemu-system-aarch64 \ +-name guest=3Dguest,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-guest/master-key.aes"}' \ +-machine virt,usb=3Doff,gic-version=3D2,dump-guest-core=3Doff,memory-backe= nd=3Dmach-virt.ram,acpi=3Doff \ +-accel tcg \ +-m size=3D1048576k \ +-object '{"qom-type":"memory-backend-ram","id":"mach-virt.ram","size":1073= 741824}' \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 \ +-display none \ +-no-user-config \ +-nodefaults \ +-chardev socket,id=3Dcharmonitor,fd=3D@mon-fd@,server=3Don,wait=3Doff \ +-mon chardev=3Dcharmonitor,id=3Dmonitor,mode=3Dcontrol \ +-rtc base=3Dutc \ +-no-shutdown \ +-boot strict=3Don \ +-device '{"driver":"pxb-pcie","bus_nr":252,"id":"pci.1","bus":"pcie.0","ad= dr":"0x1"}' \ +-device '{"driver":"pxb-pcie","bus_nr":248,"id":"pci.2","bus":"pcie.0","ad= dr":"0x2"}' \ +-device '{"driver":"pcie-root-port","port":0,"chassis":21,"id":"pci.3","bu= s":"pci.1","addr":"0x0"}' \ +-device '{"driver":"pcie-root-port","port":168,"chassis":22,"id":"pci.4","= bus":"pci.2","addr":"0x0"}' \ +-device '{"driver":"arm-smmuv3","primary-bus":"pci.1","id":"iommu0","accel= ":true}' \ +-device '{"driver":"arm-smmuv3","primary-bus":"pci.2","id":"iommu1","accel= ":true}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-device '{"driver":"vfio-pci","host":"0000:06:00.0","id":"hostdev0","bus":= "pci.3","addr":"0x0"}' \ +-device '{"driver":"vfio-pci","host":"0000:06:01.0","id":"hostdev1","bus":= "pci.4","addr":"0x0"}' \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.aarch64-= latest.xml b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.aarch64-= latest.xml new file mode 100644 index 0000000000..08fb17fb6f --- /dev/null +++ b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-auto.aarch64-latest.= xml @@ -0,0 +1,63 @@ + + guest + 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 + 1048576 + 1048576 + 1 + + hvm + + + + + + + destroy + restart + destroy + + /usr/bin/qemu-system-aarch64 + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +