From nobody Tue Jul 14 21:22:00 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 1782868458061670.3103230564021; Tue, 30 Jun 2026 18:14:18 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B9BDC41ADD; Tue, 30 Jun 2026 21:14:16 -0400 (EDT) Received: from [172.19.199.7] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 549C441DCE; Tue, 30 Jun 2026 21:10:35 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id F24FD41BA4; Tue, 30 Jun 2026 21:10:19 -0400 (EDT) Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c107::3]) (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 6794041A12 for ; Tue, 30 Jun 2026 21:10:18 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by DM6PR12MB4355.namprd12.prod.outlook.com (2603:10b6:5:2a3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.159.18; Wed, 1 Jul 2026 01:10:15 +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.0181.008; Wed, 1 Jul 2026 01:10:13 +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,MAILING_LIST_MULTI,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=v5Uk5d6D+T3sP+Ehr4zf/T0LRqnOtnDQDcO5p8V1cy+lR34R5E29eP/oGjDoWVqFGj+2cPC5MTvGdYSW9w6+tx81AbWt1EXhHu/s1qAryaft7hcs8KoNYRjenG3KAm7FV1GjZa9WGRHCAje9S/O1fEbNNdO4yiGAOxLnBO980L6frJ3Tn7JUVrk60j/nAWhqFsxWKYUdH46P7BliS6fGcP6y1jtgC3yJwKqjMLpx/7g5o1tVJhnkPPfzt3xN+dXP/YdJ9zITc2M+KNBCNz6413pn9Uj7YdFnX7R8f9vVsc0CQdOfCy7Nb13vpFyiNEKYW23lgHt7JHgES4WT0Fuwcw== 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=mA2TRNwfGOP/ZxiUqZgA+//Qb5mb/0yGwe7ZlZxmiBA=; b=GdyybWL4i6u8lmKnz8E/IPTHO2W4TG4tlmN2sKPsdru06h3mLj1Xs5RNncsanrd75539ucfg6/JAVQiK2Y3n87DwTwX2d7Ve/jfPtRz7RD/O5hFKOiXjCXU0Swvk1RuO2jgOmFY+2UzclbGfLRp8rJZO4TxFCEH60/nwj4NYyrtqHSaMXR/BZz7xMrQN6uTiwYH8ORdipZvm4696rwcM171FOTtTPG+ZUv/sEIKoT40oG7Mlh62SdYu2yVKif6yuC13JAwW7jZV/XncpTyTHPA2tO+//xRg7wz3blt8D80R5T4/Mp+fAb8q/3PIq5dF6UKpOMSEeNt6zIINwMXcYCg== 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=mA2TRNwfGOP/ZxiUqZgA+//Qb5mb/0yGwe7ZlZxmiBA=; b=CWG2PdkNVLtfQPYpXQycbIE4nEX39PN1oekA9/WLkixmu6eC0kSKYOut68Ajqo4Zg67/aeDkbp00gsvakdmdiaLFT4w9M5NKRFzgt+t99rSL3iw5+jcjfD8og4tB7qQtlXWj3YdlV9QFG3QC+uU9BMUV700Etph8eyKV/1nFZhk/hX6zmdNHzJ3rsWr43BjZ4ET3yOM6n0b2jZ4mHS867FgrzIf7EDsvB0z6W7gz9XPKKyRzfFKtQzgbD4xathQY94VtCArGeyJcqKoNZPx9gQwN0rgp18LB3e4kZ2+OzP7JdIOMuiSYtyhNK7TQNOgO+toRSaVq0/XPPOOBstVi9g== 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 v8 1/2] qemu: Add support for HW-accelerated nested SMMUv3 Date: Tue, 30 Jun 2026 18:09:56 -0700 Message-ID: <20260701010957.2257527-2-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260701010957.2257527-1-nathanc@nvidia.com> References: <20260701010957.2257527-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY3PR05CA0048.namprd05.prod.outlook.com (2603:10b6:a03:39b::23) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|DM6PR12MB4355:EE_ X-MS-Office365-Filtering-Correlation-Id: e2b02262-39b2-4869-b613-08ded70d8148 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|6133799003|56012099006|11063799006|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: Vjs0XxgfJ5XAoPixucQKy013rOz1mqIhz9ELr1dQ9qe1UJdG7qPOc3rltUoVLDcdsxGfgcVCa0rJFY3qTtvEnDOuPJzKC8rZq1n1VPrzkvv1kwsDuCGGwoUfx6rVGQkwfhv3ps9eZJle3k/nSOJHBgVPjqy5Gm0cmv4xcrha+OqcpTM3SUhdrVgBT79WHzho2/AkI36g2apGgctV9lMVsj6bRywfuBAsJJxppzG9up7ZU/BnZ4/25GURZk5aF0Z1yrdtfmj+1rdELdcd2xQ5CByzPXyxe8PiiYUUWOi5IEguwwVpBJNe2GEIgEcwyYBC8ifMoyMMXD9uF2lDM+ROqNGmxsTPqRuiJD52NKHLA+wRSySlSystAhm8huf5vGh7wCjxfiZ0hU4Xtkpf/FSvEkmlDJR+LoyWodjgOBAgjL47HGQ+sxqXODiw5pLTagk/5e19IJLRZBUdPJtEpsTk1vEn//ja0FBWATYAlM9pSNF7pB6w9ehk+fT2X0ApiF404tJQbTq28GK3AjS5VySQaIUEl1DtWx1LIsXaFRGlVF0wc28IctjDwR+0oufAcfqFpmvbESNv1VAP7sE07ckh4KqWhbfTLGjVRsc1WfLeCG46Hh43AOC98HsPxw4aqnrLDcP8TwpES9gKzrg7px/Njv0q7QvkNF+q5AZyIABIP2g= 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)(6133799003)(56012099006)(11063799006)(22082099003)(18002099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GDQsgOFdPdAwrtE6EAkWZ9Nf4q8TC2uv4DgZZfQ4xh8i12VKTKOSDs/iLMcR?= =?us-ascii?Q?tq1FbYS0v/v/VhzApyZU1TVuJWFnEjfW87lCurAI8QFe5zdl1ALDF3tOaHJT?= =?us-ascii?Q?R/4WiqwIQXPkFTnR49Ie5kHPUCNjUPLA4LYg2bQSDaj5YYgAquIBzk+HfC7C?= =?us-ascii?Q?PlgHs4osNx4wVbd12lx7pLngTvNUEqjljb1ioe3QvC3vToGfj+QOM0f128j0?= =?us-ascii?Q?WiLCNWgWbsqDd3tGVi9DVviRWp9RP/Dt7/eLFfdfx65h/zWnQ9AiVR11Eniv?= =?us-ascii?Q?aVj3JX0ajQizJKTLENk0kmGvgTNOnXrtUT0ffMXI7LG6jJsl6fKdvpYZM0sS?= =?us-ascii?Q?IU1y7MYnsZ90j61X7YY4CsniciosH60Olk2/ESwoLhzlslOcaUsjWcdnLEeE?= =?us-ascii?Q?QminTsFiAPfXV0WMQJ7Ayw4PtxYtKmzKyoXBTTaQDJxr18BPsRbogJXzPF4R?= =?us-ascii?Q?H1vX4Hg9n0U9YZOnPuIHyfvwVNLN4MLbNv6kLHo12XEfyaQSR0ho6jZGh6O0?= =?us-ascii?Q?f6ILD3KjzPojDN6DAEQIa4hpWDRlLXHwGlJv0WRx55CL32bUO0Yi+CgZ/eQ9?= =?us-ascii?Q?siVOkaHjvmS6CEwBiP9uBjzTvQMrtWL7gsDkQc/22P5BBq4/6d+SR15sAa0F?= =?us-ascii?Q?LJH1CeXfYV3QZ/e3HZ3f87/AjtOn6/hxOorPj2TrpkUNpv+w5YZy6nd1Z+f5?= =?us-ascii?Q?diThL7Iqpp2oetVGtAN7i/egm3cOtLSDSgpN91occqTOIGsN28SkTfDN8CiP?= =?us-ascii?Q?YQYLAc2j7vrma8VftP3vTpxbXnochOEaYZPZ67//l1ccxtAPx4rPWpoxwwX/?= =?us-ascii?Q?oCvSZJvuIryztiFR16V+EfiqIrY6uWJIOCtqvtOnqd5bYWiqjyHKgo8atmhK?= =?us-ascii?Q?vHGOKBz3paJAEmuwm3SWh6sC+C3fCm98ATptLosmA8PeRG25fy44i0U8SjwU?= =?us-ascii?Q?TRBnK5a/Jdl3U4ornDOonHvORrjDsoHrCkR6APuhb1RnT1CpSpHVNkoz8BxB?= =?us-ascii?Q?X6aZH8AmtxTBrbYIloIWjYMkvS/YIxDcDekjOhCvqp8D8u8RSAUjbb5RzZ7Z?= =?us-ascii?Q?TCitgGN4U5cJMmYxzAe5Lm5Mi2eBTORyhOm1nXSX2ZfKW2Y8WrnQ5UDq8m7m?= =?us-ascii?Q?hxywxAFpTuVocW37KT2FpYNT7WNeNwyxtTFQknidCBnUErInFY19bgfhAqAS?= =?us-ascii?Q?eHXmVHO+q5iEHCn4kmTOOI1yICglKtxrKqqmKI+BVXTwbH2t9DhQUY+d/NNU?= =?us-ascii?Q?SxtTsKMdOJgJB/l0pLC3GS2dBB07QLaVTd35I5W23KM3f3nU508326YydLkR?= =?us-ascii?Q?G5Y95ngY8M1yKFsRehOoLagtL5WkqGNeV7dqjsPD+gBGIhRIWphr9b0sLdDy?= =?us-ascii?Q?EjqR6qoDzlqsehHqJIVa16sGDlw8H2kTdEEONLaOcBj/G2xrGASKxLG7aoF3?= =?us-ascii?Q?aHCPVKXLN+E1i7E6+xzDkHMkBk6NMigTMG2HOs/d3ycgcXlgLlpZ6JbDbpab?= =?us-ascii?Q?k/dyYpItdPWPoYzGU4NXcPSIje5GUGrhCDY+pwPusjkRQed9OeA+anQPvj26?= =?us-ascii?Q?WesFxYCO3fVQzTvbHzhZLJiDGanUuyJkr9g9lScNi7cXDX85We6hGksP1gWJ?= =?us-ascii?Q?B2NHDnKFKmldFj2rBlB/6D60NAkVa2cY14vI0Ac4BUjEgtriCVe9K44zjN90?= =?us-ascii?Q?9/pATcF080v3llPpnwN69/yFGB4/1YbWfiraczQXmQkasnGns/fT3PorLnit?= =?us-ascii?Q?lzhARxydbA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2b02262-39b2-4869-b613-08ded70d8148 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2026 01:10:13.7901 (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: M8LsknBgJw+vnaW5Zv4fo8IBb7YMBd9adryJvBHF4NsYRALUSNioDHYO9OswlwWwTTZCwuHw8fwfIVFiAGL8ig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4355 Message-ID-Hash: VXPKOY3C7VQRDABTVZ4PEX4KWH7ENTMN X-Message-ID-Hash: VXPKOY3C7VQRDABTVZ4PEX4KWH7ENTMN 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: 1782868460236158501 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 | 29 +++++++++++ src/conf/domain_conf.c | 80 +++++++++++++++++++++++++++++++ src/conf/domain_conf.h | 5 ++ src/conf/domain_validate.c | 27 ++++++++++- src/conf/schemas/domaincommon.rng | 25 ++++++++++ src/qemu/qemu_command.c | 5 ++ 6 files changed, 170 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index a861f9f177..570395f586 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -9426,6 +9426,35 @@ Examples: The ``pciBus`` attribute notes the index of the controller that an IOMMU device is attached to. (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. + (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 g= uest + for smmuv3 IOMMU devices with ``accel`` set to ``on``, if the host + SMMUv3 supports ATS and the associated passthrough device supports A= TS. + (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. + (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. (QEMU/KVM and ``smmuv3`` model only) + + ``oas`` + The ``oas`` attribute sets the output address size in units of bits. + (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 17c4a57cd8..39cb6bc780 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; @@ -16849,6 +16873,12 @@ 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->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) @@ -22733,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'"), @@ -29203,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..40d47dab57 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..ea38065764 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..eb25a0110d 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6290,6 +6290,11 @@ qemuBuildPCINestedSmmuv3DevProps(const virDomainDef = *def, "s:driver", "arm-smmuv3", "s:primary-bus", bus, "s:id", iommu->info.alias, + "B:accel", (iommu->accel =3D=3D VIR_TRISTATE= _SWITCH_ON), + "T:ats", iommu->ats, + "T:ril", iommu->ril, + "k:ssidsize", iommu->ssid_size, + "k:oas", iommu->oas, NULL) < 0) return NULL; =20 --=20 2.43.0 From nobody Tue Jul 14 21:22:00 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 1782868605374772.468490801731; Tue, 30 Jun 2026 18:16:45 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 1067341ADF; Tue, 30 Jun 2026 21:16:43 -0400 (EDT) Received: from [172.19.199.7] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 58FB841DF2; Tue, 30 Jun 2026 21:10:40 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id DACCB419AC; Tue, 30 Jun 2026 21:10:20 -0400 (EDT) Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c107::3]) (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 C358641BA3 for ; Tue, 30 Jun 2026 21:10:18 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by DM6PR12MB4355.namprd12.prod.outlook.com (2603:10b6:5:2a3::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.159.18; Wed, 1 Jul 2026 01:10:15 +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.0181.008; Wed, 1 Jul 2026 01:10:15 +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,MAILING_LIST_MULTI,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=s/qPFa06f+zLn9g15vQWg+ZTzqMV1gygw51egFiZ1yff7/Uzqb/ce4eqhbURhhjv5iOq/mS1iDeyaybTPfKddxmDWvRdPJLhVyRhzY39j0YdeE60IMs0dP/LlUImCfen0gckpCmai8FuOsmBd5vM3yYcQ2Sgo3eiLZwGVD6yfQOguVbrL6pS45woWoICh/0VKA+VYxY71rELjYusmnQCN8okHvc5tBjkZzL+rGqOfZELZq71TwfvYDDDMnFNG5iyoXjQ9U7++hKyh60a6PKazD26j+xMtkrjxxVyrfE1rNLTQxr/rAlZlp4i7BXTp3ekmYVlFSkP8UPfxN1MBZZmUQ== 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=fxsh8fa6KUoMXjNJhs1X/cC4v6e27mRCzkUknCFJP+w=; b=s0M95vopEttx/Zm1Eb0/xs4zogtdH7b1+IJS8Gi+FCfxyi5Qeywy5bdANRjsQxBWo9e4FbiHb2SgMrsjEkptxzWlDJhpwsBJNVrNsw5ySq54msXvdf9Stte0cvd85DVJfqzQlyVBMakhErmuttilAw3rru6YctdTe7wt4LJnWSZt+MVPTYBaFfH1RiovyhLBjIEN+rU8fCkQgkdAnh0qiuXvW+iU+WOEw1pCXwWaBRelfbmvXTbCA5ZaHeTVD5SGpYlqSKnlBI2ivFOnQhgBvj9lKhnVLDANFjgSQb72LNZffSrDDMjX4gvQ8/0k33b0fT1iiC4+gdPsWOnBgjWFIg== 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=fxsh8fa6KUoMXjNJhs1X/cC4v6e27mRCzkUknCFJP+w=; b=ZBVx++ha1l7e1K32lBANBVnsSnJrU/m/i78Gui/1dA9f4KyNq/rYK7XU8ReApIj6lWIblIpdwe295sDQLeVWKMhsPvR8C7z1QgkDarc4GiLttW1YQjwpK3GBBmsvjeRWQG8ixxx42r1ROG/l9P7xv5blgY7R5/+lfzQncEsKtVjXCFDKbUG75mObD6G055EHpFE66je8X7OwPe1AOoZj0R/VwxZTmL20csoxjTe76Mjr+vra0NtPUlr996u7xo1VzmSmS5ICgmkjzfoIXAzLTvYkLZW80Hqy3gB2jI9jesFShwsbH1bI/A/0A6ysqZeVPAxecAlLiiV60msSzSbRRQ== 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 v8 2/2] tests: qemuxmlconfdata: provide HW-accel smmuv3 sample XML and CLI args Date: Tue, 30 Jun 2026 18:09:57 -0700 Message-ID: <20260701010957.2257527-3-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260701010957.2257527-1-nathanc@nvidia.com> References: <20260701010957.2257527-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ2P220CA0002.NAMP220.PROD.OUTLOOK.COM (2603:10b6:a03:5da::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_|DM6PR12MB4355:EE_ X-MS-Office365-Filtering-Correlation-Id: a0d36bd4-f029-4a7d-3988-08ded70d824d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|23010399003|1800799024|366016|6133799003|56012099006|11063799006|20052099010|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: +ThGPwtdQ4iQ2e5W/DpJ6OdI5XQz/0EHFp4hrRQI0xQ43d4H6XDtPv6cx3/qD+LfYK6b1m4P3IVdUSx71Td+GdIFiu9uDmcUoipmtKGVUccgQADJNY3ff+HGVBiZx0M+2XTwH1oDpUosN1E1lVvNjrnXhmjkXS0qrB2IVc3wU4XShZwIAnDfQ88Th/LNfN55dNossu9U20JDWWTtUWsiNFWwH9H27Lyp9nQrG82cvkMNlzsG63nSfkbKzfmFcNmAxT3P02Vr/2BYXFqOGSkXmUDxDH29UEO+3F8BS6+XnOFCA2tRQmGN7cw/V0EQK28FV1Cc1yn5IALYX8ggkfLF4nX/gIIr0scYPwnoSVrN1BPSwf8Qjaei1/AE1VI8TZNORZX+83GfzGSkY9h4Xa/rXvwy/Er1r7zKtOro3F0piA0frJN74lsfee+VlSgmPWhh709KdfKJhV60JovfVHPjsyK4xG3RyakEA5j5BZdjRUnAqCft8/45yTk11Fa0TcDcDCY17njwihEorEcAGa8hWwWSVC5hRXoQIvOPLqIJ8HeFYMRbfK3grgylMSo1GUAFuoLsyYutnvdaviQ9kg9v5fKSDmTuFwkbtUA8yBvBkRqdemLw4flQOZfgIdybLNtbPLEoYdfzVBsNyHYK9bFdB5nfYMANrY/NxlY3y1AoAiU= 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)(6133799003)(56012099006)(11063799006)(20052099010)(22082099003)(18002099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LrrFvMvoIJOjXM7urTCTA8Ctf1UxcKf1evTa96WU1ga043te7MB7HEAAyn7h?= =?us-ascii?Q?CbqJbpPAHfWpzwpv3H9fd69MvlPdTxA0zAhqtz3IKGabggSVjmvdzgfc6DuK?= =?us-ascii?Q?npTMEzFg0mdmG48sC2wjad20bCQ2tBhS4O4pd0dZZp/tJWYP/wTtB5EsxI73?= =?us-ascii?Q?gi1A7xxcw6yCXVbMyjVZb1qZVsJfPzT75+zWNPk9IixwUv2btqxZLo85Z3yj?= =?us-ascii?Q?y47d8BKTyHZh+KH/WDve9+BOwXOiDq7PShltLE/CWgmYgRVWyu5b3Z1vKDBU?= =?us-ascii?Q?K7DxaEFBRkX1xhYs7YS6lyHhzn4ZXoQUgn6rV5L7j18u+OM1Ne6yZIBLWFf6?= =?us-ascii?Q?tqDbnCKRPny+FX/jR/tQGP1PjFm3y1jqYgGdb1C7nmH9DAJbOU7/i6JGOgZ1?= =?us-ascii?Q?XOVVLAorODWguhqZJGhVBmoJRkBHrvq4KkORxQt31GirliY4R7cKoVru9pKI?= =?us-ascii?Q?App2ux6rui4kGn7IqEyblmsD6MITrJwK0edsO1XT9MgwsbJezfor0vAzXpoy?= =?us-ascii?Q?0djVeRqPXan/6e8qhxdEOWOE9nONFavfD7hEErWm7ca6wcOVpgV0dHP2mtK1?= =?us-ascii?Q?PJnG8NeZyAEvaOgsiTbhWCVfB0dz5Y1eAC7Uz9nPSd8Ixt5Dj1OHl/NBegD/?= =?us-ascii?Q?JyGhq8D02HtHRmaMAL3jKXb8LwRgFpXowK1ie7eNJeOHOmnmCvd9hhLDasV0?= =?us-ascii?Q?TEPlnjy2p6Cgd9C5i1jk6fHwnHbSxy1BJoNc/7pH1J1cngxVn10Nhy2ASg8J?= =?us-ascii?Q?Tfswe01FHSHjvLimGRMQytXS88WrcsjA58Ii+URtSsNTc3/wmYxP8AJZR3eZ?= =?us-ascii?Q?GtzjAIBKXqV8NB6ZZWZ1b4kxjGRSErzsIs6vcp/Sdt8XXDk3EdlwF5hctL87?= =?us-ascii?Q?yPdmmp5Jg0N+LLq+YwhlJT7sdq1uhuNtUg1kkrV2TixUYc2GhOGt3ZGAQha1?= =?us-ascii?Q?cm+n3kLT4z7uhu/cCV04T/++etIANg6fB4jnPop//TS7hEJZ5jGpYu41qud7?= =?us-ascii?Q?IOy/047HmXzx7ureKV/tCai/xjSXnKTQHzkUQKrQkdExp5Wk6awNmZXqNAFg?= =?us-ascii?Q?WPzMzzuTb6yUZsvFAWh9NwSWSK/7HoOdgh5rjTTyi4PqEaFgiSeekItmHSf+?= =?us-ascii?Q?eyX7+U79c9TbrWzTgSL7EGlkC3hWQFhDuU/dHEEguMzlfjYt6lxkiw5gctQY?= =?us-ascii?Q?9NuZ+/udx0JghxLHLQEgxrz6ajOi3MbJsH5QnYTcvftnzCvDtEyFkBpOW4vI?= =?us-ascii?Q?sZrUYwGKNUoC2ezYUuU3D8hdePbFEXlcKuEh0Ha26y6j/eH6Hjkr9E8byiJh?= =?us-ascii?Q?Zs7lvJmKNehu0cUcj108c5kbDO/Zh8PQbTkxm50K83ExlQ7Q2g4BFuc1QmIO?= =?us-ascii?Q?NJ2h5Y8914P1OXWQ96eFpB9dd63RzFQRPzG8wcGwrD+PlIo4AOlHdk5OxZTv?= =?us-ascii?Q?/6GcxiE4cl7U6yHCeCVZnDNIYlZzIujfREIYW4MM6w/fqhcxZihexD9eFqqt?= =?us-ascii?Q?Xyu5iLoUTdfZENg+Bx759ctg88ca2670veHsTUyu6sMgPlBxHiZHczf9NumP?= =?us-ascii?Q?n7IoFE6MHP2M9VIY4yeyXwVyCn/2GzGLsFVmEJrK4EwqoVIKAGQ5lXMOXh07?= =?us-ascii?Q?7WtQ1gDr2Ri4WSDEs4UgFhphiih7FXzIjnW/FGs1gSXHaFpJhfotTTR0qtMX?= =?us-ascii?Q?440VFA6xRRKAV8vIkO1QJaE8vsuNyrOsdxukyaQHkekz6clbe3yBFbGHuJsy?= =?us-ascii?Q?pFYSRA8VmA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a0d36bd4-f029-4a7d-3988-08ded70d824d X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2026 01:10:15.6354 (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: z2m1ROHJ8SmZ6yf40+ZbFXf7jVoqUi5a4H6VqGQdYLG+sI8olHRKlI1mw0WMUIL4KxDw2xeq3lu5IMTCZWFuiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4355 Message-ID-Hash: GAMVIQFBABIWJFPZ7G3N7ROFA3AQASYX X-Message-ID-Hash: GAMVIQFBABIWJFPZ7G3N7ROFA3AQASYX 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: 1782868606933158500 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 + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +