From nobody Tue Jul 14 21:21:59 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 178287250349684.02619067786372; Tue, 30 Jun 2026 19:21:43 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 574CD41BCD; Tue, 30 Jun 2026 22:21:42 -0400 (EDT) Received: from [172.19.199.7] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id B790F41DD4; Tue, 30 Jun 2026 22:18:10 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 11D0C41AC3; Tue, 30 Jun 2026 22:17:55 -0400 (EDT) Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010060.outbound.protection.outlook.com [52.101.193.60]) (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 BEDD441BBB for ; Tue, 30 Jun 2026 22:17:52 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by CY8PR12MB7169.namprd12.prod.outlook.com (2603:10b6:930:5e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.159.19; Wed, 1 Jul 2026 02:17:45 +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 02:17:45 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.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=no autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pkCsN1iRJDfExAnvm/TzSohJ4kbYXVb5uGqcnGyjOet4bl7wptg/LnJoV1UvaWyVsSOjG6dIQhHpbndeZxef+eHlrojZaaN4AoJ6MxOdCPcaON8iiOLxfkO8L53FPZf/Urtni/7yomgKIJdfIkggNQXkZYI6GPzFU428U4fJ7P77qFPVxlUL026VdvWlM8L5W7tyEEn/7HiCrvR9nfGdvUfujT37DL7JN1ebk7dYWXEuRw+1ud4FD8vvaWJ7J56GFN4D+jiKm2dK0LFkKQvI2L9/AACXwqukQVkNbuz1kttYv9QImEuHYQgFK9Mre57rc7Ca/hMEi7g3dzvlFNb3Mg== 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=WUkpUjsbNl067Ay+OChQXssbjSxjbEfwretX1SbE9Fg=; b=eb8hM/ncvzOwG95MCZGkRLwIkxoqG9QS5FvE28pQvOvsIEHiFBEe0Vgb9eiOemukM39POJ0MTsfHSg2ucuUQ6CpZpoLSaF2FaPB5Z0iw8vGRToSyifAqFTMOxOGqu2gC220cnYKPR2pUw9OmvE+FbQu7vfoRUd3vRS0mcrgN5/gwgJMit6QZ+RLrA0m9Q1QwQ6qJisSEpBt24U3R/ryvtHhCd4mvzET9VGITlyNVT41pFJ2/6xHyZ4zVYPlTjPCqnByPPpcDwYQiC58IW7yejy+MOFulyBYcHBmps3s1AyNHB2HLIn/S8Dfdq98+ICeXewhDfe4MsBjmm7hrioUtNw== 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=WUkpUjsbNl067Ay+OChQXssbjSxjbEfwretX1SbE9Fg=; b=CA99jnhXk8tf15ZEp7sg3OKiUrhmK1uGlfkVmkNozHyctyUf69FQkEUym6k0OaM6BClPeCnAtQRKY/G5zWSDdGEZrIzMRUcdOC/7R4DgmgUcAR2wvTT9rxLBFOLTEU+qfTbq923rP1zXe+G1nn5BDRX6h84QJ1tjnE94rPEJZ9m+tw6UlU1zz4ovlA/UW7UQ0FqT0Dc+8hM8VPS0ibxd6GFEj8nhGHPO9aA2CYSqZerwU6BTI89tVifh9dEY/hmYLK+droRbVbsfRHmFIQKVpjk1Dj62IQcgU7v9JV1rkk5mokAMXxnBJPTwzC5i7y1Z1Y6QuwQ0qVIExMdqAMN/Xw== 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 v9 1/2] qemu: Add support for HW-accelerated nested SMMUv3 Date: Tue, 30 Jun 2026 19:17:31 -0700 Message-ID: <20260701021732.2278343-2-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260701021732.2278343-1-nathanc@nvidia.com> References: <20260701021732.2278343-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0190.namprd13.prod.outlook.com (2603:10b6:a03:2c3::15) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|CY8PR12MB7169:EE_ X-MS-Office365-Filtering-Correlation-Id: d5dfb8b8-405d-44e2-05cd-08ded716f021 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|376014|56012099006|6133799003|11063799006|22082099003|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: 3m5tpJsngyhh2K43Yw8fbJKXferUlIqesPvC7UiA4ctMuFr2g+WkcwGMGod91Gvji31oeDeNh3+ocfiDX+szDvf+oMOTSWGZxMQjbvAY31v0hf/4c0lo/ewlHVyapghjs81PEM5f6MJtUhyq4PKhdZbIj2wz6W4VEt41rud7lUlrzX2tho9sdjr5i8aaVt6AcgDZc7lwQ3G0YBchERIjb7OuWmhshoN6DmW0IxepxXQUOFWDIELrXoa2R+q1O4Tc4iBy0Z5XL1ApUzTtIYeZ/aSYdNZcsBJhdHQ9FZgBzDPb9uvnwV9B5BuIr3hu0+j/fOyCPdJbBUlmMNW55KUvaBDNKQ2NwohNsAbq04ivdQ0GxID6gx5Q6EwaRIduSZjEsKKrpXFLaZIPHsNN+DKoJmx8VZq4YAAbK+iO+nGO2Cmydo+6fsl88pzKd60Ll/CFlsZv1l1MTdXr0MlZK/m55svOjxRsKFA5bej5UpkLeJXzbNHHzcHebPvQ7MsqKxXiu50XmK2vowTDmYX3fnFNhYBsrpjKAi1ezuRFHvPCzGWq3ojl5IBJ3BqUaNzEpABCETHoX/42obIle8MLHUBqmY4661pfeBnuv3Y/rRj2IenYhb0YtU/d8uiVnIlQ5cMF3S3vywLUGIbUAmvsQMHp2TBErSU88ffP4g6gpypG+Lc= 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)(23010399003)(1800799024)(366016)(376014)(56012099006)(6133799003)(11063799006)(22082099003)(18002099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BgIkHqGNONMjHP/ZPF6MSxv0/itRhUt+VqDhA+GSBAggLYojBegD3zz7eXBi?= =?us-ascii?Q?7cE0cJq0d7pXyTe0/N4UphxpkuSxNEY6kP3RQcDQM5XHUR62BGYbXBitzfEY?= =?us-ascii?Q?KrmP5IFbbRiNNQwYbDt/jRWdOdwYrUIsvHUYHmGgoEEQ5eJhykJMYpYx/ZdQ?= =?us-ascii?Q?L6iT4/QV9hYqoTdicrbF+SfuD5KiAFD5xJts3v+3LPQyKs2Sa9eVPf8Xvo76?= =?us-ascii?Q?ddFO/uy5ptTcoKoSJvwKkEyjvbsAkIffzdxZXLLtbIbIy7sVyR81vG/Gc7wU?= =?us-ascii?Q?b6dIQ6c8+Mi+2ounucTD1ctWZa7YHbrGbePgIUa87eoScl8sQc9wuvJ5tAp2?= =?us-ascii?Q?QBjF10eE407T9RH0YtOOKEZc1YimLY4eCQjatJOdULbHK28V7aKyMJQ9z7BV?= =?us-ascii?Q?BWaPe9fw7jAkUomhgs0w+RjmZQ1SXwv646Qe2cO+38ALk4ngznuqV059w5Q3?= =?us-ascii?Q?9HDJPyw0Y7PcGcZL4LID8/euppYtoY3M3ByRYdGJVeIEZcwJUKAMHARqoBR3?= =?us-ascii?Q?zoHeO0+LoiIbQgCD8w/oO0t9EmxyTpq0bHBJXX6hSdsu3auwpSvY0LBIDQrt?= =?us-ascii?Q?3/K/Rfj0oE9n048pLq9VcQGN1Md2A0xoDWS4XlyiiXWAKbXbGEwtMohibws/?= =?us-ascii?Q?z9HdW8jRaIN+gH1LzKndkMtOyVZ81xaFE74kfz3CrlqA7lV+x/dhjvMgXf5I?= =?us-ascii?Q?wDqEyV4hLfmwSB+QDmlGsHNcLlgPfoTSFY9nRo1hWNwL8uD50VoX2mdvEaCs?= =?us-ascii?Q?SigkWlj29pa45XwrXKaik2hvLcGy2CDTouAm+AJD49knDy04zYZg6nqXh8Fx?= =?us-ascii?Q?hJxhboZWM6+Bis1sGWw9PnY8IOecinQ0771iG54mcnV1gkA+3UFJz+GmATd3?= =?us-ascii?Q?YaI5cV6H7zA6CsTrSBDR8jEoK9hykXm//iMhrUZQIkCsQCOombcZqAIfLKlH?= =?us-ascii?Q?sYHcR2HwtKTFOxAIvYAtmoaDO/ZdfQfa3U0GLkW/1ocUvp8eCkjWqJgPSz6N?= =?us-ascii?Q?wPdWwBMPtqKkcd94pOsiA6wJn9OpOVb3bBsNP3QHGLi0zUJZeR9L6vBGGW26?= =?us-ascii?Q?uZBDsOqUWbE+pCvqnrvN1webeYCqIUk6iqUe87SjZ0Fx+/dLHUpWqdJ+taNI?= =?us-ascii?Q?/lDyIlfIPFb+lDbCs1H2tuazl8fOppSZZMLhxxn84Y0z1jVd7zpdvakaxQrA?= =?us-ascii?Q?ZML0w0bNp2YYBfsfnlMWU1RJhsDrCjQfnNXF4mVuddiCpwgpVFsMqrLFYawm?= =?us-ascii?Q?K81fddmmWwEY598bGXpmlPMzhstJ3gWzOF6sezXIGejvJ0GipkWXvtmcWiL2?= =?us-ascii?Q?lqYRDemXcobg+adzcQfprXyE374Nod0r7q8Bn2XARppksNN1VvZ+c8duA0EP?= =?us-ascii?Q?aOqkbTfOiDasjoFafisZyX0HBbcs6dGMOOW1JHFvMWoCCh72cMpA7wspue6S?= =?us-ascii?Q?blHRRFNyIhRlRIAX0cXxDFgr3ZbWx8g5CSY0Bwrrjr6OhrzIZuEh62F+vfY0?= =?us-ascii?Q?f5FbeaotO8cw6gb5qREIlVvcBjMZveOI1jfP00Vy6Fzn9wpF9ulf0IMBia3B?= =?us-ascii?Q?rAatjFfDoLPilQKrDkhcHq+0c906fOmNwmxMfKsYe3Y+s4cVtLsAJSeRxShM?= =?us-ascii?Q?qPsllLZV6VLETlPTRqZniTD/A/0/2cUYi7Yixw7t7qScLeeV/VfvXvVeLUQ+?= =?us-ascii?Q?ZIcX5ekGyop6zI+uVRkS5btXjyy194E20aDPLW7W9MWn83hkePBDk1zBn3Ur?= =?us-ascii?Q?3Ss3zogmXQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5dfb8b8-405d-44e2-05cd-08ded716f021 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2026 02:17:45.2084 (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: HkKfMM6JpBue3hvAqmkjHKW2Sgb1WEQE4H3FwzWId1naw5Gmlf1T5zI314SV+7mkVTtXD5/RruhBASVl/XQD/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7169 Message-ID-Hash: MM6FMYIJAYDGIXR4P765KQDXUAS77S6C X-Message-ID-Hash: MM6FMYIJAYDGIXR4P765KQDXUAS77S6C 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: 1782872505473158500 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 | 15 ++++++ 6 files changed, 180 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..1e66da2cd3 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, + "B:accel", (iommu->accel =3D=3D VIR_TRISTATE= _SWITCH_ON), + "S:ats", iommu->ats =3D=3D VIR_TRISTATE_SWIT= CH_ON ? "on" : iommu->ats =3D=3D VIR_TRISTATE_SWITCH_OFF ? "off" : NULL, + "S:ril", iommu->ril =3D=3D VIR_TRISTATE_SWIT= CH_ON ? "on" : iommu->ril =3D=3D VIR_TRISTATE_SWITCH_OFF ? "off" : NULL, + "S:ssidsize", ssidsizeStr, + "S:oas", oasStr, NULL) < 0) return NULL; =20 --=20 2.43.0 From nobody Tue Jul 14 21:21:59 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 1782872653283402.43931336404137; Tue, 30 Jun 2026 19:24:13 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 2014D41C2A; Tue, 30 Jun 2026 22:24:12 -0400 (EDT) Received: from [172.19.199.7] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 354B141E0D; Tue, 30 Jun 2026 22:18:17 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 2C77841AC3; Tue, 30 Jun 2026 22:17:56 -0400 (EDT) Received: from CH1PR05CU001.outbound.protection.outlook.com (mail-northcentralusazon11010060.outbound.protection.outlook.com [52.101.193.60]) (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 EA0A141BC0 for ; Tue, 30 Jun 2026 22:17:52 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by CY8PR12MB7169.namprd12.prod.outlook.com (2603:10b6:930:5e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.159.19; Wed, 1 Jul 2026 02:17:47 +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 02:17:47 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.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=no autolearn_force=no version=4.0.1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HgWXJL3qjqaxFLZGdwk1cUAWUyzUy/ZNOvd9BpXS1L7+PSrZu5tvTVbtMvec5Hfm1Ko7VxmA2RpHMgZ/WZNWZ3NH8iwamXUHR5VUkixUgRlrnpXZ1fnFX0ie4S4xtpfTrBD8BO8s3EYIzQvCySXnSPhnMsdLiNtbrJN24/VlO8rIBz4eEOk2UcaK7BMI49hconDgheuEjV9gkue4t+PJEyHtZjMlcLoIkmqNi4fFg0EzWP5NAh/r9FvHOe454dZWUNAY7GOMvKSMXfGGRGgC4TF/2vqfpl6NCbLP8nzbWQ0JAm7fgVU3XPEXd5iMqheGqMEksn/SXLkEOgAO9StdvA== 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=nawiZUBpnipkNi00TFo6iTbfrhHI45PIknI6EFDFhZg=; b=lWn/tTQbxw6ZyS4X80ncLWr6D9QavT4DmwXr69Lpi/MUShLMqCCaTtXDiOTiUrPW5dQwnZSxKrE9S0CYBTy18p0h/fxfuIlh4bvetz5YDrwYHWFtT+PrG2xjtsQR8zUY6oBHwEdezGCj5ZowL89Pk5bH5URvQz9c2ynvohAPsNt/+R4nSakfEGHLx5ZwBQcNOi176kcOw5ZwzaCWvQ8RL0/MGaTy1RKXVhqXDl/Up317YH/VtMnLDSuZAsJvX/M2UxThhPFSWefa/94PrVkIHKlZQ/rrH5xnLGOb88ssT+R1ovoGcGom1OlgAegjpLwpzC3UUG+w+mkiRBaazkBzyg== 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=nawiZUBpnipkNi00TFo6iTbfrhHI45PIknI6EFDFhZg=; b=n+9nGqKKy2yxldXXGYoV8kl6F3Zof/xeFizWo9ZRslFZRY9REWNs5N2aXOH/xxeDxjXf+6PPgGFYlgDwavEXdZbq2gWZ8wvS/BFPjtazzQAvEKEzqRFW4jUSCQ0HMwL92Tacr+y73ZaTGyBSeEwJkfNIKTNX/5kOeBCiMlY4ieapzIa0QxlezZL57aVhfjI1tNKaqqR8zwftHmwjEXYtpQCDKyqTgwxtvVA8gQjs0eI5GJ395kkqcZVuEYHBmJzA4Tj3RsQvI7Pr2rO+SgREA2svC/JOJ6dlKQWgiHQuWX7TBJY5h0sSygEpQDCBXCsu7w/LD4+yPW+uh0kSQu5wWw== 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 v9 2/2] tests: qemuxmlconfdata: provide HW-accel smmuv3 sample XML and CLI args Date: Tue, 30 Jun 2026 19:17:32 -0700 Message-ID: <20260701021732.2278343-3-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260701021732.2278343-1-nathanc@nvidia.com> References: <20260701021732.2278343-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0144.namprd03.prod.outlook.com (2603:10b6:a03:33c::29) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|CY8PR12MB7169:EE_ X-MS-Office365-Filtering-Correlation-Id: 064144aa-f3fb-4409-26a7-08ded716f144 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|1800799024|366016|376014|56012099006|6133799003|11063799006|22082099003|18002099003|20052099010|3023799007; X-Microsoft-Antispam-Message-Info: eYD6FCoAD2QMrEvqsfkdMC6/ZwGSA3sLi1tPNvyrtGHscjkDKXLi20CawlPE/0TY9kOWwYEIdDuIpNCpjdKL+aAb/uSVT1W+HnnNZNWt6pmdQhbeI8h/DRpdfTiDU5AW2JMmnawsGtYtHXnVRV9QMTJ65jWNqXEXPCzG0s/LHOmxUjEFqsKbh33/OamVAmyTuIpfTZ4uAtPkL15/dQ42KwBDzJWUcN6tELh47GB1ewaouewfOXFUpddwb3zwjhRp0Gn9+Kd4xVWgH19sOZkv1Da13+iUkZyxr17n4TUME+ICrhwTbSm/oAnXtvZwrJSz/pR7/T2e8GFxg1YqrGMXX+mpRxE4E02/oSxv60OOBcaJNO4uEvOeDNMXJ6/rdDOKpSZ69QCThYmtg1xGd8/fI7iRigsJy3DuPXoVnCzz+7qP8KXDEPI2Vd2zfN/U8vNZu8pIfsnygxby9wcOUMBE8P2ujWvPoMVOa3683A7qARQO472kJvKEOqCFbOmpdV+WGVzJd3rhjXkYRUY6Ran18gOK7RxpJ6BqJ9/15O0V9xse+NrTuwhB0SLXC31aJOi3ONXKh+acSGv3SuiHrjJ/pdYvalxuCxZTxkaX4jsWFkGQndbKICk1h5NKX5vubZS1F8QFKQ7MDGQ8tmZBqwYtkgyUgbTdpYgIww11tWIPnqI= 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)(23010399003)(1800799024)(366016)(376014)(56012099006)(6133799003)(11063799006)(22082099003)(18002099003)(20052099010)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?07kLbRhIBNksqeCJD3HBRwdOMAyDyq5JC/4oogqnGvOvw/wSlOrpJUwtLuoI?= =?us-ascii?Q?e29IolRc5KMzXW2vN/ZnvsXCOWpQx0F8iPP4amxW1tuNfvc0cKR1MW4YXsrv?= =?us-ascii?Q?Xc+tduArfYVFEKgtjFnI4v2e3y1U+xvEA7ByLM96pVlPj85+qWaU9RTTcdyI?= =?us-ascii?Q?xtSrNiYZidbRJ/zJXXVQsk3dNYPgo+sUc42ZiRJXwnlWMBiVuti3yzJOdmYm?= =?us-ascii?Q?zeqw7kK8xilODpr0irhUjhbMI9hW/ttPX+HJlSFGP5dzBeIVsjH+ekRgi5QQ?= =?us-ascii?Q?+C1F+HC1gMd12aFr5eYeD+GK6OqgJNc1juv3XFPu5PqXvlPbSqOM/Y5UswmQ?= =?us-ascii?Q?LuoiHkv3K8g304ij1IHHO7jm4pRY1Oj9bwnGToO/gf8eTaKG5bZxUfkuvanq?= =?us-ascii?Q?+rkcVn7lDnvHPuySs9OOOBoSolzmvXt+s0kWoSCxOzLfMrICMpd6VO/S/FTV?= =?us-ascii?Q?kHf4Zt9tFyeu2afCSf0JnWC+IqI7mfSAD0KvU/uI3ZZiXsx0dWbeudJeoU8W?= =?us-ascii?Q?fjEmdfJKAGLz+d8yCqP7N6fucYua6Bc1s4fv4gAN47ZZV7uOAs4CV0l1Plzr?= =?us-ascii?Q?uUrs0Xr8HefapDXINwcTnwz2Yrof4+Qh0wixAKhE9XvB1C7BpRU46ZBHG7nn?= =?us-ascii?Q?P+gTrI4cJUAdi5gmLblT00nwSoUDKQY7MxkYUByH5KsJ/GcWcaIk29VoBjpG?= =?us-ascii?Q?nWPHFLWY7C2xdL3A9oSygfk5uJuOngQCNxVTunN7AwpaBTkaKbRFth3HWSo1?= =?us-ascii?Q?3oHJxXHQq2qt+KwhpPjCgbXzX54vPIbQff6zVb8somsWzaAxKKFGHVeoZOcC?= =?us-ascii?Q?RAUeGeLIb6HpbqIx30JOEdBuT7hQdvzW7rwjOxC0bqc8cXpYFSyqgqFaFPck?= =?us-ascii?Q?OlYjqZGL3TIdqvzQZUKceQtlFWeixR16Wjmp3iHI+ADtjJcIkz2efCPbdZ49?= =?us-ascii?Q?2wpEVF/SwsnqoyYE9IFaE6dx/11B7PvGGBseRan5GLPjCol3yCVgdlI8iMSr?= =?us-ascii?Q?cdldx/So+SC11kqc9zPSlIMqMfB8ogeVb9+yRx2b4+S3U77gyTfpRDI7UWuS?= =?us-ascii?Q?8bah+qOx8s+wq2J0CGe4gr4XXVwYXp5NIotMNEA8veV/m48e1++q3otsSNqZ?= =?us-ascii?Q?aJKftTg7YYN9NOaZYBOQ01B/KqdcYa+d4znE29yXST1ub56umwWdTyAaetZx?= =?us-ascii?Q?yqMc2SAhg4IO/iH8csPEaHVA6Kbb1gIE+TXU35+CMwpJPWMFhRspaP6hidwp?= =?us-ascii?Q?Q81scuYanLOcnyv9A9PKNJY/qvFuLE7CalBw+GJqdd2iQ0vY55wqNBNkGUNm?= =?us-ascii?Q?2E8sLC2lCxy2cTH5oIrK1eT10PQxxIc7A7K+zgoc5wv+2CLJauRapwvbqAPO?= =?us-ascii?Q?svNbnSc8BFfcXIMhNbWJw6Pnp+VnIVZ9F7p0ZwOrofhqu51tmDsDEb/ahBA0?= =?us-ascii?Q?pYDdSZPd3VoW4qk2oPM1o0fPOcTc8vbrrmv0arn+1eaI75U6NwP+Gko9aYvk?= =?us-ascii?Q?+/5govBXYIICtipq0R6rEE0dsUnCB6CEiwsrYc4m9cwwnW36GAb2yyY6hi9M?= =?us-ascii?Q?wd+czCZ4T+n0H2qHPE2naincM3SYqxxsBdw2/C3SP2Vw8cBv6s/l1Z6+siyf?= =?us-ascii?Q?1hpskzYcPk2s78Q8JfvcBOaWpNqUR52MnbSeRhNp4cppHL4TMfCimE8cHkPI?= =?us-ascii?Q?nV/G4SRz7xsd0oRYZU3Iroi/MLi6fZUnXGn3X/ASQkhD39rslvMuNfh63EEE?= =?us-ascii?Q?fkQjn8TrAg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 064144aa-f3fb-4409-26a7-08ded716f144 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2026 02:17:47.1339 (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: S/pRheUQ5c98fPdeJlDMu0Ert03m4JRsCfq/wi34y0w5ZAZ/n2nYdVyOcSCRDmW3t+Uxdx4mmu/yM+qRAAs3QQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR12MB7169 Message-ID-Hash: FRTOWEE6NBRYEP3KZV7YYPYQSIAOQ2YW X-Message-ID-Hash: FRTOWEE6NBRYEP3KZV7YYPYQSIAOQ2YW 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: 1782872654348158500 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 + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +