From nobody Mon Aug 24 09:06:54 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 1786474359753709.1256141571761; Tue, 11 Aug 2026 11:52:39 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 05FE2419E7; Tue, 11 Aug 2026 14:52:37 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 8EF98418CF; Tue, 11 Aug 2026 14:51:12 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 0B57F418DC; Tue, 11 Aug 2026 14:51:00 -0400 (EDT) Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazlp170110009.outbound.protection.outlook.com [IPv6:2a01:111:f403:c111::9]) (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 9B469418DA for ; Tue, 11 Aug 2026 14:50:58 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by CHAPR12MB999250.namprd12.prod.outlook.com (2603:10b6:610:300::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.21; Tue, 11 Aug 2026 18:50:54 +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.0292.024; Tue, 11 Aug 2026 18:50:54 +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, 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=pp5/dLXsR2sjmDNm//wL6FUtrT3XpHdQreAWZG9qvFvh3KG5+doY/YzLvi1/iJOeEpLi8Uc1HwNrcqO3BhPCvHba8yapi3yMw/on4dgZEl4EY7cj8e0jcAl+6FfcvLdCklERv9mwS6QNH5eDs5s9xqiVc4Jg+buKHdTGaeqw3lVWajQtB5G7/CzBtue0ssbCxCERNK0kxif4F5/Sz4IMFYpYvCUxoVZn/t2mq4mE8g4/zSyDfT6eORKG27mqRZF8lAIrABFUoyX/CvT+a5K6k82QVUm6l0gnaue5BlLAgVe2TscNg9KXbvb1Z1IKmzFF0s8jvqKwhtgnaHlInDQn/Q== 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=trcfQ0KRUk4/ze3GeZqJ4zTQ57pFON71UcFCYYEdQT0=; b=s2vh1Ndhfakn5Ex0c9qx5BIyvszQuB9GOIJzKq1UbQoZzVyYJw/1F8bbjN/tJCqbXqJAqFbzBPWGbcJarApen/r4zdftHCXl7TJZbp6gIS227yoioMYQta6mZGCCSOMPHKByDP1H6A6Bl6bOspZim5b9ee5zuUdztzxelKxy/rWbawxHa10fhL7Zv6iS+u8jx83fRDndjHVs+NPku3OOwpmOO9bpv61qSnpjuiJanE8EPvwp6UDfegfoPEl45fhHnQ7e0EBSmC3n3vNPeg1XZhsmjNBkDN1ZUmi6m6f8uPUrfcJe64z0NKQS1Cm0lABbv3jt2084l0UjU7GVZ1xpUQ== 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=trcfQ0KRUk4/ze3GeZqJ4zTQ57pFON71UcFCYYEdQT0=; b=Z6JhWAHKdN9RSNylcbE2gbG8Jcu8ya8yjjGjs45pieTOxSXe5x1r7Qwd4X5Hf9jDzIPUHmJtcQutAf9+g1b57kPHALk4zgyl5fP9NbU83k9eC4pfxbirLWkqaVo/qdPX5K7xnGFxRu33N6Lo97/Y5q9x5HCVVlXBaqR1vgg3nP4beAkMWmNfEqq/GAJktx8WYziADRhnd+5LS2UlxggbA9Kueca1sA9rzc6fURLqCe6emPdceD4j4jMgGUalIVUIvyqyfV38QHQ9QWG8bEPm+S3KC63vcTaDqk/U8y/hk1myYVcXGq8mw4NNtObFbSBjBh4BsU9uvXXrITeeG4EXxQ== 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 v3 1/3] qemu: introduce QEMU_CAPS_ARM_SMMUV3_CMDQV Date: Tue, 11 Aug 2026 11:50:44 -0700 Message-ID: <20260811185046.26005-2-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260811185046.26005-1-nathanc@nvidia.com> References: <20260811185046.26005-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR05CA0044.namprd05.prod.outlook.com (2603:10b6:a03:33f::19) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|CHAPR12MB999250:EE_ X-MS-Office365-Filtering-Correlation-Id: 4effaa13-33fa-428b-b6e4-08def7d9792b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|10067099003|6133799003|56012099006|11063799006|18002099003|22082099003|3023799007; X-Microsoft-Antispam-Message-Info: wXMwsCRAvit0zcCAxVCeMwV/Lel3eCZbeoEXPho5jIbylVRDdxJS7oWOjJp9tTZQ36WyHkWyCD8mvyUpcSc/mvPgbUbgnEs3KwE/IC3+V9BKinDTfTL0qhMr8lCV22mgNDZ3MVuxQJbwLmdD3yHE/uwsF1kztqxmE1JHLZpmOhwu51mfGBaHLxJOdG82kE9hUdnlgVnVrpYG6Rrxb+29BoWD06uL/xInj6DGkvosgwOIn5z/P/o3kgtXuGVJ44KJQf7o0V7vuTlj6eYyKccs5I39cACAtqZwTZVGg22IyAd5me/BnVPX+Upt/VTmfORZSGBLlSCWX3iItGmWFth7XbDZfJ1D08TzzGY6gHW3erREVf4R/HvD0gmpMxYH8uuRN0bWzbKLUDqBleAWA5rSOjwwLBxfM9Zn3l/ibt6+5zHFyzJ6nvPgI2yOVwM1vg6rH7DlBzn1dUfa9Zl7V3up12ZQU9eM+nzIyH3vhw4yqsQ/jrj+8qowbO9fJpCfsKQugAJjmLiqs3Mk6acjCfSPj9vjWeGVZLZieLpq8tPzWSV10BlwP8kqvuhP+16IPuH42m+KAS82dR+NbUQxH8BSBRnBm/oTncdSypRbUwyxvX7YyH7q8w6NpIwC0eizx3FBwyIbPasPNgwdnCMY0HRae70a5+d0wpP4+UmlgX/SVYc= 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)(366016)(23010399003)(1800799024)(10067099003)(6133799003)(56012099006)(11063799006)(18002099003)(22082099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?yGrDBGzQkc+icVEf6snpyjbuZLhaIB5iRyenHfUboqj/IDJ4YyMjNes+op5u?= =?us-ascii?Q?arC/yJauMaTFq7PiCzwXEGHyZbt/tC/+aqmboMTSuomCmEngWvCrxCGXxSHV?= =?us-ascii?Q?ugqKqOsu0NE41jleQL87Fr4uWH1WSFFfV+mKWbcMaZhoQLnOCj+0kuGFSrhc?= =?us-ascii?Q?Mlkr1a88OgxLemLxdJR8lZKslc0KmxcQRXRYkjUwlVqsM6dDk5cRCxl+y07z?= =?us-ascii?Q?1ZzEEp+ukb4TWfLzLNqTplzpgLT5fNMy838imGUw+TWTi6sOQDpWRWhB8cZO?= =?us-ascii?Q?IJzourZI7d34ff3U7xq3rRvx4Xu/epoU9BelDVq8HNdmQzRCL3XcNXlqWOj8?= =?us-ascii?Q?DofF70aJYpIF3jIrWXbSNWmvOXOymhfw6+RvM/ZgKeZkQ8Ullk6GBTJ7MbDS?= =?us-ascii?Q?VOqob+TIi1Y5naiadbtSystVUOuAm8C13JdHvBa5CfF1JHZRDKehaNGXai6g?= =?us-ascii?Q?ygC4Cq8ycWGIxGx5Sf3WlhzL6gnucNPTOzGOWdQrksL0qYt9bQskPjHSt0Qa?= =?us-ascii?Q?AYVv7752onbIrdX0QlRYIcWlwTZeKrjHhnIyHhRhhmLqPGr8xQEUWGnuhT5C?= =?us-ascii?Q?JkrPViI3Uyw00gZkmAul4Oao5tgKz5w64q1EIHd4sVHr5owACFswRjYD6KZD?= =?us-ascii?Q?tMkT100YuyipySaJZpkfjWdrFoPdXwD2/xRp5Oo2DAb99SmiuC1WpijijDZ0?= =?us-ascii?Q?yJ8XY2qDxSegp/bb7/h1fBm6B4q15IEA/UJznSwN3P2JK857wStPzib2H8ol?= =?us-ascii?Q?kaqh67PRc0kY6Tx/pcRF4KwZ62BtF8d0lMb6u9HVYB2Dfbuu5hnkOYR0HHmo?= =?us-ascii?Q?Kdg5CVhoWa+TL+uJvKZHXg9ueSgNj0FV9aFWsQR0cpEVQ1cAVpoCdocy9QbY?= =?us-ascii?Q?1jVRxa3eFEJAMrzExLiWNpw690rSNHw8DzgdAJSbgJDj6rxgIIlp+TR+FZWs?= =?us-ascii?Q?O3kEClVLXOs/+FtJ1Dmp7IQTpQ7iLBv/YRkeNIViP6GauCx5nQ5k0O1U0iiG?= =?us-ascii?Q?eKeThu/VjYAMq6U1EXAUQeTZKY8BGQ51anelY20vhOYQmdPeW6GQsOKn87YD?= =?us-ascii?Q?yPjCOqwV+WEQgNDEKudKawwgF8+Tmo/a36jEisWUOO6bfX4cpWb4+EVAhCYi?= =?us-ascii?Q?ebSL3Ew/OhSEYh1aWok6hdOfHw1rxA5liJV9X631ANFUcPk4lbiWSIbqkWig?= =?us-ascii?Q?n+yLetd3qoNEB6Cshf3SXxsSdy3m80tvXYaB08qAfgphGFSzXrTDe7t7BxzI?= =?us-ascii?Q?Utt5UZkJ/1VfPW6oSWIUzwE/lp/Z1auPB9URRH7NGF23lTyg4Lbv8zdt8/lZ?= =?us-ascii?Q?5g7mSJeG7AJ5FylcN6iy1a0kngPIpdU2FfVBmuPY6EeC9Q7x8QM5rVAMMUY7?= =?us-ascii?Q?qIM2eNbt/856EmMCc6jJfpHm9nO0IU088DAMOxtNzifqS0PEBgJAuGR18yQf?= =?us-ascii?Q?k1IEtape44E1Dzhxi3to7FosMbcLmB0Q75kU1Q8/pAJIAhxRplvjIwXAAQIX?= =?us-ascii?Q?sflAOVigdWpTvqQ0uJ1p48NeKo3xV8gMSwBA4EzfT5zSzcCPC+V/6uqAH7xA?= =?us-ascii?Q?tmmksBBOorXI/BfyTfZHn6E/gL97mZhzhpfbxETjcpwdMEoqczwBXVvoJ20z?= =?us-ascii?Q?kuIB+sWpQHyMKMQSHCe/baxXjR8juyDNie2zw1On/ysl8jiDUQUVzhvltu08?= =?us-ascii?Q?h00B0teCCZs0+tjTHrhnIAKRW1WZV/6LbQODk/ZXcbUHxrQDlygrtoAPXYHB?= =?us-ascii?Q?skbvADZvFQ=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4effaa13-33fa-428b-b6e4-08def7d9792b X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2026 18:50:54.7049 (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: ruaCGS6GSUpnsSXvsYlCK5SS8Vvqg8ONGTbVxvLV93aX6WKcpms5NzMTqbTfJNlGQDbBIDL4Qa48tmrqDPfwtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CHAPR12MB999250 Message-ID-Hash: EI7FUMGMGNB423Y6TWWFB3J36ILC6EAB X-Message-ID-Hash: EI7FUMGMGNB423Y6TWWFB3J36ILC6EAB 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: 1786474360805158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Probe the arm-smmuv3 cmdqv device property via device-list-properties, gated on QEMU_CAPS_DEVICE_ARM_SMMUV3. Reject domain configs that set cmdqv when the QEMU binary lacks the property. Signed-off-by: Nathan Chen --- src/qemu/qemu_capabilities.c | 4 ++++ src/qemu/qemu_capabilities.h | 3 +++ src/qemu/qemu_validate.c | 9 +++++++++ tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml | 1 + 4 files changed, 17 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 6abb179951..a0fe9b36a6 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -771,6 +771,9 @@ VIR_ENUM_IMPL(virQEMUCaps, "arm-smmuv3", /* QEMU_CAPS_DEVICE_ARM_SMMUV3 */ "arm-smmuv3.smmu_per_bus", /* QEMU_CAPS_ARM_SMMUV3_SMMU_PER_= BUS */ "arm-smmuv3.accel", /* QEMU_CAPS_ARM_SMMUV3_ACCEL */ + + /* 500 */ + "arm-smmuv3.cmdqv", /* QEMU_CAPS_ARM_SMMUV3_CMDQV */ ); =20 =20 @@ -1651,6 +1654,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCaps= DevicePropsAMDIOMMU[] =3D { static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsArmSmmuv3[= ] =3D { { "smmu_per_bus", QEMU_CAPS_ARM_SMMUV3_SMMU_PER_BUS, NULL }, { "accel", QEMU_CAPS_ARM_SMMUV3_ACCEL, NULL }, + { "cmdqv", QEMU_CAPS_ARM_SMMUV3_CMDQV, NULL }, }; =20 /* see documentation for virQEMUQAPISchemaPathGet for the query format */ diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 4563e15156..91c4852ea7 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -746,6 +746,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ QEMU_CAPS_ARM_SMMUV3_SMMU_PER_BUS, /* arm-smmuv3.smmu_per_bus */ QEMU_CAPS_ARM_SMMUV3_ACCEL, /* arm-smmuv3.accel */ =20 + /* 500 */ + QEMU_CAPS_ARM_SMMUV3_CMDQV, /* arm-smmuv3.cmdqv */ + QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 61f3bd3278..25527ca2cc 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5829,6 +5829,15 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMM= UDef *iommu, return -1; } =20 + /* cmdqv was added after accel; do not treat ACCEL as a proxy for it. = */ + if (iommu->model =3D=3D VIR_DOMAIN_IOMMU_MODEL_SMMUV3 && + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT && + !virQEMUCapsGet(qemuCaps, QEMU_CAPS_ARM_SMMUV3_CMDQV)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("iommu: cmdqv is not supported with this QEMU bin= ary")); + return -1; + } + if (iommu->granule > 0) { /* QEMU supports only 4KiB, 8KiB, 16KiB and 64KiB granule size */ if (!(iommu->granule =3D=3D 4 || diff --git a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_11.1.0_aarch64.xml index e53ad1d461..a7398c39cf 100644 --- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml @@ -191,6 +191,7 @@ + 11000090 61700287 v11.1.0-rc0 --=20 2.43.0 From nobody Mon Aug 24 09:06:54 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 1786474597308318.21907311069765; Tue, 11 Aug 2026 11:56:37 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 159B841939; Tue, 11 Aug 2026 14:56:35 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 3942A4195E; Tue, 11 Aug 2026 14:51:24 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 0C9E53F87D; Tue, 11 Aug 2026 14:51:01 -0400 (EDT) Received: from DM5PR21CU001.outbound.protection.outlook.com (mail-centralusazlp170110009.outbound.protection.outlook.com [IPv6:2a01:111:f403:c111::9]) (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 D0899418DD for ; Tue, 11 Aug 2026 14:50:58 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by CHAPR12MB999250.namprd12.prod.outlook.com (2603:10b6:610:300::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.21; Tue, 11 Aug 2026 18:50:56 +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.0292.024; Tue, 11 Aug 2026 18:50:56 +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, 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=ePNf/sNuX8gHyYTaRuF2ILQVBkGgtVeLNf3RYx8DvoyO/4b3AUN8xNVduOo3IPu7b1j7xT2nhSWQ6gEJnpE7GMsRmwGU+eW1U65fXyKpKxmHLKY4YJWrTXfGaNsXbxKxBya11TDLl+bJuEDblTcI0D0pv4JzThmsq0xZIOQX/FBrvApQhxWgnaqdQzgdYTojWi0aJ0Xbs9NfrbYtFUDfuURTeJ2u2BnOQl3mT+y+TGsShGy2863tRL4Z+UX9vsEFlvOrK2w83CGo+2/64a1e2nRmvogLRK4v2MLD9KEJQmXNzKbnSJ/mxD//19AT//3Xu9JVhyOvTYitdw03I218PA== 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=NdeBZTvjM98RuWxCgFclzNVKMcCpOsmia3Dac3zxT30=; b=j0il8ABIQrKAddc85WiTMJhJMVLxTOtGXwxWQDYq11dbIlTkj438SvaP2aecOXY1W6st5FeFPS2O0B4LzBNn5Qdkr4eKhpUt1SyXLgXGD7Lz/r0U86eUYgDPqH0li5O6WmS3CFQD+0Ydlf0CJmh/y3f/MQj5e0rtaD8RreF6GJ33clc64HyT8eVTzWX9/CV5OcDL9L8rT7D9s6gsxCuTtRFCkPNQ+h0ltB2Psa6buixRDIy9U7siOir8zjib67nV1W2xx3k/q3pCHUKbuzj6ZF/SSe+Gj1XJ5tHYZGdfIsfgndUhjzvADnC+budR5K4vlEdneVGNSIo1fAq1mfSSVQ== 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=NdeBZTvjM98RuWxCgFclzNVKMcCpOsmia3Dac3zxT30=; b=PkXGj1jz1HYp8MlvPUGeTjika5AQIMNzF7NkdsSLqGUtNPPIRi713nUPT2oNFP0yZ5Jgt5WdDzwFx82XJgdvf2kHkVnkQVz6rmUYJkA9xOoVFSjR4rqlZyzsuBoWhkaAcbELbQgYzp9EFRtgnJ9JLevTI0z7myE4ZCilMcp06Um0p8IEfasIYOkamlsOxxgGWjJ96MKxEFi/uf8R4qUWpwfQsL4G7fIrgK4ppqz3NNj+1puJUQpMBvYbrJmLGZ5PtOfBuO73tfdTT/IBkmNpJ/EuQNvaVhAtcvRPg1YLyR7pRaczpfBAHSVm/CkpvaJIwzsUqQxACwYXfs12HPSwcA== 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 v3 2/3] qemu: add IOMMU attribute "cmdqv" for smmuv3 Date: Tue, 11 Aug 2026 11:50:45 -0700 Message-ID: <20260811185046.26005-3-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260811185046.26005-1-nathanc@nvidia.com> References: <20260811185046.26005-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0209.namprd13.prod.outlook.com (2603:10b6:a03:2c3::34) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|CHAPR12MB999250:EE_ X-MS-Office365-Filtering-Correlation-Id: 24bfbc07-e77f-40a8-c42e-08def7d97a2e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|10067099003|56012099006|11063799006|18002099003|22082099003|3023799007; X-Microsoft-Antispam-Message-Info: zrregWmzxe55U6Bcasl5kb6zM9fGHOjyAJnfxGFIRmwiz52IRYxFim7f7vOjFOPD0iI2ETIIUt58a2jqUTR/PmVPzcaMCFi7tc9bLSUjFQx/xXuqYbvEHUkont5RaRyOzdncm0y83aMT/bjFguinEY45s3QMa0mr/Hy/BS9ygqrZEJ+s24saBGAWv/Mk+Y94EyObmQbGlKn0WFy5sp4Wfcrk2SO4vrM357jcm2O/J8QIMlygQU5uFMq48IR9DWiqOJhAn+bBvFn4rg16tusbU2+nCfGZ3dPqevnis+alC8if+JSrMWaAwWgWa3ZXX4WwOxZW0/tkrDnzhaZYIWmiQeEJhMdF6zf/kQNPDTpx9h256Z+E1MfjHAHGxsWG7eDJFw6QPbvArAbsbPamZ8lym23WD0ivPMHlRpeIS7Q6nPYl3VIs0wcqc2ECF3STysGjk1NdrDZyLbj5ZOVVYgNz33y0ATfjLYItrzw1A5m/f3fzKs76ztqKHVNyyXB5K+lYUa8M5M7CACNpMD2gsjrlfU7w47r892Duxb5nOOzDODEBeTE7Ogumft9Vs6zkFaYaVOFGPDPVLk5N8Fsd+u7o7Mh/fl4ZLA2fmXlLTQLLV9/yjYqzHyP5+gx0sqnl7rlD7617U/LpMxHUpmB/ZXsjTF3/b8vYzLmuxPeSvuMJ778= 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)(366016)(23010399003)(1800799024)(10067099003)(56012099006)(11063799006)(18002099003)(22082099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5TjmrPRG5mfR+oncMAJZX1AneNlN9TlMzyMmpIEq73zNGHA2g8BO2YrZ7Edk?= =?us-ascii?Q?mpAHvMurSnRXQthTaMDiPAhJJ7m2zRkIUfX0RRsOU0GYumuVOxULz05IewmJ?= =?us-ascii?Q?1gUp8R+BKStwk597M6JvMcFMTTCNQs6HUzjvXtoT6h7QV3GaphSnUaDjoSaX?= =?us-ascii?Q?HA8vGKPJIMoBFYT3gpDMvhbf6hXQpLrF9/UShhAyRJNTVDKxaOPAb7eUzrB9?= =?us-ascii?Q?icuHiMLK0qIsaflch40Y+OzpTTidHa6ipCkL0wtlyb1F4BJtChRdYkR/aPzw?= =?us-ascii?Q?2umZVM8pm5DqwvMRU1rmcEHUqVX7Hrakq30b+iDHlH1+Jva17hEGAoYpUMtY?= =?us-ascii?Q?Kd79szmjgflYXsKa1g92afZm1C9g0TFc8SWXqaVp/3hSYDWU036ER0yQsJWt?= =?us-ascii?Q?3qZ/koYwkUdysv+zSgFe0FCyKt7c7nSx0pUK6ribCPBKoZObBzUO/EYe8pJ9?= =?us-ascii?Q?YhGRGld8KkWMvsFjwNxdUY/t+Q4hiRB8HZgLGPCu+s+W4ZTndyTHDNCxEv0f?= =?us-ascii?Q?uzMPcPVs06WSaRnMTeQrckyN2J5fczdzgj2LJFo03SjSw9UwITnx8DT/PIq+?= =?us-ascii?Q?4/+Uv4QLFdJxka9aoVdiqR5W51KT9y2KwWigjd6I15UX39OiGpp4SOKZhuGj?= =?us-ascii?Q?WYPEhlV7TKv8cmLM18zXkojxjrdbqICmmTpLv4/b+oWQwU6U8jaJWErV1sOW?= =?us-ascii?Q?TSPHUuIgLi5R638BEyxe97W3ARVxtiypnfnTAoRhHna3gb6dcx66iez7B1EE?= =?us-ascii?Q?lZqr5ayBBpEqbrWywuEVQIf320IOnHg8UEpOtT7ZrUaoa+M/1Umkj9mAFclw?= =?us-ascii?Q?Hc3peT0EP21SfA8G2zWBrEdpo02wTAUb2hs9IRQLOwkzFBGoxM+dcdD7hzJq?= =?us-ascii?Q?XD1Pl/LM252m7GjMv/d/Qw3c+ftMKQRYsPdnInW4oEuIGpPvMCFPoM2KcLgs?= =?us-ascii?Q?xM6yUeWOKxDiHS/duQLVzGX4+KbbwkweA/wJ5mquCb4AfUGCVDQEyuTNfxGw?= =?us-ascii?Q?eQIxtX4gSo4WkR1Deof7iY+9NiVtNEgenbf4edFJ+leYSVTX7MYm60Vgd/fY?= =?us-ascii?Q?pvXMIp9e+HkBjR27ckl+B/NJHy+xKD9JqdZvsAlw2dKuX4ktHuvNBy/dSFcb?= =?us-ascii?Q?C41PhW+znqKMA7hx+uMQ9c4WCOZTqIRnHjxNV3pmtVG83NWM09OJLMKuyP4U?= =?us-ascii?Q?faOPqT+hs3BUlPxuwgXqp0cnyrMNvIjEiNEcxjDH/lUUnEYUYy37unOWB+fN?= =?us-ascii?Q?1PI4SX1qDk1v/QKr4iChOohnvWlqC30kcK1LTyTu8SdCgbXrCaxkLjl4V00D?= =?us-ascii?Q?5zujb2A/z2GmKLYjE7VlLnbhtfTliBLXhe/TjmXfIz5DkC0Zdqa0NbDV1onL?= =?us-ascii?Q?rMRPoVBLG33h4zl2vH2aQcAaaMcNHdCkZkfCYpkJopndWsGUFF/AZZzNk1NQ?= =?us-ascii?Q?3BRW2zt33cVOWLk/ALjSDQwVTaAAp9ZHYXHwlQ/Soq/xCPGnx0bjRS99U9dV?= =?us-ascii?Q?1w3tjIoe/hhYh5N220MRQoTnqGOfuVHP/kYxgR+eXU2FhhIlhdsG99tClUxR?= =?us-ascii?Q?2swNCNa6051V8vVk79qfSj+rLPRG1O8oKSMHyWhu7fk4lF6CX3cFIeiWHn2V?= =?us-ascii?Q?Ngk6TMhhKjpzRaN98uBv6D0LZK/jG4OCQrvQLiHHbWloZk0sN791D2k7JrR5?= =?us-ascii?Q?j+F5F4e4yiEO6/FIxu+Vxzo6gFvt1nIOdKOylpNHvJxfwhVBui9b5eSJdBjx?= =?us-ascii?Q?ind5DQvv6g=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 24bfbc07-e77f-40a8-c42e-08def7d97a2e X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2026 18:50:56.4219 (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: x8EeJkcldReVcteXzOegNvVxVJBXqLY2CcpvWpwVTYV0hAEIbUqd+YZ8Ytwo/tg8OXfZePPC/DbjlVBFIPghtA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CHAPR12MB999250 Message-ID-Hash: K4UTXHYCQXAZ4PMG634WYUVBGHWTVRW2 X-Message-ID-Hash: K4UTXHYCQXAZ4PMG634WYUVBGHWTVRW2 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: 1786474598040158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Introduce support for "cmdqv" IOMMU attribute, which enables NVIDIA Tegra241 CMDQV, an extension for ARM SMMUv3. It supports passthroughs 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 | 6 +++++- src/conf/schemas/domaincommon.rng | 5 +++++ src/qemu/qemu_command.c | 1 + src/qemu/qemu_validate.c | 1 - 7 files changed, 33 insertions(+), 2 deletions(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 0b346a0952..2d5a34cb35 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -9436,6 +9436,12 @@ Examples: devices. :since:`Since 12.7.0` (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.7.0` (QEMU/KVM and ``smmuv3`` model only) + ``ats`` The ``ats`` attribute with possible values ``on`` and ``off`` can be used to enable reporting Address Translation Services capability to diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 9880339e42..42a0faca88 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -14758,6 +14758,10 @@ virDomainIOMMUDefParseXML(virDomainXMLOption *xmlo= pt, &iommu->accel) < 0) return NULL; =20 + if (virXMLPropTristateSwitch(driver, "cmdqv", VIR_XML_PROP_NONE, + &iommu->cmdqv) < 0) + return NULL; + if (virXMLPropTristateSwitch(driver, "ats", VIR_XML_PROP_NONE, &iommu->ats) < 0) return NULL; @@ -16879,6 +16883,7 @@ virDomainIOMMUDefEquals(const virDomainIOMMUDef *a, a->dma_translation !=3D b->dma_translation || a->pci_bus !=3D b->pci_bus || a->accel !=3D b->accel || + a->cmdqv !=3D b->cmdqv || a->ats !=3D b->ats || a->ril !=3D b->ril || a->ssid_size !=3D b->ssid_size || @@ -22773,6 +22778,12 @@ virDomainIOMMUDefCheckABIStability(virDomainIOMMUD= ef *src, dst->accel, src->accel); 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->ats !=3D dst->ats) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Target domain IOMMU device ATS value '%1$d' does= not match source '%2$d'"), @@ -29271,6 +29282,10 @@ virDomainIOMMUDefFormat(virBuffer *buf, virBufferAsprintf(&driverAttrBuf, " accel=3D'%s'", virTristateSwitchTypeToString(iommu->accel)); } + if (iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&driverAttrBuf, " cmdqv=3D'%s'", + virTristateSwitchTypeToString(iommu->cmdqv)); + } if (iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT) { virBufferAsprintf(&driverAttrBuf, " ats=3D'%s'", virTristateSwitchTypeToString(iommu->ats)); diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 2c017738e3..0c79bea015 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3106,6 +3106,7 @@ struct _virDomainIOMMUDef { virTristateSwitch pt; int granule; /* -1 means 'host', 0 unset, page size in KiB otherwise */ virTristateSwitch accel; + virTristateSwitch cmdqv; virTristateSwitch ats; virTristateSwitch ril; int ssid_size; diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 710a891904..59b6c5f6d7 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -3207,7 +3207,8 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) (iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ssid_size >=3D 0 || - iommu->oas >=3D 0)) { + iommu->oas >=3D 0 || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT)) { virReportError(VIR_ERR_XML_ERROR, _("accel must be enabled for iommu model '%1$s'= when setting ats, ril, ssidsize, or oas"), virDomainIOMMUModelTypeToString(iommu->model)); @@ -3222,6 +3223,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ssid_size >=3D 0 || @@ -3249,6 +3251,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ssid_size >=3D 0 || @@ -3266,6 +3269,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->xtsup !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->pci_bus >=3D 0 || iommu->accel !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ssid_size >=3D 0 || diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index c8f1fe5547..cb773ad319 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6481,6 +6481,11 @@ + + + + + diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 980f0495b1..87427b86da 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6311,6 +6311,7 @@ qemuBuildPCINestedSmmuv3DevProps(const virDomainDef *= def, "S:ril", qemuOnOffAuto(iommu->ril), "S:ssidsize", ssidsizeStr, "S:oas", oasStr, + "S:cmdqv", qemuOnOffAuto(iommu->cmdqv), NULL) < 0) return NULL; =20 diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 25527ca2cc..0e860a286c 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5829,7 +5829,6 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMMU= Def *iommu, return -1; } =20 - /* cmdqv was added after accel; do not treat ACCEL as a proxy for it. = */ if (iommu->model =3D=3D VIR_DOMAIN_IOMMU_MODEL_SMMUV3 && iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT && !virQEMUCapsGet(qemuCaps, QEMU_CAPS_ARM_SMMUV3_CMDQV)) { --=20 2.43.0 From nobody Mon Aug 24 09:06:54 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 1786474733592634.4917656589929; Tue, 11 Aug 2026 11:58:53 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 455193F89C; Tue, 11 Aug 2026 14:58:52 -0400 (EDT) Received: from [172.19.199.10] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 78C65419B2; Tue, 11 Aug 2026 14:51:30 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 862C241937; Tue, 11 Aug 2026 14:51:18 -0400 (EDT) Received: from SA9PR02CU001.outbound.protection.outlook.com (mail-southcentralusazlp170130001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c10c::1]) (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 CDF3541908 for ; Tue, 11 Aug 2026 14:51:04 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by CHAPR12MB999250.namprd12.prod.outlook.com (2603:10b6:610:300::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.292.21; Tue, 11 Aug 2026 18:50:58 +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.0292.024; Tue, 11 Aug 2026 18:50:58 +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,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=wYBk6TzmyrZQnq7bqOHock6F+SQh2TfD/CEbrAIF6WydaD/27IPCh3z2WFdEoGqaUczsFb0XsMCnEGdrF4K1Ngm5YJpDIB8+7+GzQpT1+sBpy7UAuiGywY7dfT1Z1QU7XiLUUbs28I8TiB5TWIe0QHeN00L9ifaECByIo/eJrGyc+f2VnKfkDVYokXRlmPGauWKrsp+kKdURgQnfhBF6j/H1QqAtlqYYlspK94j4hOt6QZ2HCzvlPvw6RjvQQOOs9E1t1UelayukmzrsZ+pnHGWw9XNfjsJ6oppxZ6p2WSX20quLG8dSYuEe79ihRySd9XPYzQDtznHP4YojkJodlA== 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=fyZabcdCAY1Iiy7FCfRm42uU8UuGUmw6kgYgIckrCP0=; b=TyMmhjYB3VOQRxkfaYDopFR38AtxgwoEdmBax+IlPLLZAZumzq9Wtg56HGNLr/6yD6AGME49c2EF3Pg7ZE5YcTKWuDFxKRgRp2cC44Gt0LEl9EYiswnNlN1udd7kcEuZT1xbXCHX41B4XUoLycJkxc9Wlk9cx1+9HYlgYP2ZwyfkOr9OP5eNoGX+yjnjBT+1KUulU/Xq6oUdePktXdd4PpI+DJwIHn52XvNkMxRuREGbG45GzIwWhj1rLtRI6STktpTb8Bwyz39KzqI+HYAf6iUsZV72XwwAZ3kySgTrkz4iPn5JBEk4mPbz3IhhlC08J74hrkg/qkcIAmaeH0vujQ== 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=fyZabcdCAY1Iiy7FCfRm42uU8UuGUmw6kgYgIckrCP0=; b=i0okRK6kORX8nO02vg6ntodVTeYsmlM+AyxXxIngixbUfTeJ3Pabt+aeanhxKC1Bq5qdQSa+5lRsF07bWcLX/MWRob+niISQLsz2NRUPruxsXYgldu1+VBCr4/gzkkPlS4xbyo3mDvNGow3NTFq60yjBD2AiDWAOdyNLedyeLXIE6M11KusZmrEFGWFseyf/D9F2gHCviomPQi6APOM2YvTcmbgRMVh/cs996+aRuklb0V+B+dGh+loXdGzyhjS0uBDReQT3HePmeXbDuRf1f+CtekS/ZiagUBY2P1gU8YObnsfY/76pf4toB8BminwjLK2g9nC1A3f+NeqijV0GMA== 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 v3 3/3] tests: qemuxmlconfdata: provide cmdqv sample XML and CLI args Date: Tue, 11 Aug 2026 11:50:46 -0700 Message-ID: <20260811185046.26005-4-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260811185046.26005-1-nathanc@nvidia.com> References: <20260811185046.26005-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0188.namprd13.prod.outlook.com (2603:10b6:a03:2c3::13) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|CHAPR12MB999250:EE_ X-MS-Office365-Filtering-Correlation-Id: 59cde839-d311-40a6-8f5a-08def7d97b3b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|23010399003|1800799024|10067099003|6133799003|56012099006|11063799006|20052099010|18002099003|22082099003|3023799007; X-Microsoft-Antispam-Message-Info: 8wK3Olvg70kItl1pMgt8Rf/td49D4lqpyyDjBAikD2NxJbQ+Nmic2VbKWZCauN2pj5RqVDCjOLe7llrdny5+MNoNIXT4l1zmVb0U2L/k/O6SkqmqpmqSX+kQluDuf+rVDF8LrrETqEaKF6Eowhj/Ck5qdZup0ImEAdMf/0bm7c/OEzNr1L5T4ttnuSKAMYWcxOXOwG8sUcxmn+8brbRNsziuDIiZr1L2MtaAcO4fh75DK0KG/3mWS5xKkMXr4hh+W2YE3ZXw/GX/1L2rO+w0ZNmZ981BmhJRW+bZdk7vtCrYNu7ain7Yx3LaDwHjGw+T4Cl02HqJqx2BEN0+XTTQ5iPZKpieAqSY69l8qHkJa0RfQeisvE1TXWYJde/BNWysaF/ViHB/SU/WiW9+4RaSuqFSbOyKnNVtbo1/RPA/nFZDqFi6jh1lu8OSO6b/Mg0LEELkbVr9WIg3rahT9Ktt6Jtc3im7UdXV9CTsz4mnYZNzma500tmnTGPskEmmWOVKLoo/icDBoKpu/2vG6pifzErVkCKuZF4YzoQE8rDd5QoxGFLNvbsCgNswwpZ7F9Ra1FQ8396ua+f75MN1R/KZIip9FvGM0Mx6qAxizHopqCpflLV900bgh3cYw8lo2ERqEm3On0V7V0FZat/mwd+w/EdbWusqi1T6BjxATyDHkIs= 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)(366016)(23010399003)(1800799024)(10067099003)(6133799003)(56012099006)(11063799006)(20052099010)(18002099003)(22082099003)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?E2we+pIEW7wS1lKwxZjBORk1nv0e/Ol2224s5hrPpeg98jSEyc4DqR8pKL4k?= =?us-ascii?Q?6K+W5WjBBdQOvRLHC1PhfITXfPwwYSy9Cxhmjjq4oWjbjoOdoOI0eAjC/k6i?= =?us-ascii?Q?GICeJffOHKRJeBIN5Wj16qR04dHLzC1L/cEH7EgrkSfEWbldzhd64PFHZMYj?= =?us-ascii?Q?RTrTMWs15g374anrXSId7XMGTFY2yEJGdvhHLXyEc0LjVQ23qhwwKS4sZ7Z4?= =?us-ascii?Q?9AHtBzATcygExURok8hTe2KYHf5Z2VMMKGtZdy4yfdEscnvq/cbOWrg9KSt/?= =?us-ascii?Q?Aa1nmR3uHte7B2RTfODHZ3B7/DLKcPLLxVQv0mjNzaAz7oP9XEvWRGJuMtXl?= =?us-ascii?Q?hBoxedxGvVyirypRhMz/vU9zmxMlPHDgXAiXqQD2O/htqC6jJu226nasYGLi?= =?us-ascii?Q?/bFT0CyErkv25mmlObUUhT9rIB5PqT9pUP/PwLAkBKHYEprTyWnKuc9vfhPU?= =?us-ascii?Q?HgIekzfTrru4UVdGSvnrveCF9b4I1UdDAzjCAq7qOgU3B1Qqz4PuMYVmKipc?= =?us-ascii?Q?bkEVazfvJrqXKXBdW74gtSh3FQ2aJ83/ta09BgbnnelY6ZTOdUyJI3itp5lj?= =?us-ascii?Q?0uX1s7T5BstMtw8Q6UZZZI2+ng2NPrfEhbvThkJa9jkQGNa9+FSazs8/L2wy?= =?us-ascii?Q?BzFVBnKERJP0JLj3Cggez83o3dn8HzAsDwElfRYv2rrtFEcBOWeZqOBrBlk2?= =?us-ascii?Q?h6vFiy0dC5VnMA8kXLzniOHOZgm3Ue6A4+kwkcNzL9b/pOKoCF/JwvBLZfX4?= =?us-ascii?Q?M7zNSZZyVbiL2zoZhtUvN6mmqVWVKj+IM35a+QebfukR0VW5aGOUx7O4X4w8?= =?us-ascii?Q?0i5z5+Td3nf3G4ILXsKUxramf6ug7DDaSFdLU27S47sHpcWLeMEtcilKZPbr?= =?us-ascii?Q?G0cH09/A1VWD2UwiJKgK+p1FlpLl3fwM2EebxY/4sG5w0+W496+lSCKwmD2T?= =?us-ascii?Q?pUBZvqJgsUX5H+SkcW/Mpw3xDCoJi4nh9WoS+8AVM1F2WwvOSIEc7KmVZG7F?= =?us-ascii?Q?/GJTQDwXDfIWeLhfYxm4GAaXhGjCmRmqIKhYDv9BiI+px32uxV+EuOXYXUrd?= =?us-ascii?Q?z/p6osGxWg5Wky/GdxTgXSg87X4sZwbt46sjTghKaJw1+qT6F6ntEpd/aJE/?= =?us-ascii?Q?OXDd+kkGXQKlL1Oh6VJY/nrQcmgGjQBUt7wDdZ3FXc4fhKo3ElbwEV7MdesY?= =?us-ascii?Q?8Ux03eFNR+XTp/2bMsrV0gexzUuKiXg4DnLVDsLh2JKryDAdDFaEgl4yEw+w?= =?us-ascii?Q?x9QERgMABNtz4GdfR9Mcmsu0GZ9lFVUPuZl+KCHh/tQCr1HABersvHq3OU69?= =?us-ascii?Q?Mo1vbN75nctcOC+xFeuXD2MVN/Pqn54Bp6oevjo+wvFiN5QdtkXhY5tpYKNd?= =?us-ascii?Q?L5+3xGXQUUJRABXyqUL975OVBeQY9bNSgddyc9pfya3teLVYNs6racSVmBhs?= =?us-ascii?Q?GOvVoZ+YnTlYHoRu3lIhhEUGv8LtZo8UIfhN7+Nio24uD8bZO7/z/qi2r5Bq?= =?us-ascii?Q?LLlYAGbf2XcmhNw5eCDYDIk5S6dCVpQy6VsvnC12/nLxct6/VeIjeyEnditS?= =?us-ascii?Q?cz1l+98yndvmNyYx2bxsaf59iOC3GKx4AINxzgUgKjX59ifDxi9y/ZD+GbYJ?= =?us-ascii?Q?jT8s1Wd29eRa48yvff2LFGYzB6ew0KC4AVy3pFqhq0/F6tu4GZwgs2y1cSSV?= =?us-ascii?Q?uZ9dZbQlMahnwhlfgYzt4DRHqH9VZiU02DXnjXx0+Ust+Q/JwGBe5HlRuoFU?= =?us-ascii?Q?8eJezRGINg=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59cde839-d311-40a6-8f5a-08def7d97b3b X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Aug 2026 18:50:58.1546 (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: apBo/HFWnVv/5fNwfFr9WhAXI41zoMcZugiAYZWC61DUymTClvZQtpbzJb9uMoZPk71HGsPpCEN3bb4Ll2PDgg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CHAPR12MB999250 Message-ID-Hash: UEO645AETAE2AWNDTB6CLAWCCIUOLLFV X-Message-ID-Hash: UEO645AETAE2AWNDTB6CLAWCCIUOLLFV 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: 1786474734812158500 Content-Type: text/plain; charset="utf-8" From: Nathan Chen Provide sample XML and CLI args for the cmdqv XML schema Signed-off-by: Nathan Chen --- ...v3-pci-bus-accel-cmdqv.aarch64-latest.args | 40 +++++++++++++ ...uv3-pci-bus-accel-cmdqv.aarch64-latest.xml | 59 +++++++++++++++++++ .../iommu-smmuv3-pci-bus-accel-cmdqv.xml | 49 +++++++++++++++ tests/qemuxmlconftest.c | 1 + 4 files changed, 149 insertions(+) create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-cmdqv.= aarch64-latest.args create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-cmdqv.= aarch64-latest.xml create mode 100644 tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-cmdqv.= xml diff --git a/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-cmdqv.aarch64= -latest.args b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-cmdqv.aarch= 64-latest.args new file mode 100644 index 0000000000..0ced2f41a8 --- /dev/null +++ b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-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=3D@mon-fd@,server=3Don,wait=3Doff \ +-object '{"qom-type":"monitor-qmp","id":"monitor","chardev":"charmonitor"}= ' \ +-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,"ats":"on","ril":"on","ssidsize":"20","oas":"44","cmdqv":"on"}' \ +-device '{"driver":"arm-smmuv3","primary-bus":"pci.2","id":"iommu1","accel= ":true,"ats":"on","ril":"on","ssidsize":"20","oas":"44","cmdqv":"on"}' \ +-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-accel-cmdqv.aarch64= -latest.xml b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-cmdqv.aarch6= 4-latest.xml new file mode 100644 index 0000000000..445fb44ee8 --- /dev/null +++ b/tests/qemuxmlconfdata/iommu-smmuv3-pci-bus-accel-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 + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +