From nobody Tue Mar 3 03:04:40 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; 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 8.43.85.245 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 [8.43.85.245]) by mx.zohomail.com with SMTPS id 1771370562533645.8786364928887; Tue, 17 Feb 2026 15:22:42 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 7EC0641893; Tue, 17 Feb 2026 18:22:41 -0500 (EST) Received: from [172.19.199.9] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id F2B064196C; Tue, 17 Feb 2026 18:20:37 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id D8D4E3F3DD; Tue, 17 Feb 2026 18:20:28 -0500 (EST) Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011060.outbound.protection.outlook.com [40.107.208.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 1FA0E3F37E for ; Tue, 17 Feb 2026 18:20:27 -0500 (EST) Received: from DS2PR12MB9567.namprd12.prod.outlook.com (2603:10b6:8:27c::8) by DS7PR12MB5839.namprd12.prod.outlook.com (2603:10b6:8:7a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb 2026 23:20:22 +0000 Received: from DS2PR12MB9567.namprd12.prod.outlook.com ([fe80::636:1b52:24ca:d7e5]) by DS2PR12MB9567.namprd12.prod.outlook.com ([fe80::636:1b52:24ca:d7e5%3]) with mapi id 15.20.9611.013; Tue, 17 Feb 2026 23:20:22 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_INVALID,DKIM_SIGNED,HELO_MISC_IP,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_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=tnyBmgsSoiTJ20aeZCZDOsatHFsJ3c7Nz4265IH9MZLvoHTrBP+SwLse9LifQD+P1k0cFCBhXi5OCCOU2qG7u3sxEsEtAdsq/iCLvcJcsBkV3ozBloiYSLI4VJHhV39LOuxlMHkfwK4AuN28tp77Qgn/OF+5xYeyZKZbx2aMjXn2hVvIUmnscwJkyrc3uTM7zAv5n9Jm7qiny+jAMLqHGw6PmBixg6WBSzkw55l8NlUxaikX/tzbbaRKkYnwG45b18krl03+t+yP/wrb1DWVfXrKrmwdgQJ3rjX1ub2TCYj1hNsNgPeUBsP7EbyDAe1DRag/PO/mA5/SGGFGW+K7kg== 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=5VsBemKsxbR+veoiNSsz5x30kBykWZcSjf23DVgmp9Q=; b=bmjhB6AMUnJmxV/WVun8ZiFiCT10JfIupw8O6Kb57eITeZVnVEqkTSqlpsTbu4CSprEBZkps6UmCZS2SSUfJlUpZdawBagnqBT6ZOY5Q9jNq8lqzyEk1ENZKdVlpJzDzlVQCKB6XsprZ0eJIOont6ET2n1gbZY5HxH+zI23mVYsrAfmeR7+tdUVzKHZMlu7SNoca5WNMbZhdSoir+Us+N4yxq5JjEwtnlk6g549NZF8mGTFLXn583PWwA7LSt4BZ5zb2U3JxBE0hBl1/DD5PiGb4DLEmv3gWbPyj95cW7czoBufxr9vCcjTknn2a1b52B+hapCQnCdoTL2QTNemFog== 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=5VsBemKsxbR+veoiNSsz5x30kBykWZcSjf23DVgmp9Q=; b=pBihn/g1KKLeGHNtUB7DNCnM/ukCLBOAU+h0vcgq6zlD1h9YdBoibDxl+9/IexOeK4ox7aAKwUpswIOJziUc+Fnu3KtM5TgyFEkQtNPrUx5JXGehzlp6axVSo/zxJimUVo/6N1bSKBjdc/ZKHza6+zj0Bb/RrOWwY0AOUwbXNyXElByZ8MWz1/htMkKPA/6rvjes2bx8AfGDmfppgM572lxiwptxIBTm6I127D2f7ytUtd8VMBy1JDVyga//IW6qtoMpWVYZqO9RO3+pPEosnrMiCGF1hfKIbD7lJxbbDAhEpNFYIe8/xcgshFJpE1kFRd1oLMUjGfPvDCkZ9Nq8Nw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [RFC PATCH 1/3] qemu: Support NVIDIA Tegra241 CMDQV for SMMUv3 Date: Tue, 17 Feb 2026 15:20:18 -0800 Message-ID: <20260217232020.2565582-2-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217232020.2565582-1-nathanc@nvidia.com> References: <20260217232020.2565582-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0151.namprd05.prod.outlook.com (2603:10b6:a03:339::6) To DS2PR12MB9567.namprd12.prod.outlook.com (2603:10b6:8:27c::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PR12MB9567:EE_|DS7PR12MB5839:EE_ X-MS-Office365-Filtering-Correlation-Id: 957ea0f0-d0f3-40ac-787e-08de6e7b1faa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?+hIbB7Fl27kkF+QcrtZfGXHX08aEfi82ODVH1VmYPn0n6HG80iF53VHQggWY?= =?us-ascii?Q?XgxRCoJfUCHFuTfeIwYMTJGtsryrHHuwHlys0geLkR5mww4n4ArheXCTEzPd?= =?us-ascii?Q?3IWKpfwZwIlrzNosL3ny1tiMnxVbJ+8pOPn16u8Qrfv68O4yZbCCLXWmTasR?= =?us-ascii?Q?3OR6H2PeK0PCWoX17vEMgjZzbalfVK24HyrMgi2wMuRnCEVvthJLEAnLyrLg?= =?us-ascii?Q?HxsOuqqrbN/RYGCiJdoaKlL3CDTHa5s5unV65GDPz9HLuwm/H/NeN9/hzrrD?= =?us-ascii?Q?WqelcZnuc8ku8j/dedxLcBa/hi2uSnippbVg9cITVKauG2WNweBU0PqJfzdv?= =?us-ascii?Q?62e9SPXPMBqcuwAHj54dkV9zjc6hqglLECY79+yV4wt5yegBSOkBOoBOyLGe?= =?us-ascii?Q?QuSafVevMxdoZhs7wrCnAkmR0pzJJTxTSml+VmxFBzqZasOQnxwfuuglM89W?= =?us-ascii?Q?AfEXkO39VLIcuspd/pHfBwti+c4las3wmsfr7naZYlFc6mKAWxxJvJoEFt25?= =?us-ascii?Q?TivplG5OCnyoo3brvxQ+VI6Ze+ECJWDXtR/4px0OT90a0MPjrVPqAMm1gvP6?= =?us-ascii?Q?fHMMHarfRhAwAMFfm7O8PYphwkrR596NsfoiIwI7pYxUslGwklk4xDwLHNIX?= =?us-ascii?Q?X+/wyoZF1sKZOh1RKnJuTPy8Ah51+uA+ybthRng1y5XVZDmV2lquJ9J4j07T?= =?us-ascii?Q?QhzkxCsVcjpcszwmjrx0T7PPm1GgGkoG9DrMllyzfErLVmn4WdRafBd7ViWO?= =?us-ascii?Q?xxBrb4x93drewREihfunl6dJ3XQQT39po7Q3+Dwbrp1aZNBdc4P/xR4LXCRv?= =?us-ascii?Q?BgfdH3IZvA8jdVukn/fCKv7SmS38Zqud8XnV1cvp/1FlUbP/1WBBGBJH6r39?= =?us-ascii?Q?jJNjXaYo5gLmel50gRR65cdmZjzQFcg3r7Z8abOYXukIVV36ek71LoWIlmiQ?= =?us-ascii?Q?hFFcfVqqPX4NfN2dFgwfPGEC62isltjFAA0ZQ2Ie6Cy/tqLsy2nJ/vDGJKvf?= =?us-ascii?Q?foBXaMYx6s3tWu9/u63Vx7+oPwtfSGWhxdy/wBPMzwN46AZHRXCGz5bOWDFz?= =?us-ascii?Q?Gc0ZIUVaJrTW231JzEaEOax+tCZopBhi9GO5YhZtMMMcRxeTwokSpJSyVeZI?= =?us-ascii?Q?McMw+rNrsbDluc/5/kdx4zNwopwO2tStX4ktydOmPbmfctEB16RwIQdkuu9X?= =?us-ascii?Q?jT44znKYtrD7zUAbNt4V/x5IOOC0YXacU4QA6WMBEi1d+ujzkhhJ3BFxCLdt?= =?us-ascii?Q?jjLC+WRn/fchWNf2Hkp6FWqalwiGq1WHJq2oU80W2g9dU/xlUtQaabWDEIbq?= =?us-ascii?Q?kmQbJyfLKq+Xx7nCs2p3zb1JMDGLeNPL9MJE6XsUd+wcUUDOwfNHY5jZEkPA?= =?us-ascii?Q?wEX1yMtl0o84oiUekRT22N/qpKkz6o6pb8kKVH6jgSbs2ak0rD0qN3P+2D5G?= =?us-ascii?Q?j8nCsW6ouWj2h7/vV/dUk0wsZsfIcVUjQMlcGvEnz0HUcq7M8qodxQdenMRh?= =?us-ascii?Q?fD8TghffJjBXaxdEeIlaBAuPFuOPT8itjTNaggm1p9UStWWzBG24KOnS25mB?= =?us-ascii?Q?EN80OJDwzjzmppQNa0w=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS2PR12MB9567.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4Ex+5StHoMQHu0Uwycj8TVukS7GYfi1GghTnAfHdeIvhFUtmdgN4qk+iGk2B?= =?us-ascii?Q?J/pGM9U6eMgs+hiIVRtrLNqseytVvyUe1eZSSS9WXB1hj9S6jgfveEHU4FCY?= =?us-ascii?Q?+ZtjXde7/Dp1Az4mOvia25Km2jeMyj4ir9ijpiSZj/+w8zn3BxYzzGiF4Fmp?= =?us-ascii?Q?0nAfRZ3hvpp5xE5xLTYEmrlh7idbFZe7TD5HVqdCEkrtu5GWR7Nyu6xb2AKI?= =?us-ascii?Q?qyujyG+tGvgLEjhlulnvY9SP/l5oi8/tCrNQOEQ7ORAP4j3YoVd+87QWjkcq?= =?us-ascii?Q?IwNfVCRXr5XY6PkeEz43X6hGt4WRmwCLURLIDYbdHui1/bPB/B0hNrJEN571?= =?us-ascii?Q?kAza92NnaXoq/D5owTCzpslJIF0lmey9xo5geK2larwm5tFpLTXVaIk8M0WQ?= =?us-ascii?Q?gml6MoZIHCYITsFPPS0PHoh+znEixWimvJBJbBBgz+TnXMWETIzMDdVdnMvZ?= =?us-ascii?Q?JNwnym0nmP0zM3cqQqItkAzFHcawkBLxj7s8eZHEuNPA9274X01++O66csze?= =?us-ascii?Q?D5cMGgq54byJHn3c+6FIluwJM8hgH+tldYMEumI8eWy+qc3QkI9XKgrxYyzR?= =?us-ascii?Q?7tID9G21G0cWVWL0Oyvz+KfiIPiLnHs+NzKyfbpzyeOkzdaa6vReSq2vSjdc?= =?us-ascii?Q?P+NsgzxS+ZqXcc54c+euo2PbB7i7lPi34etCfVxWAA1VqFemPeDGC1ZASGe7?= =?us-ascii?Q?M7AXO6HDdpqKSi5l1BIDuxEsZ2K3pEDS4mRTh5P5rYxUBC2ohXm4r2fFVctV?= =?us-ascii?Q?32UV70bE2zbZUzcOroRaqVcidPiyoBA7DByRIro1ENuPc6rVzzj6JVhuPvAy?= =?us-ascii?Q?kM0qrC1daRo/zDmr/JawT/pZIAptaHctP+8ROVux2J4YHIyQNS9BYkQX/VsF?= =?us-ascii?Q?pvL8NwAZkaoVO0+mzHI2Ry2XCXebdaBL5VTu2QUeVPL3gEW7LnZ+eMixE+4O?= =?us-ascii?Q?id4rA5zc3mwD76RsO2KYh41nZXAnUReCFCnU38h4EILlKwdKSFLBVs90L7ae?= =?us-ascii?Q?ZzCoDc5UqdKecp0LpkgC7FKBM3npVfugqnVcix+rOZi+ny3Dcb2ISFYm+/vN?= =?us-ascii?Q?qOjsn7G7N4nOx2AdiBW9qU1/9QQIgKAxxlD0ytwvKXfYqxodfP6KXFhxLrh+?= =?us-ascii?Q?bsd9wziFFwDkuxThhwV6Y9VtaulBocZVX4QzyCn20A9oCx3Lci1N6Es1ssoR?= =?us-ascii?Q?cq+WWiZnydLP+8MH8tBJElIgus+RCr+U2ir917vqXeuANhZdC79Hbu21yu2L?= =?us-ascii?Q?ZZrZsdk4fnlilKFzyUmamSBTNbKG/Sj+Tbg7irJa78Wb3hCPZRaL6F//6mQ8?= =?us-ascii?Q?EtXgdmB7uj7UCamNVLE/uLIAQPNiYsWKnILKo1W7H63/K+UQEaof/EE9h5/A?= =?us-ascii?Q?9DcukBwvMvEzWQz3paf5wOWmeml7LWqxMPubZb9q1jLbd6B537gnyNZs79P6?= =?us-ascii?Q?GzR5NrGYTWX+e7cRJEe5eruQSkfl1sO1g1Y6vCUqk/A+WCX4R2jCvne++0mB?= =?us-ascii?Q?he4kv3Tt+JOhUd9T0VW3qBYQrt9QwlRFnmVd/TcZ+oN40Gs4pGqlrUWwIWjM?= =?us-ascii?Q?cw33ZcD+w+hEwREA3Rqn6txxRUBsRruC1txQaAiR9WKylhGZjRnkfcISMVoG?= =?us-ascii?Q?3JbBiW/BzfbDyjBPidRLoX9Jrb+Fg8FKbsjgG2LW43en/pIcQp8ei1at3PEy?= =?us-ascii?Q?9fclkuysSb6pIjfJyA53Y+S068wxbZucti+H2MUbjpXMGhYKgo3vkqaFwWtv?= =?us-ascii?Q?q0u0fOuNlA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 957ea0f0-d0f3-40ac-787e-08de6e7b1faa X-MS-Exchange-CrossTenant-AuthSource: DS2PR12MB9567.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 23:20:22.5348 (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: FlxgUgIqTlkcFySPegn5EIBCV2oncQ6A3jB4hBgeYZEOW4nT+w5pMPKMrIpLPjSJbbglNIzPh7lrdLvt84ho4w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5839 Message-ID-Hash: EV5EP4LDWS7SOGBQSSP4Z5NYM5LWGNWA X-Message-ID-Hash: EV5EP4LDWS7SOGBQSSP4Z5NYM5LWGNWA 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: skolothumtho@nvidia.com, nicolinc@nvidia.com, nathanc@nvidia.com, mochs@nvidia.com 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: 1771370564015158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Introduce support for a "cmdqv" IOMMU attribute which enables NVIDIA Tegra241 CMDQV, an extension for ARM SMMUv3. This supports passthrough of physical SMMU-CMDQ linked command queue from host space to a VM. Signed-off-by: Nathan Chen --- docs/formatdomain.rst | 6 ++++++ src/conf/domain_conf.c | 15 +++++++++++++++ src/conf/domain_conf.h | 1 + src/conf/domain_validate.c | 5 ++++- src/conf/schemas/domaincommon.rng | 5 +++++ src/qemu/qemu_command.c | 1 + 6 files changed, 32 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 82788c15a2..74431838ff 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -9341,6 +9341,12 @@ Examples: The ``pciBus`` attribute notes the index of the controller that an IOMMU device is attached to. (QEMU/KVM and ``smmuv3`` model only) =20 + ``cmdqv`` + The ``cmdqv`` attribute with possible values ``on`` and ``off`` can = be used + to enable NVIDIA Tegra241 CMDQV, an extension for ARM SMMUv3 that su= pports + passthrough of physical SMMU-CMDQ linked command queue from host spa= ce to VM. + :since:`Since 12.1.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 453e301041..6385420c10 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14680,6 +14680,10 @@ virDomainIOMMUDefParseXML(virDomainXMLOption *xmlo= pt, &iommu->pci_bus, -1) < 0) return NULL; =20 + if (virXMLPropTristateSwitch(driver, "cmdqv", VIR_XML_PROP_NONE, + &iommu->cmdqv) < 0) + return NULL; + if ((granule =3D virXPathNode("./driver/granule", ctxt))) { g_autofree char *mode =3D virXMLPropString(granule, "mode"); unsigned long long size; @@ -16781,6 +16785,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->cmdqv !=3D b->cmdqv || a->granule !=3D b->granule) return false; =20 @@ -22537,6 +22542,12 @@ virDomainIOMMUDefCheckABIStability(virDomainIOMMUD= ef *src, dst->pci_bus, src->pci_bus); return false; } + if (src->cmdqv !=3D dst->cmdqv) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device cmdqv value '%1$d' do= es not match source '%2$d'"), + dst->cmdqv, src->cmdqv); + 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'"), @@ -28941,6 +28952,10 @@ virDomainIOMMUDefFormat(virBuffer *buf, virBufferAsprintf(&driverAttrBuf, " pciBus=3D'%d'", iommu->pci_bus); } + if (iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&driverAttrBuf, " cmdqv=3D'%s'", + virTristateSwitchTypeToString(iommu->cmdqv)); + } 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 a13f6d79e9..41dba29a4f 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3075,6 +3075,7 @@ struct _virDomainIOMMUDef { virTristateSwitch xtsup; virTristateSwitch pt; int granule; /* -1 means 'host', 0 unset, page size in KiB otherwise */ + virTristateSwitch cmdqv; }; =20 typedef enum { diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 1ad614935f..cac5dabf06 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -3208,7 +3208,8 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) 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->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' doesn't support some addi= tional attributes"), virDomainIOMMUModelTypeToString(iommu->model)); @@ -3231,6 +3232,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->aw_bits !=3D 0 || iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->granule !=3D 0) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' doesn't support some addi= tional attributes"), @@ -3243,6 +3245,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) if (iommu->pt !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->xtsup !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || 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 dafbdc63e7..2677207ae4 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6352,6 +6352,11 @@ + + + + + diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a742998e4c..3735387ebd 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6330,6 +6330,7 @@ qemuBuildPCINestedSmmuv3DevProps(const virDomainDef *= def, "s:driver", "arm-smmuv3", "s:primary-bus", bus, "s:id", iommu->info.alias, + "B:tegra241-cmdqv", (iommu->cmdqv =3D=3D VIR= _TRISTATE_SWITCH_ON), NULL) < 0) return NULL; =20 --=20 2.43.0 From nobody Tue Mar 3 03:04:40 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; 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 8.43.85.245 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 [8.43.85.245]) by mx.zohomail.com with SMTPS id 1771370621833993.5682016286951; Tue, 17 Feb 2026 15:23:41 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id E8A77418D3; Tue, 17 Feb 2026 18:23:40 -0500 (EST) Received: from [172.19.199.9] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 9F2B8419C2; Tue, 17 Feb 2026 18:20:39 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id 791333F377; Tue, 17 Feb 2026 18:20:29 -0500 (EST) Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011024.outbound.protection.outlook.com [40.107.208.24]) (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 A30293F375 for ; Tue, 17 Feb 2026 18:20:28 -0500 (EST) Received: from DS2PR12MB9567.namprd12.prod.outlook.com (2603:10b6:8:27c::8) by DS7PR12MB5839.namprd12.prod.outlook.com (2603:10b6:8:7a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb 2026 23:20:24 +0000 Received: from DS2PR12MB9567.namprd12.prod.outlook.com ([fe80::636:1b52:24ca:d7e5]) by DS2PR12MB9567.namprd12.prod.outlook.com ([fe80::636:1b52:24ca:d7e5%3]) with mapi id 15.20.9611.013; Tue, 17 Feb 2026 23:20:23 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_INVALID,DKIM_SIGNED,HELO_MISC_IP,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_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=Rkx1j1kuy2IGsjXudyghS9uwC5+nZo4Js7MzE3BexPOgr+0KtCEgvATnFO3NPjfkhjlWyvAAieWUQXaYiCYKbzE6yo/6joCkla75WugH3URh0wJFIUhjSz9lwBkGrvV6HF8XgoR420TOTPeAbThxcB2LYB68dnfiA5/nop+hooIeANttKMFRmhrNWtJnNcCkiFfLmYmAOV1EIBqQ7P0U4QKlQbFC2ETIgv1wxEcDJP5ZYkd3P/9Z4WFyBIisKiMB15RqSYlIJToOFxsW/McHVLb/2VNlsWpWN9QJpmQ5mK/raqHaoDF09oCdx47q7Wm7KR5/XBCTJ0SBnbHpXjcTjg== 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=HZQuwdA3bMwClhtKMuKZUnNnCn+CLDj7p+Aup+wCw08=; b=J6vviylMryJyw2KpLZI8L/hurM3Rktu2VcDEwgs38tMfXHypWwrWVhChBZIr5XAUn+kgTIT8bIxVX94OR4oGOmmAbPQ7HWBNnol+mnZX70AnXxyz7Grce3eD9N+C402qWs/3mbq9af7/bvmUkOLdK6DvqvWUvAnxl6zHi/W5KNN0Z+vqZ7OS6OmgXSXHI2CX10VBj8045AzLlF5DgCTyG51z14n2uTAm78iTfMi2GCGLd2wV0qT2ZN9A4Py/zUJRblF0snOiwYZwyspuGMqFOqihgIPkjhnB58zvsn6fQMAL/vNKL/9c7DsObFkzuHMSBQVejVtniFcMyrsdpHwKMA== 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=HZQuwdA3bMwClhtKMuKZUnNnCn+CLDj7p+Aup+wCw08=; b=mul7N+Wjr9gh7Vln1jle6QK8L6TI79j27G0kn2gVYr1bDTvbUE6wp4+F0adIN3gxZrYui5vCOKFMzE8FYJLbluuQaF8/Fq1GmAG3gqC1dNtuG6Y1oeYV+r34KCWjw9sIZfJ/IpVKek/GXlSvuCJnzDkahl63f5PEoyTFNmC/xZ8p485lqvgFURYM04jl/Wao6PuBH2Y62vCiWfSXdyBQ5zltHc42sra1I9mIZ+pQdpXVYuNjTNzBGU3fmvBNjRpk+uD8ML0reu/Y1xbElGQoHXDJK6Cl4yP29ctk5NFo2ziC0LK8gYIYBkRs2Z0RCdr44g68gmGTY44PPAo4c0VOOA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [RFC PATCH 2/3] qemu: Support enumeration-independent SMMUv3 identifier Date: Tue, 17 Feb 2026 15:20:19 -0800 Message-ID: <20260217232020.2565582-3-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217232020.2565582-1-nathanc@nvidia.com> References: <20260217232020.2565582-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR03CA0238.namprd03.prod.outlook.com (2603:10b6:a03:39f::33) To DS2PR12MB9567.namprd12.prod.outlook.com (2603:10b6:8:27c::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PR12MB9567:EE_|DS7PR12MB5839:EE_ X-MS-Office365-Filtering-Correlation-Id: b2fd9891-b0ab-4568-2f65-08de6e7b207c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Ik8gwL2HMnWm5vd4Ag6jp6eVJx6Wz8tWrN85sdoMXMJVylVPOi/AhL3T5AqX?= =?us-ascii?Q?tvx9dr+kYMi18xMUXBmaE1gSxTngYjKwACrHQVhual68UpTSj6H630oqoko7?= =?us-ascii?Q?Ctyov473NYWw+dNkGt8MIlL7yBvOYiDKC5ffu81YpnBLhhnMmPn+Ct4o+cD6?= =?us-ascii?Q?xGsfBHSzUCkQWddY6yBd8unHojrVXc02tF7dFKAkDAwV1BMSOY5t88g72/Xi?= =?us-ascii?Q?n5SzObs1URnoQ8pVfTlY0YvJb6vUSaRyIA6U2GFMAjmHkNNTR2yZ7bjn9xOf?= =?us-ascii?Q?YRXZBEF+Rgq+TTQxstdr37XBerh9pwNMc4RlJT99NZohVe9QvrF4sQmMtmN5?= =?us-ascii?Q?74Ev3lbvnA4bznWrndKl7kpnwGsV9NsanjmONfBFyvqnhViE63+PNruq3V2D?= =?us-ascii?Q?KYHGbP7IAbeSSk+9MJVKJYXNKSpe7bN/JaxbCmbF3LzWVM6RTj2r9tCRLuz/?= =?us-ascii?Q?AvHo9KfJctvWLl3lVvGKlPp6Jzx9Cj70id4VWNe61nutRPELFiIqgcBymyST?= =?us-ascii?Q?x78dUP1Mv9HVIjxksmCscHJTuawjGTARUq6rx8Xauya0hNLZMYtG2RV2Ypx+?= =?us-ascii?Q?TzTlaCg7MRmatYA2lBOBqnPgiUjkllCURLUoVHRiVd9tsZpq1GcDo4jR8hqp?= =?us-ascii?Q?K2iNCaEQ8xeHomCfUnRtbNpS5zZuttcZq2VcCmMYOit4yeB39fqU6uXNLUAy?= =?us-ascii?Q?FRsqhSwgMcr5TCT+oyQ7j3cHm2vYdbEeDICKXHadjpI5ePLP4TWZUlupu01h?= =?us-ascii?Q?SY3rCAWniTQHltc8I5VgaGnSqTAJrsSTmKrSmRNkS/ylnH34I1AizTeBIMGX?= =?us-ascii?Q?ld4LsZ0jKmbISmg1ypS85YlHbz3HbSrbnJtZMcajfQcMxVl4dJYNNMbGvRSu?= =?us-ascii?Q?xghfyERFGc05U379FfmbTtHZkcUWhdqDkJuJUmv3JvYRjStwcYw6bdwpFs3q?= =?us-ascii?Q?3/w7Fri0nBgrh8aBlNC+sltf1UogBGWnjNyOXFr4OLwmn0sSnigJWaAvxgNF?= =?us-ascii?Q?HVOgH6nAMVj4EDUkN4tFeOUmz/jZlZ1ka3SpIMrNSSEvFofp3Oh34f00QR9C?= =?us-ascii?Q?+ckSwBAXBsjpwL59JhkUuAv9VX4jgV6riDcw0ONCDwl72lTu0wuC+/Uk7y15?= =?us-ascii?Q?8q2vPD4q54o2p851a4NslojLIiFILcPmbFk309u3106TeHZ68YVHMta+Z5zn?= =?us-ascii?Q?DchFmuSyDDozBmnuhcdw8dfM7fztH9UgWLVnfdKO/HKRbdoE7sQunYoq6Qnb?= =?us-ascii?Q?Ktaz3KuEOXmVjWbvZ9tr7yixXQECRNCrAjo/dDvSMKCP1EkAgp2o52mx2D3b?= =?us-ascii?Q?ZZQy9i9YFAz0B1YVfSCLamT4cUnEQHWgSgykpEjKM0RGzIWON2Hk0Fv3UoxU?= =?us-ascii?Q?mX4rijpBS2Wx/mSX/OurSkv38NDnyrvM9f6VTsESqUCEZhKaNUx10AC89/4v?= =?us-ascii?Q?Hwzi3ZqJWmZ5RpTudnHidwvpdHgoysBHMsPK7jBSVREJW9QY4vBUezwSicIz?= =?us-ascii?Q?+V9jazhWbQXAXqS3Xbrv5QG6Oh8eh/BN2Zi4maowUFSanEbMqrTz56takH90?= =?us-ascii?Q?9peWTahEUK6RflV1TDg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS2PR12MB9567.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/bkQV59A4VzRGmsGIjKBT4LKsG12y6krB2qbtJg5NePo2xYD4N83Pj5Wg4ID?= =?us-ascii?Q?HhfwU8a32qmiQU/ySwJiKtuAceCm+qAfgh5gFwPrqZ+jSuL0rjA6KZV8bvqk?= =?us-ascii?Q?TvIB4FHRlxrpmInEeojqJaJAmpZZRBreyWa8DGHCHhjXdlB/DoTe+EN3ZVy7?= =?us-ascii?Q?+kMw60XyCOlQxq2jXcLU1Aeq/rPk2DDHUJirgxuY9iJgCJnvkkjOF9LAVgNU?= =?us-ascii?Q?0raLAVMfVZ0xZFkirIfUAtofQZ8pVB0US1CogLxiHg9LmBxtePoWODHtZoLc?= =?us-ascii?Q?1Hxy6VbAPAj8aUEIe6lCytzWa7ZcoH7zp0oRkcKBIVvzt5jST5zppZk8cwUy?= =?us-ascii?Q?AGXAlQePZ1yTiv1KpZtWG8lbqlJbCAeCTcayhiakyDV9dj2Z4yioNAhXRCAq?= =?us-ascii?Q?thd/eCeJUqGXcUvDmveBt1h8Prtux331qS6hy3ix9BhCS2cwYfGW8+4VN/zy?= =?us-ascii?Q?DKesFJsb7fMMk0wLEQhnhQcD7iqB4iJi/UlnpfwYY3NXc6u7JJxjUqHg4K7b?= =?us-ascii?Q?8Bp1OI3iAvJT7qDFAQr5BOnBWaM984whTdLGMZFQA/nj75WWh/akDUTf94uY?= =?us-ascii?Q?5SskbHVM2y+ZXQhzAWapjNeFUk8vxOEFU6rvn96zHt8UrIVfClb9ZGhx62yA?= =?us-ascii?Q?a7bmjTuXvEDmOAxw/x2I4TmAqMYBNfgU/AY7xkitH91gS6js3l5H+M6nxden?= =?us-ascii?Q?TI0NrPVk8WOoQNUNXh+j67HxoL8SZWszNd0ZQNUiAjrYCNAL6YVsrKlVZ1JE?= =?us-ascii?Q?aGbs6Ha0V+LmSiyX/owHBE9S9kD275mUy52yVMDSIlmsXeDAq1weedwws85a?= =?us-ascii?Q?zGALVlpVUH9B0Ck9EfWraHdVR5tpjZJTy6leBzzjh26gvyYXXjk2Ly8jkb4E?= =?us-ascii?Q?43pxYlvpdUCMRmiIWEqPZcitbWgoZzp64shQ4+l4WaJ7IoYESR3ysA8skd9H?= =?us-ascii?Q?gDw8pUqebH0mi8KR8rlOjuIB1nKBygDN91KzgYBMZicUFnjxfJ+SBlqzgMHw?= =?us-ascii?Q?mLkyY97f4JGEc7QcBT1fKaatkrTlXXMdIQTiF+ompqM5kK2kPbvnXqn46P68?= =?us-ascii?Q?R0YuHw1vbwfMvWcz/7O2I7taZqVX38bginvPv15vBbopzrx6Xyq7UtgXX6qn?= =?us-ascii?Q?mnpzTz28EPHNS149DwmtjpZYc5JKA7rD1yCmsk/gssKHFKndlIZ0iCK+vWqB?= =?us-ascii?Q?LAYjrXJi3y1os/ZSjHzQPNkbYkJvMon1RuySaO2wn9XsPVuiGslMLYHsyYTZ?= =?us-ascii?Q?76zQvIhr6xte3FZ6AufdhAxE+C2jcuLuFJuSdqg9NjHmyIvMmKcgm6nXjGQg?= =?us-ascii?Q?ED82q/Te+riqaQJJKwqjGlJ2VgRHdNr0IponeDulh9qdf7txAL1l68P/5cUM?= =?us-ascii?Q?ELSrLmC6q99BbHpIEi8yprNuNrKq07ifx1KvV68u7czJqUy4RYKP35U4pEDt?= =?us-ascii?Q?qkPeM+WSXnnkjFpqIVqz2depXNjfOJrIAL6Ql3QN3Sd4bCI3Vp+Wlk/+qdBW?= =?us-ascii?Q?2Le2u60Et63Gdzx6XuHe7WBKk+mN6rFhlTBlCuAlCYWB+HxAjKLHUPbY6XI1?= =?us-ascii?Q?T0YOeczirdOKI0zrpu+LSNpY0rp2mGvncaYXkyimp5hh60x18wto+rg+NHpz?= =?us-ascii?Q?wCvyKTQDR9X8EL4Au5MUI9qJeHKl7IToJT2sNRQXNvhtFNQOySayOboYmU7j?= =?us-ascii?Q?0KcEiQFzXWRvX6TP20NxD5I43HCR2N3nEIyv1hnnni5A1eR31npF+HCpp7NV?= =?us-ascii?Q?g9s06VXpVg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: b2fd9891-b0ab-4568-2f65-08de6e7b207c X-MS-Exchange-CrossTenant-AuthSource: DS2PR12MB9567.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 23:20:23.9119 (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: 4GnIjBAIxj2Vq8UakNrzIm9mkziSTWZFq2mwejy1+3GHsNivTW+tpRuG/7X49w4o+k6WGSzIW1sEYXqro13ONA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5839 Message-ID-Hash: ZBNJ5FXUPZBMJYIQLSKYWH62RWUCDGRI X-Message-ID-Hash: ZBNJ5FXUPZBMJYIQLSKYWH62RWUCDGRI 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: skolothumtho@nvidia.com, nicolinc@nvidia.com, nathanc@nvidia.com, mochs@nvidia.com 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: 1771370622323158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Introduce support for an "identifier" IOMMU attribute that allows the CMDQV DSDT device to be correctly associated with its SMMU. Signed-off-by: Nathan Chen --- docs/formatdomain.rst | 7 +++++++ src/conf/domain_conf.c | 17 +++++++++++++++++ src/conf/domain_conf.h | 1 + src/conf/domain_validate.c | 5 ++++- src/conf/schemas/domaincommon.rng | 5 +++++ src/qemu/qemu_command.c | 1 + 6 files changed, 35 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 74431838ff..c5eb4ac886 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -9347,6 +9347,13 @@ Examples: passthrough of physical SMMU-CMDQ linked command queue from host spa= ce to VM. :since:`Since 12.1.0` (QEMU/KVM and ``smmuv3`` model only) =20 + ``identifier`` + The ``identifier`` attribute can be used to provide a stable per-dev= ice + identifier independent of enumeration order. This attribute is requi= red for + supporting NVIDIA Tegra241 CMDQV, and is used to correctly associate= the + CMDQV DSDT device with its SMMU. + :since:`Since 12.1.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 6385420c10..0c11a3e2bc 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -2852,6 +2852,8 @@ virDomainIOMMUDefNew(void) =20 iommu->pci_bus =3D -1; =20 + iommu->identifier =3D -1; + return g_steal_pointer(&iommu); } =20 @@ -14684,6 +14686,10 @@ virDomainIOMMUDefParseXML(virDomainXMLOption *xmlo= pt, &iommu->cmdqv) < 0) return NULL; =20 + if (virXMLPropInt(driver, "identifier", 10, VIR_XML_PROP_NONE, + &iommu->identifier, -1) < 0) + return NULL; + if ((granule =3D virXPathNode("./driver/granule", ctxt))) { g_autofree char *mode =3D virXMLPropString(granule, "mode"); unsigned long long size; @@ -16786,6 +16792,7 @@ virDomainIOMMUDefEquals(const virDomainIOMMUDef *a, a->aw_bits !=3D b->aw_bits || a->dma_translation !=3D b->dma_translation || a->cmdqv !=3D b->cmdqv || + a->identifier !=3D b->identifier || a->granule !=3D b->granule) return false; =20 @@ -22548,6 +22555,12 @@ virDomainIOMMUDefCheckABIStability(virDomainIOMMUD= ef *src, dst->cmdqv, src->cmdqv); return false; } + if (src->identifier !=3D dst->identifier) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device identifier '%1$d' doe= s not match source '%2$d'"), + dst->identifier, + src->identifier); + } 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'"), @@ -28956,6 +28969,10 @@ virDomainIOMMUDefFormat(virBuffer *buf, virBufferAsprintf(&driverAttrBuf, " cmdqv=3D'%s'", virTristateSwitchTypeToString(iommu->cmdqv)); } + if (iommu->identifier >=3D 0) { + virBufferAsprintf(&driverAttrBuf, " identifier=3D'%d'", + iommu->identifier); + } 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 41dba29a4f..2cf414d307 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3076,6 +3076,7 @@ struct _virDomainIOMMUDef { virTristateSwitch pt; int granule; /* -1 means 'host', 0 unset, page size in KiB otherwise */ virTristateSwitch cmdqv; + int identifier; }; =20 typedef enum { diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index cac5dabf06..9cd8efae52 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -3209,7 +3209,8 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->iotlb !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || - iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT) { + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->identifier >=3D 0) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' doesn't support some addi= tional attributes"), virDomainIOMMUModelTypeToString(iommu->model)); @@ -3233,6 +3234,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->identifier >=3D 0 || iommu->granule !=3D 0) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' doesn't support some addi= tional attributes"), @@ -3246,6 +3248,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->xtsup !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->identifier >=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 2677207ae4..ab142502e7 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6357,6 +6357,11 @@ + + + + + diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 3735387ebd..37bb876b66 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6331,6 +6331,7 @@ qemuBuildPCINestedSmmuv3DevProps(const virDomainDef *= def, "s:primary-bus", bus, "s:id", iommu->info.alias, "B:tegra241-cmdqv", (iommu->cmdqv =3D=3D VIR= _TRISTATE_SWITCH_ON), + "k:identifier", iommu->identifier, NULL) < 0) return NULL; =20 --=20 2.43.0 From nobody Tue Mar 3 03:04:40 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; 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 8.43.85.245 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 [8.43.85.245]) by mx.zohomail.com with SMTPS id 1771370696116887.2741524941052; Tue, 17 Feb 2026 15:24:56 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 993) id 00A763F936; Tue, 17 Feb 2026 18:24:54 -0500 (EST) Received: from [172.19.199.9] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 269E941A31; Tue, 17 Feb 2026 18:20:41 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 993) id A68483F375; Tue, 17 Feb 2026 18:20:29 -0500 (EST) Received: from PH0PR06CU001.outbound.protection.outlook.com (mail-westus3azon11011024.outbound.protection.outlook.com [40.107.208.24]) (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 F18B33F32C for ; Tue, 17 Feb 2026 18:20:28 -0500 (EST) Received: from DS2PR12MB9567.namprd12.prod.outlook.com (2603:10b6:8:27c::8) by DS7PR12MB5839.namprd12.prod.outlook.com (2603:10b6:8:7a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9611.16; Tue, 17 Feb 2026 23:20:25 +0000 Received: from DS2PR12MB9567.namprd12.prod.outlook.com ([fe80::636:1b52:24ca:d7e5]) by DS2PR12MB9567.namprd12.prod.outlook.com ([fe80::636:1b52:24ca:d7e5%3]) with mapi id 15.20.9611.013; Tue, 17 Feb 2026 23:20:25 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_INVALID,DKIM_SIGNED,HELO_MISC_IP,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_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=D86LT5amNhGkToaJCdS9M5FBggw3LaoZXn4zhFrSZT+t5Y7psQkHNbStjBcFV7PxUuOeQye3H/SZP9YjMNDZbgpEogXqRO/Ne80WBeRnRxRgYvGcOk7GVlT44qSLOYyfEIkbOiSsk6p1NiCBdNfPS6ZjMgHNw0VPy7X9WgC73nOCgjxMQbiZZ6dEL1wrgGqmr5L/5cgzoZ7ODLfHYADchExbEP2r/AEqnkCHJu8Qyc2BCDofKr7mcfvGPxWfHJcjsHyrEl/hwJ/WxBrMzktjOwJsKPMbY2JzpeH73t5MOO375rJK6sdNBktfQIHYfeGQ+a2Jym7xsFy1cxhRsHyZ9w== 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=9ujV20Gh6kAWNH74EdZFcWVwtOK1SguN1QGCoUKJ6JQ=; b=QzS9GtSvSyO7cwwps10RkHNHXrLS6sKhJznhAzTz5z8XNMroWi4hZyj+qeEe/AQm2IMHNR9f5Fi02FscVBRH2Ns1ig2mjs2Ma1w0sTfN3ax7riQFJcVDKHLuQguCtatMH5cbIYkQxol/R+KY+QKWvgjZ6sz2w4rdID3TrKqKSu3rGO0gYylonJN44N7sDVToDWm9OVrOKSOrAD38uL/NPv8A77gsScXP+4+AZ+oozZ5+kCNMBbkmRgNPt0vnl5a4MIMCHyG+lEKcTyQU4HxwLvYVDJAn5XjhXUppuBGqCVZqJXhC6Zqf+6guqM727ITiww83pls73o/g6Py0iQzYyg== 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=9ujV20Gh6kAWNH74EdZFcWVwtOK1SguN1QGCoUKJ6JQ=; b=EB8FUugDSKIgKKCzIJYcCGnUbTCHZ/LO2hwIbzslE20B/N+6FMBOY9nVVDWmFA8FzmxO66DizaANYwn6BQaRyW7esI5rmB2nOWkBt6Pd30HUcSy/Z6S9ZwEAZ8f1Bku6mn2/u625tFDXcMvaSTZRyysVg/rWx8czrQL7koQX6g11Wshbxpf20ZheER8HnJbb7LzRgCT/VGZETDcPb0ja1WbBVAgAOTFXwj7BqoWU1tg0XwN1+pqhLjX/zDhJ3cCCmxUt8UJ1ecjwIvFfGRFuv1eT60m5lxLBLTYLS+RtF4EYvUDqia76yB1fsRidXOANcVv0QIvUDpJD1Ntitkh1bA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; To: devel@lists.libvirt.org Subject: [RFC PATCH 3/3] tests: qemuxmlconfdata: provide cmdqv sample XML and CLI args Date: Tue, 17 Feb 2026 15:20:20 -0800 Message-ID: <20260217232020.2565582-4-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260217232020.2565582-1-nathanc@nvidia.com> References: <20260217232020.2565582-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0201.namprd05.prod.outlook.com (2603:10b6:a03:330::26) To DS2PR12MB9567.namprd12.prod.outlook.com (2603:10b6:8:27c::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS2PR12MB9567:EE_|DS7PR12MB5839:EE_ X-MS-Office365-Filtering-Correlation-Id: a40bbfff-06ce-4595-c393-08de6e7b2139 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?e28LJCJiq4RM8BEaPjg61SqMiWGfIVA7Bi0yEfNGAckqD98EiOIaabNsALIj?= =?us-ascii?Q?WYZjOeVZO+iVQwiHQvtOMCNbh105K1Ew0Et66qGIMrpfgfZSnfQdp5nLTggA?= =?us-ascii?Q?qyHISTE3kuXaC9hJ86YU0mFkQxQwAFnakVpU+Jcp+bWDGbnTbropy87rtAJ5?= =?us-ascii?Q?HSjxCnYXfEnS7RFjdV1aUMIYoaH3aUX/hmQbFD0O/lQqv3QIbryOuGbZLvGd?= =?us-ascii?Q?H+I+V1QSQiq8uTGUBED0Yp4UTZKm5N5b0CQGfbGr/BvOFzAImNAEk5Q6Z6xs?= =?us-ascii?Q?avbwTHLrElb6jRz6WAR78DagcyH4hR9Pok+28l/3x4QtoTwtANukZWsCXVmV?= =?us-ascii?Q?BEr1eMRqvPqkAflbB6WMUj0cgiDrBLyaO+ZIV+aTEiTxt4ygBnZ89NxPf9mi?= =?us-ascii?Q?jbuIddxrXmt8YvRPOajc64tWmJ30IDMF0241TR0T1d9BLPfG9fTQCHdxw6Np?= =?us-ascii?Q?2HkCuKUGetk7x99PGHdtN8lat5vDJjfQd9DNH+lVytEXgv/mUmrLcFTmPJqZ?= =?us-ascii?Q?ZiK+LWWyDAj7RXIF317iy3OzXV0j4Nkdw8GoY+ZzT3gcui/N1iP8ExdKYn8x?= =?us-ascii?Q?u/qa9RqirPXDRU4bwNPw7+Wy1bSn9f3XC9bF3yVr4eu4/p4EWvgAOIml65MQ?= =?us-ascii?Q?9xMSVTqSdYsTzGCVeSumwgbCYej5hKR6jmj5ovGOQcS5pSn+Jljy3gmnUUFH?= =?us-ascii?Q?5MS0/qWSDaePUEf+OQW0IuNnesV8sQwMSMn1e0OrcbOJFA/vI2DPq2yaARv2?= =?us-ascii?Q?Nf5kHIfX85bEkcAB679AxNEBnKXBLj5muAs7THAhfTgZILFj7vt63kloS2mP?= =?us-ascii?Q?DMShUqELyEs3ytAOUcI0K7/B27sA26hGoL8k8vCG8QUrs3OdbdQpTigGwUME?= =?us-ascii?Q?2KHeAdAIcFcVtfvtVZO3+QSKbyral429HfFjeHb6asgGdCoyoY7O0Su5qU48?= =?us-ascii?Q?8RSWMpVP+lkGnyrYdqC5YqSNFi512jXbOSeomEsMmiLUzC6UvN0PykW+IpjN?= =?us-ascii?Q?ftY7Skd7PVGPQNJGpoIZxQu887JviDqtNLyRQmwOpHmM2MxFeZYgbFsk2aqu?= =?us-ascii?Q?X/oc35ohxr0Q1V6TrsRAO9vVeDMzQQe8FsKLPXUGEGaoD6em3ssJR9BoIEg2?= =?us-ascii?Q?heiCRCF5tq31HcEVWC1QcCFDH+J0La1v+68sKAaPxubaX4J+J622NXfv9qJp?= =?us-ascii?Q?m6rRV1hIOVjQrYTBaXQRoSDwuucklWkWWZq/OBsWpyKcrofPfL9lB99WBkN5?= =?us-ascii?Q?0vmi9FRW7jCLlPLf2T39TQNK6NpShbKUxL4SxoJMvPyqbKVlAFB4F6/7IAbN?= =?us-ascii?Q?hKaCEt/wYNrhNExsEi5Ds9/XsVVqNUuSQBsphunmmtJoiNRe2ppCajcfW245?= =?us-ascii?Q?OgPQmoA4DezzH4m1QFjKY0rnWmaECNaO+fpFjuLbtMYIQVT/OjZAGLHrSdsr?= =?us-ascii?Q?vg0mnliRNTfuDNGyHKMLT7saG+pL2LA/+BUxF7gaYOnUINU8hwdC4EiKBQJk?= =?us-ascii?Q?mj/M8Dx+DqhqRPLVKsUU8ZuENMtoVNM7fN0I4qPNlEJxc9ZwblEgNMI2IgmD?= =?us-ascii?Q?6AJKJqTiC94MLX9Ny/A=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS2PR12MB9567.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EFgA8SoMKVgrwg7JSIYfrpPPlQ/3zvn2yFqjhmnS/jk2OA4CSfAegQUJym0i?= =?us-ascii?Q?qJy4ZfO5DxJ8P6+Y40NGUDvXz2ssqAyHFGvANApJXq9ethBZxcmSfnwIhRfy?= =?us-ascii?Q?WpS9aoXMeLiR4dBM3C9OUIWFHsiXDT15O/qt+3FlcA7FwUWXq+1mKaCYMLX+?= =?us-ascii?Q?8XbuL2kik3FaesyLbaPDcpygcnkH1gD/ppla4qXi1OUKsYQXa3IzQQedFhdm?= =?us-ascii?Q?iVn8UgrGd9LxaA4JylnlJqLgToCgDIHJdkSPT0JmzI98oFLOEYsac+8jjk+9?= =?us-ascii?Q?uCZuExrJb9M/tXiEoKDzO90jhPKVwIp6E+EAdR+hCZfdWLje2oSox2uLVOP/?= =?us-ascii?Q?0mvnNG3Y0Gnj+/56cYFYv/N7njnW1NltRHX38FqaCTwTxolqDRSPWr6x1DXJ?= =?us-ascii?Q?ol92t10WD4dVyS/5SHR58m85W+9a7wL7JHPgmFtJ8XJm8Yoo9mEIIA5UpaVH?= =?us-ascii?Q?719HLWGR2ShXg9KZTzMp4gEj+5UBmeaDzMaF1bgtSw/IIzPg6555HyUUxpJ2?= =?us-ascii?Q?X5aviPlulk6dG1Jo7LZsCCTdwodb8zrARr3L3LUdZb43RH4pFq6llp53nJok?= =?us-ascii?Q?3505Gd3Uptsih9E6XBq9hEPmUkxUw+GNpx42U1oNw6pUEORNuCQWc/KlTUw4?= =?us-ascii?Q?AHypGO14Y7vtTvgO+IxullmoY0Ln5Qq9J9C0Zb/ZS0gOFh2ItAcLsXPJBM6O?= =?us-ascii?Q?QCfo1e5zzvPQzrhgL5C/rK++d2B+Q4EaVa8Js4u1cYwA84GjcJpsBrfsyrIb?= =?us-ascii?Q?gf5qm1nUMkC4tl9MmmE7kmhpVDi9ct8c0hTnmpT+8/eHIGnKm5t+s9d4jIV0?= =?us-ascii?Q?V9hsP0qo6Js1uUrMM9L9hYDDvXQYaHSv9A6CrKPmoOSxWuEdb+Jwtj2FJ2kw?= =?us-ascii?Q?J+xR3k7jRJCNgRfp1hpRjbAHSbhmQwRHoJTSluATujngUK49JcWyTKoP0Mcl?= =?us-ascii?Q?Hp9Fcym+Oay58mPgMKC0586sFEV7+eW0PMBbHEVVInLsZ7IGqCiRN00iI7Ux?= =?us-ascii?Q?8j5HURl9Zd/s5KLh9/ioptva1NS/xinsD/4/iL65LyMq+Qui4+pUUBoryBke?= =?us-ascii?Q?t1hSm8T5S5SomR/JJflimYsueONC9Q5S4887Ge7npwaKk4XGUCwCWmRN1v5y?= =?us-ascii?Q?VZVV98mEBIrHf971QkKqHymcCsCNB4q6K9Z16hP1WNcJwd0viWWgibpSWzv/?= =?us-ascii?Q?HFkE5N+mHjr7zubYZDPuMfZfa6I3qLglyGlo6XQ5jgmlzr4rCe3Ic3dd19kt?= =?us-ascii?Q?qqPWY0znHcmzwMa42O9/M4XItsFWbd+a0E/2ik5ryT9bcN1MJeyvMai6tJ8K?= =?us-ascii?Q?LTE8zUFx05CDsl2mHxvBSQXGS+599hzAgN7mmwRzWY3FIqItlyixnDK5DoWY?= =?us-ascii?Q?RF1KDqgGSnLSST/2oxWwKGbM2plkHO27paclUqo29cBYvLkupepurDh7KQ3J?= =?us-ascii?Q?hrh/iH4ZCgvg8CE4H0ZVPiBtezf+2O2XxI/eeBF/SYdoM+NLPhxUs/m1Uy0W?= =?us-ascii?Q?0A95+on2vnwRfdF5aWZ7iukRUfEOa4Y34UTlVfSrXuwVd7uj9IIKIo7MDaXY?= =?us-ascii?Q?/yt9LT90rNtzZkne1c8qexaigy3NxhQlHimo0IPja4b2QJxdnL81eNaOn5/l?= =?us-ascii?Q?XktvpyWZlHEzykWt64u6+0MrxsDMiFovvXWxJQEE2/8L6poXvmGj1Uxy+Qa2?= =?us-ascii?Q?miAeaKXwrTQHAEhmPzr/uj3nSUYSz0LG94nZpxIpv6qj72w88O/UhyT4NMIy?= =?us-ascii?Q?9Trdk7Z+uw=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a40bbfff-06ce-4595-c393-08de6e7b2139 X-MS-Exchange-CrossTenant-AuthSource: DS2PR12MB9567.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Feb 2026 23:20:25.1502 (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: OSl6QZHHNF2sW4eTV4/lN/Y6ZEilT+Ey0N1p22MPlnHc/dhW/haEPMvIGKYqeLYDMiJEhrJJE+nDvawmL5MUkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR12MB5839 Message-ID-Hash: SNTC564GKCQS6HCPOVWZ2XJBDQ3G2UHC X-Message-ID-Hash: SNTC564GKCQS6HCPOVWZ2XJBDQ3G2UHC 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: skolothumtho@nvidia.com, nicolinc@nvidia.com, nathanc@nvidia.com, mochs@nvidia.com 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: 1771370697898154101 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Provide sample XML and CLI args for the cmdqv and SMMUv3 identifier XML schema. Signed-off-by: Nathan Chen --- ...u-smmuv3-pci-bus-cmdqv.aarch64-latest.args | 40 +++++++++++++ ...mu-smmuv3-pci-bus-cmdqv.aarch64-latest.xml | 59 +++++++++++++++++++ .../iommu-smmuv3-pci-bus-cmdqv.xml | 49 +++++++++++++++ tests/qemuxmlconftest.c | 1 + 4 files changed, 149 insertions(+) create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-cmdqv.aarch6= 4-latest.args create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-cmdqv.aarch6= 4-latest.xml create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-cmdqv.xml diff --git a/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-cmdqv.aarch64-lates= t.args b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-cmdqv.aarch64-latest.ar= gs new file mode 100644 index 0000000000..b144bdd08a --- /dev/null +++ b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-cmdqv.aarch64-latest.args @@ -0,0 +1,40 @@ +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=3D1729,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","tegra= 241-cmdqv":true,"identifier":0}' \ +-device '{"driver":"arm-smmuv3","primary-bus":"pci.2","id":"iommu1","tegra= 241-cmdqv":true,"identifier":1}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-object '{"qom-type":"rng-random","id":"objrng0","filename":"/dev/urandom"= }' \ +-device '{"driver":"virtio-rng-pci","rng":"objrng0","id":"rng0","bus":"pci= .3","addr":"0x0"}' \ +-object '{"qom-type":"rng-random","id":"objrng1","filename":"/dev/urandom"= }' \ +-device '{"driver":"virtio-rng-pci","rng":"objrng1","id":"rng1","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-cmdqv.aarch64-lates= t.xml b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-cmdqv.aarch64-latest.xml new file mode 100644 index 0000000000..e7da39b33b --- /dev/null +++ b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-cmdqv.aarch64-latest.xml @@ -0,0 +1,59 @@ + + guest + 1ccfd97d-5eb4-478a-bbe6-88d254c16db7 + 1048576 + 1048576 + 1 + + hvm + + + + + + + destroy + restart + destroy + + /usr/bin/qemu-system-aarch64 + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +