From nobody Mon Aug 24 10:09:45 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 1787078218461468.1832180136073; Tue, 18 Aug 2026 11:36:58 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 4566A418C0; Tue, 18 Aug 2026 14:36:57 -0400 (EDT) Received: from [172.19.199.13] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id C058841BB4 for ; Tue, 18 Aug 2026 14:30:49 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id A59113F89F; Tue, 18 Aug 2026 14:30:27 -0400 (EDT) Received: from BYAPR05CU005.outbound.protection.outlook.com (mail-westusazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c000::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 AFEF43F93A for ; Tue, 18 Aug 2026 14:30:26 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by CH1PR12MB9621.namprd12.prod.outlook.com (2603:10b6:610:2b2::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.8; Tue, 18 Aug 2026 18:30:17 +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.0339.007; Tue, 18 Aug 2026 18:30:17 +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=xrL7fO+ycdMDm24HOE7jajqbRno1suhjsmAZbJDf1gm2lVsccsHfcfocQX5El+VYvy3oQhnG66tMaQb8ab9j/YyE9u8PqG/XJv27IshiClg+TfPyeaEHRo1hOCtui3acNOfFT7nUbt2XjUMgz7QyjKHujqBTD32hS6DQpwWfMPEnd7T1b9FVS37u70L6MsbNQAJmca2gPLtViiXnOJWPvD0i+rWXE2onhqiKExmY+iMHfwY3I8qlKS18Jeyqo9X+UF5qlokEwyMOJrJ4H0YPSapugmjvZT+HnTEx8nNaRnBTzQpk6hAYhQcSsLaqooXfoqgxeoIKlwzbMsY4LglfZA== 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=SyGHk8YZxIpSKa3XKTwau5iORuPxgIcpkxf4b8FtkyI=; b=J9qWbZdyIfLyiLcHay2MRn/i5Q84qj4r1rq0OELzuxGXYY8JNXE8w3lTMOYlPTvjE+6IoTS9xxH3+LT3PSrUW3O82Jj25tbvpuG6obxVINvWhZv+h+SGF2EljqkjBPd3YJO4zvOPiwLUhFGMnBlNT0UL54fRGIwk3+rE/p2pwJXILzNLG3fW9Myor5Q4pBvON1/hGqfD7iR15d84gE13qeXOW92+Z4fV3DU2Ssd5dJFxEFx69b/Fckj77vrgoxs3XcXdbwdloCiqm7sa5Ub9IVNUz3iAzeWpNwccBlz1kBlcHZWtoWKKwNSrJPPXt22quEjI7KbQn1hFZUtR67/oCw== 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=SyGHk8YZxIpSKa3XKTwau5iORuPxgIcpkxf4b8FtkyI=; b=GBUKllK+sC0CMJ3rlE4w7dD/KGKxLS34m84ju5DUdEILjY26iborTEdOp3f/2zeh4qvI7Jde5zqo2w6i8NnpMqvKKeoXuAGrAxCgDew1uFFtpOisAZarn9nBLHAPbMhbEC6fQ8Q9Ebuwr+X9v34nWCRF+Pds8pXa7j/GU85EAw6BfHlllyw0EMLeijh1pHLQ/lpY6ci6Sp4bndZJaZndezRvLsDOaV/2BCKUBltP5qbqrYi2c+UxlIWjty4d6rbwfJvlQ0NDUDNqkjWTrRezYpjPlatavydo073o7lCV6mQoQ8PazgsX9+S5ZJ1Sl7atcmDRQ1K3o7tOecpaydL3+g== 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 v4 1/3] qemu: introduce QEMU_CAPS_ARM_SMMUV3_CMDQV Date: Tue, 18 Aug 2026 11:30:10 -0700 Message-ID: <20260818183012.1260768-2-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260818183012.1260768-1-nathanc@nvidia.com> References: <20260818183012.1260768-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SJ0PR13CA0150.namprd13.prod.outlook.com (2603:10b6:a03:2c6::35) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|CH1PR12MB9621:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e6dd232-05ce-4972-2d0f-08defd56c066 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|23010399003|22082099003|18002099003|10067099003|11063799006|56012099006|3023799007|6133799003; X-Microsoft-Antispam-Message-Info: IcPKTTjf6rLY3YygPnRMKlyf1ThqSJNrP6+8a1NMISKgF5eG0w3n9kHXNOc3Ih9KAGrKvhOyT6xS2LSTwpFv+MMm0JAeheqfq9mU0u9vfSQmYZumU0NgfHcTwzVmkOIPEpN0S53BYHrmFde7gp4wPt5gJeQqD2GNfLgjDY82aKQcF4IajvXY92FhKmjqBUpn+ajetbFX3O+HiLpRhSqLAUYwlMb38XIN9OOuQbsqrv3vXytTWeU0L11bLOjR7Zx4XxlTYRo6YsJOstQ5w1Th4iMmhgu8mJQmuoBX7pHe2ufIQDBUv7bKRVujD4eqm5Y2mu7t0HHq4B+c7+qTaqZIkUAztIZGNLnkCdyZbMEfke/y4l80MDmiEzwVEe683MTuTn8su2MBPGroHN9N1Dx0S1IG3d7A9iZtJcDZmkXZi4gtQ1M1jGmc0T15R5N5pypvBMJFfviW29aXALmsULi7P+lJIWbmQ+IEkfe02WfudCK8wP9jmVDmcQLNjJca+fdn85UDyXIj8RExZWe5c1embGWH5MOLaGEvBZ7aycFR2+VeFw+CrB4/jpVeYLk/kOh9AF7dnRLutNTi8tisjonv9UeqVr1CyEZQbXc2VDSoJZdlphOQKSbrEgwdhGz3MqfTbNaOUHy8gKsu9pUZ1jWbfkBuYhVPf7br8Sj+AFM5sCs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(23010399003)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006)(3023799007)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ICb5Iun1TJL6gwPkYauK19jKsz3TaMgHBR0gcAb5IxbJMvn4kGw0EASSdK3k?= =?us-ascii?Q?MElHAEByf3MW+kS1JQl1eEUVSbZJw+LE5F6CjHfCLPu7F36B/tCo9qyLChVQ?= =?us-ascii?Q?Ok8ubOkLhn811YTv5t6lCdS7OZwWBRcPFZYurz5xpHVGaF7ZG7MwhlSTnFSJ?= =?us-ascii?Q?PYWr1nlZlTOFBLU59xB348qevLt8AoDfPxgHOI1dJ4JpnFUoWeU4t7jUx+/O?= =?us-ascii?Q?ojblwrYuf3vt89IuMoIloMyJiTsDqbm0LMPSc+9tcMAgG5BJJ9bUNSNCpYJn?= =?us-ascii?Q?4xN6Ud/Bz/Rad0dV4aI+zRyfEG9OGsxXmG9bztMmrVqdqDowYCUpoCWT4xHO?= =?us-ascii?Q?8XyIRDWRBe/2rXjWXNfc/Wo9BRXxMTGPeOwlYAd375Ak0ZgawyvGzxdu7xAT?= =?us-ascii?Q?O7TEvkYpG1+eI3NtSyGPBq0yUxvSAmGtwtQh52gv4DyFbHVH0Hw3WnPmRTFx?= =?us-ascii?Q?6CjtkDrCdczF9eVLsmzfz2pMorcTbtlHFheRgNgoSnThBTvZWm9tAchkpwFU?= =?us-ascii?Q?9K0Road3xe5m2CMVtNgBlFlr/8iAM9zW0KVxKUQuO3QO0HwXNrSdjFUVIOiw?= =?us-ascii?Q?a98ddnIvsSK+gtuIr6a4ZM6BElfFAVt+zeEiQWBE+5zIr0ogTzSNVZaA4SNv?= =?us-ascii?Q?0lzHXeWqJDYnP/OzEttQvN5WIeuj0W4Cp3MNCxxgJmjshiXoKNrFDzIbgTzJ?= =?us-ascii?Q?qxCmACB4Y9vIxQSK+3e2SAX9gGY3Jf6+tvBWP6z4nCfo99xlEpxBOF58EClq?= =?us-ascii?Q?0xHcw9oNZUTPsDacqgcWDMD0P+jQINIX/zlblIcWBOUsc8V/l/4BiVuCKrp8?= =?us-ascii?Q?51Y95tNTZ1LfzuPKPxnTsIQUJhVMyrtoFrGYGrFIXCE6MBMitJlebMbMYVVC?= =?us-ascii?Q?ABc3U444UIj9dgSuQ3Y+h1N5P30Sq4GAsJBH+O1XSCd72dMDe0AiIcHA67q0?= =?us-ascii?Q?VFb7sLi9zveAwv9maNswv/JIZQ5Kzc4sf7YtNT9yo4da66z/oxlvGczMdHxi?= =?us-ascii?Q?UM0lEVExEj6SvChR/jnVkhwprHo0JcueHOAPuVOfXiIEpnaajJElH9RxdDVr?= =?us-ascii?Q?kHa2Kj6eZTVqYdgDTQWJ7YCcEcRPD4E/BwiEfGtfCXrbLBfAhw57TZ/B+bvL?= =?us-ascii?Q?jti55ORJoEZMXx8VHXsf7vhtJJIp/w48si6zs9HWN0zc8vpL3IRSVKLsscDn?= =?us-ascii?Q?FBIDxAi7/JkIkZdZ8+oz3jbSobjtSB2G8zLYxFldmfpv2cJYKVvGTtWRR3Zm?= =?us-ascii?Q?oDl2eQn6nlV2iV5xzTGa4i+X+IW+yYHzfkqYSTmYPxFp0J8kB3qjRdVakkCU?= =?us-ascii?Q?68EZMXXFVSmNZoUT3RXHrRXQJI0XaLo1QBhKG633yyKZUOAfYyN1I4c+RZqO?= =?us-ascii?Q?55YesxfajpOcDqufND2UJDwRZRD03Z+pZJgHVh0vVbOfbN0cG/jv85skfVpK?= =?us-ascii?Q?Uhga0SaBRpZubKwtSboYjktLZgbBluCUP0O3fAC9lA3auBwOYHT9EeBWDwVO?= =?us-ascii?Q?hExkEruG3UMgKUvwHwbBpWjC8Nlo4ZpKv+NtZD0VMztkY1JB+2bRCSQVFHlW?= =?us-ascii?Q?+wBN7BwHfSGbdWk4EoJarS7HHCZGJpNmzV1DI6dUxCb5Jm0rrzk6nFG8ZIEn?= =?us-ascii?Q?N1rXm+b4TMrM0eKkhy8Ph/oNGkFipV8QUmlMePOKFUHckNdfaDALGvHavMuK?= =?us-ascii?Q?dEHmVDPWdvQmnkub3FlrXI0+dH6TSD56r5rZVebY920X9SppS7hrjxwd0toB?= =?us-ascii?Q?vMFzWxH9RA=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e6dd232-05ce-4972-2d0f-08defd56c066 X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2026 18:30:17.1193 (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: Dt3y+2KKvGgnqk4SQpzYhXaonI8sDF955WD7/tMNfEqdQG5H6Avgl5XknBpBiYiGhM0exJaVtc6wIyA58w+iLw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH1PR12MB9621 Message-ID-Hash: EL5XJDZVGKLA5V2P3DEWECO5TIFLF7H3 X-Message-ID-Hash: EL5XJDZVGKLA5V2P3DEWECO5TIFLF7H3 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: 1787078219366158500 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. Signed-off-by: Nathan Chen Reviewed-by: Pavel Hrdina --- src/qemu/qemu_capabilities.c | 4 ++++ src/qemu/qemu_capabilities.h | 3 +++ tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml | 1 + 3 files changed, 8 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/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml b/tests/qem= ucapabilitiesdata/caps_11.1.0_aarch64.xml index 7a24abeb5c..bf9b35547b 100644 --- a/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml +++ b/tests/qemucapabilitiesdata/caps_11.1.0_aarch64.xml @@ -191,6 +191,7 @@ + 11001000 61700287 v11.1.0 --=20 2.43.0 From nobody Mon Aug 24 10:09:45 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 1787077948507167.98878780866482; Tue, 18 Aug 2026 11:32:28 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 2AC843F933; Tue, 18 Aug 2026 14:32:27 -0400 (EDT) Received: from [172.19.199.13] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 47DA141A07 for ; Tue, 18 Aug 2026 14:30:36 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 55DC23F93A; Tue, 18 Aug 2026 14:30:25 -0400 (EDT) Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c110::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 D0E2D3F89F for ; Tue, 18 Aug 2026 14:30:23 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by MN0PR12MB5858.namprd12.prod.outlook.com (2603:10b6:208:379::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.8; Tue, 18 Aug 2026 18:30:19 +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.0339.007; Tue, 18 Aug 2026 18:30:18 +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=XM7op1+7dZ2e3ca47yeNdZuDHy5ooqp/bCj3r+yIn7ILyXEuSrNfHpmqh8PCEFnQQJN7yvvSSOqFgCWBYYEcxuZOln1+pfXiE4oFVkRF5NeJdO3oBUWQGQ/cm/5Ma4wipxlPm4dExnEJtsU7DQT02KhrGLgNybtZRpmbUVRKp+u7qXYJHhDYC6j/KD6HljuTIf3fmnQZTvepzJ5l8GftYLTmGUYROtiDfXnpIPpDvsdhQve7h50Y3q6WiUYfjLv7LPFX3BxBbULAEBErwzzZJx8HwvWmfewi8drbdVrA3IpVqQMGaJf9gtK0C1JllJrdWzWsG50pI1alZPob/960/A== 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=2ZjfkiXGs3ktTBJiRWkX/IAyyGagxz5quLxYs3hphuE=; b=l3CtniA5jyczRucm4B/Hn7OMblHyOdNR4PVRiYZ+XHokCMMBwavQesJc/F1EIIxK0gN9FhgCBUT/3aEK4MHOytyj5bvhMr9uQocpm0OudIbd+1AzNyGhuhaDl8JDUz8DVOhJw3V3BUgHAe7Uj+yN7i3zXaksDG3v9g2Uu9q/PMT/Kk0AsV35oZvSuIRQYWx1pSz1SyHVTt+S+WMo0qV5G429Yf7aBW2Rw1lFEQaeA+X+ObuF9evhO3WnMQM8gu9t5bpFudGbGetTt9vlNtNIt79Ss7h+YakxB/x6gms6D8pCVjbPniPRpyqDme5wXhwh+Z9hje3rjMWW+EQP+BBkuQ== 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=2ZjfkiXGs3ktTBJiRWkX/IAyyGagxz5quLxYs3hphuE=; b=lR9HFFKtYn4TCJWy+AtHox27s9vyFiQeBUrTFR37kj7WMGtCVQl7ucoyQvv95qrGdl4KCqVqTZLLxsRy4be2q3UM66CMi6odOVbjxXwWsFp2dkvstNi2JlAe12B+IwOkRhXKBm7sfQuiZzEbHuvtUH+zFaywnPSwGS17msuhW2Wt1thjIskzFFDtvrw2zdPL8y+7piGHGS8EE/7fhz7+2R9tADl6U4tDEihITLAO1ny44HhBNOPRwoXgNJY0LYkq048b9KBx8AESMGuZWOa8kWfP3/hnEy3jvcMRIN5AtH/qxOpYoXkZuzIWvRxbamag1drKwbA8BVzFp3XtpzKTkA== 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 v4 2/3] qemu: add IOMMU attribute "cmdqv" for smmuv3 Date: Tue, 18 Aug 2026 11:30:11 -0700 Message-ID: <20260818183012.1260768-3-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260818183012.1260768-1-nathanc@nvidia.com> References: <20260818183012.1260768-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY3PR10CA0008.namprd10.prod.outlook.com (2603:10b6:a03:255::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_|MN0PR12MB5858:EE_ X-MS-Office365-Filtering-Correlation-Id: f799aa6c-e109-41f1-2197-08defd56c14b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|23010399003|22082099003|18002099003|10067099003|11063799006|56012099006|3023799007; X-Microsoft-Antispam-Message-Info: NE6Bf7NIy/nNoHC+FN1co06CFRHY3mzCQQxovlc7uoI+Sl184jD9V4gcPSJhitJhRy2MXKtBTXTp3LMbwl4tyScmWocNj9Xas95eJcWXFHrXDrJvJENEpWXzrmPh0gvbVnUCLx6PdVZm/paTahGh/VSbH0FnJcbxUg/pBbwqHAglrL3xhP7EqcQSdYkbvt7rXyus1hdbTQoMAM4eg7wfmyH1wDLGHm7nbXbHCcEFh5PR8OcC1OuL8YbC4+9D+tBjwPFmwr36ybE+Ap5FM/BiNnL3iCyswVABJeP9PqEWcLCnKlW5piHbJMj0k2i+y1u5vNtDB6Fz0JK/LWpw1cK+UJiUEh0fXyNjT60+B92C0g9H98b5hP9PfPNT6/W6bHyEZCmEs0Yl8RZrMKAHjXKZ4iy9ro9TdS7ddkMm7wD5xYtyTRgXBKrPNZRR5N3Y0R5rZFgfJgtWqOcn/cEGN61z0Gyu7hWQuGpCyQwXLZh7ikuUnbIo83zGQSvaMycea+k7x5ly0K8jnM6AZ3Wh7D4CSp4LGSYnsIY+lUn7hU+Kt3cO7mDDYrmduHlCCm1L6RcM+KpndIRudrTInQUXiSS7vt/dZLGZLpNr1+onTi/GwV43mdQTNH+OV+IPx3t/5kdkBqbwfAKI7MkXAzxf9qTxZNrR0O8DtL+Bl8kiv2TufBI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(23010399003)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006)(3023799007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QVCb0Yxtw+ROtfjBhgcB8fW7HcdF2NMr+CfXJwBjsYWd2ZMjGvNHdhByEpzW?= =?us-ascii?Q?5yYadB67Ah7ZPyYYTA+fc3L57TsEXncuh+MPmYwIMcxAAm61G2mQhfaisLbG?= =?us-ascii?Q?pjlWjeoCQj5nGLKKJyqn6kFOsWeURa4a5IpuOsMQvUX+peVIg8k2JAxHHTKh?= =?us-ascii?Q?MtIKD7yuGwiTj1lDFxrUmW2kn2TW0QtzsIPaR2TVwlvSEcyQqYM8vQiAPl1n?= =?us-ascii?Q?AwvK/cVZlQTWWyd0P+YOyzeOj/40c1pfuaNTKhzrY0vsTw8NkzUenul7Paz5?= =?us-ascii?Q?hES0Ulen63eav/8WT5bUOKszh809OOYyK4BLQElYzRYSwTmuUABu7vGaW49O?= =?us-ascii?Q?GuQ6q4t6adTN/AEioI/PVa1G/O6rQklyvEVW/3zoVXlcQXC0yEtkNzNUTFlj?= =?us-ascii?Q?3ttNO7y6aZVrgyTDz0DZAiCB2qA9Y2IKdbWmeu7ep7lvDbzQs5X8nMPaWqbI?= =?us-ascii?Q?uVw/LcVU97jtqWT4pyYUZfW/STlNtKJgHGiAkabcZMc0BOEXpIHEQZ4AM3hU?= =?us-ascii?Q?AGz/BJYFLnPz77VpCyVC1iJEfXG6a1/rhzfR2dYGdDMGLPdUiPkbOTwNSq9a?= =?us-ascii?Q?vCXsrFFblJ/T6U6tcuLDbDGV0o/iXQ+sw7Or58AsBxhmMeEQW1YnsUh6fPtY?= =?us-ascii?Q?Xae8Y3k7MURbtRzzLJY+n2ly35jb+feUG3q/Rfm1InaPs8nmKtXRjTCYRkJI?= =?us-ascii?Q?Rha4ePUUolzQFrPcIVXvVG+6cxNpHavhS5lg3bJPK8b8aYfTh4rFqq5jeB7s?= =?us-ascii?Q?IQTR9QgML0dWPvYJwi+ko6Rhp97IiMy/rtJQJDH1Yosj2I5tgIiog/wtSIAC?= =?us-ascii?Q?y+utET8/b4xTKNt5Bo2JVCEwm0y8ItLnjnWNwqcuLoc9dq1F01WxxSuek9ls?= =?us-ascii?Q?T1oig4FVV8GEWjUowtfBHONcjgsgCcpUUsHe+g+WzOiHAJRZT8aBYL+taT4W?= =?us-ascii?Q?VlEcm+MQ/dW3eRzbkZMW1WoDvNLRdgvLXx6X66AEnJFej/V0Nm52rSmhVZej?= =?us-ascii?Q?meqZP4XFBIedUnWcHK0zVw4MG/0IfeQQpDRIKaqJx4ZBQrp7rpR0Y9MNHI14?= =?us-ascii?Q?Zd5MeyIEMV1ljScb8rv3sJSfGWygv9vel7wB4uCyeOnKomb1gXMTkI9rd5bR?= =?us-ascii?Q?erbAUHE2d7qEEGSvEntW+azu86gynkPZPYj4XyNZK5ehqXYXbefiI7PwxCVl?= =?us-ascii?Q?4rDjy9nB0rhEmRzvW41kNqzgiwX7EoiViNtyc3p6ruP079/iI68NFtQA95uu?= =?us-ascii?Q?EDd8PbwNla8aBVrRjPD6m+tCfUm+ty1jwsyIAAeU6+tIpkigScnziTNEuu9F?= =?us-ascii?Q?e8EWhjjXcHsOrFJYI5T28YKy3Gp3ZXXA8LX5b3hzzf+2jWEk652L82LTNALm?= =?us-ascii?Q?uHA2lG2EBJk+tCYgVBA4jsWMr67R9weFVizsnl8gKC1gkg1a8UvYeFTQYNiO?= =?us-ascii?Q?SIbAizDoKXECG8kBMWLe09SThXQNGyBgqd+BzKU7hgwJU9942rPho0udkUyL?= =?us-ascii?Q?YQCmcnHy6P2xDxKcqkDO3x9mBi3PwaOMkJXvDOdQakro9b7oGwXwnx9WZDMn?= =?us-ascii?Q?sdcg/5ddem1CZNqkDU1TMaOLOdsGSAyd6RkvcWBYcpPt11Qk7Tbz2UIvqL8F?= =?us-ascii?Q?Qe7N+Em3+cSRDlgdmA1NqIFnF02Kh7eWsAg4dN4SBl8hkk/2uTqB+59BiDNi?= =?us-ascii?Q?cCzuPkdSSHv6f4jVCDOIvI3qbS5DTX875fgkk8XBNQfv46xHvTQVAAgLziuD?= =?us-ascii?Q?4FKqIt1r7g=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: f799aa6c-e109-41f1-2197-08defd56c14b X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2026 18:30:18.6214 (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: +p7wio1yTAFCHomin/IoLzgpFYEnRObiQ7GWAENvQHPyNLNcCWzZTBgsCHyQwZvSsgsuQ7yyFjsUpw+GA3Aayw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5858 Message-ID-Hash: RLJVSLETXB724SDJXEO7HJ2USI6KJTZW X-Message-ID-Hash: RLJVSLETXB724SDJXEO7HJ2USI6KJTZW 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: 1787077950578158500 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. Reject domain configs that set cmdqv when the QEMU binary lacks the property. Signed-off-by: Nathan Chen Reviewed-by: Pavel Hrdina --- docs/formatdomain.rst | 8 ++++++++ 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 | 8 ++++++++ 7 files changed, 43 insertions(+), 1 deletion(-) diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 0b346a0952..d3835e41cd 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -9436,6 +9436,14 @@ 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. + If ``accel`` is enabled and ``cmdqv`` is not configured, the hypervi= sor + default value is used. + :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..1a179b85c1 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -3205,11 +3205,12 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *= iommu) } if (iommu->accel !=3D VIR_TRISTATE_SWITCH_ON && (iommu->ats !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->cmdqv !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ril !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->ssid_size >=3D 0 || iommu->oas >=3D 0)) { virReportError(VIR_ERR_XML_ERROR, - _("accel must be enabled for iommu model '%1$s'= when setting ats, ril, ssidsize, or oas"), + _("accel must be enabled for iommu model '%1$s'= when setting ats, ril, ssidsize, oas, or cmdqv"), virDomainIOMMUModelTypeToString(iommu->model)); return -1; } @@ -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 61f3bd3278..0e860a286c 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5829,6 +5829,14 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMM= UDef *iommu, return -1; } =20 + 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 || --=20 2.43.0 From nobody Mon Aug 24 10:09:45 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 1787078057872900.7175156574303; Tue, 18 Aug 2026 11:34:17 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id A513441939; Tue, 18 Aug 2026 14:34:15 -0400 (EDT) Received: from [172.19.199.13] (unknown [10.16.107.18]) by lists.libvirt.org (Postfix) with ESMTP id 7859B41AAB for ; Tue, 18 Aug 2026 14:30:40 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B001A3F935; Tue, 18 Aug 2026 14:30:25 -0400 (EDT) Received: from BN1PR04CU002.outbound.protection.outlook.com (mail-eastus2azlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c110::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 06E5A3F83A for ; Tue, 18 Aug 2026 14:30:24 -0400 (EDT) Received: from DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) by MN0PR12MB5858.namprd12.prod.outlook.com (2603:10b6:208:379::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.8; Tue, 18 Aug 2026 18:30:20 +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.0339.007; Tue, 18 Aug 2026 18:30:20 +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=yRPBoFe4FvQjBkgKACj1MfTS3WpNSpyTgluT3xvZFCTts0dN1biiHiemWDQEOg2mNo6bWzPYtdmMcLz8a0QRRJUJHzPaMPZcFs1ASf3vTANd6zFllvnc3ctkehsWndFtGZF+i2fhg1gkIX2zIz/xoYfTp+83fJwRRRp1vhrdpyQvQ18Y5LQZvprJXqEtIXX5VRngUgfSue6vQoALI6wJungBQVEE4V+T2Zwy2KL4iiS+9seSAMg6LHwUtVKq838CAHoBL1vMVOwRBv3v7c3yqMld1wHpr8H0wzEIYP7RqM4zmOA70O0XFGWv2HCpsqd0lsk88H8KpT9C8IJDMDnkOw== 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=y3t/ysA2VuJ+8X8IFHTKS+8s/gSxcdRZcd0hODaQn0w=; b=vyWXLRGxOXPjt6daOq6NadTGdzyy5xL+Zk5QzMU18QOZTMKO3jY/gfyWc6qkZt/XzyL37UMYhFNb0bHDcL2Rc9onOr79pt8XjIA3bmvYo3DQXDQ4uGIHDRepIYeI9IDTHteToCZYgU1Sl66D/n7P+8ZErAuYABaet7s5e/VjJJnEsepBw8p8TwhdMHYre6sSTRrxEjhW9gWCPAWCvW8qDV+EZ9C53IxvwQN74j+cWi7S0Bp5EtSJHVl39kT/ix/i5FkPcaVQ2Jejuw3uk+pgQ+8ivk6hFpkaLj7X5PTglkrHQO/E79mSLOVgo5wQdnDDDGrhjZol/Vhnu1qUA1f/GA== 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=y3t/ysA2VuJ+8X8IFHTKS+8s/gSxcdRZcd0hODaQn0w=; b=smPPjKBK8+ciryfVkRE+Q+FYRMKWoEqQnG4m8TfnGKr0BtrkOzMmXHA74TWG0dWJogjVlykLKczHTboCCiLmZzJYRP2Iw/VFpATNngJX4AWY9j/ioqr6XSwwtUB+EiVGZNQrIGiPnTpSfK2lGSVdkgq8IUgScbXk7sKx1usemstTQlp8RkARApnVEuxSNPQjuAJO8jRhpThA/+JzNt4V67mD37FXgoO8fGMxWkfbFl4FRR+R5DOisuOzVU/nsukhvZfo1OZCIl0wY5INRqzC7H4uGI4vSDSWZYyl9o7Ajr5utJoQEyvG7XAy9X8wXnyyHMd5kIl4dVoxHJJIcSyprA== 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 v4 3/3] tests: qemuxmlconfdata: provide cmdqv sample XML and CLI args Date: Tue, 18 Aug 2026 11:30:12 -0700 Message-ID: <20260818183012.1260768-4-nathanc@nvidia.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260818183012.1260768-1-nathanc@nvidia.com> References: <20260818183012.1260768-1-nathanc@nvidia.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY5PR03CA0027.namprd03.prod.outlook.com (2603:10b6:a03:1e0::37) To DM4PR12MB5390.namprd12.prod.outlook.com (2603:10b6:5:389::15) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB5390:EE_|MN0PR12MB5858:EE_ X-MS-Office365-Filtering-Correlation-Id: a6ae9385-1b4b-4598-5292-08defd56c22a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016|23010399003|20052099010|22082099003|18002099003|10067099003|11063799006|56012099006|3023799007|6133799003; X-Microsoft-Antispam-Message-Info: EYVy3UWjZ+71d0M0mBPt+dI3viQempfmEG0vzSiXseYN0lR8ex8lcIR3PS0V1gI63EzQhpBic36gMw2/fpGcoHpRIG27XSE9dVjDHwdgIqUyhKFVlvkkAB7JwQwi58fPie0mR9M41kAA5xPVyoFFHpqrCj+6XE84ug6lDnGkkk2H7m3rqvbvLaXeXvAoIBrdqDDilza3DVN3USgv9u29EtGmwA8C7CGwYxaz3FwW7iVlcpHkrJdv4exkhDS0b52lCWpLL64gw5iUm9wPbpNLfg4wBJXYhY9sJOuVokA9M2W30OQOQJCaHFlPrTsVHGvvIMIkNSPPfsKmXZ3hGCg3SNIo8fqDgm5fa6pM9mwB0yntdgFEDRVwkuB1lELmIuOdjL906ZPnxSKNOMEoH1YPEj63iDO4f2JLC6EjcIAqWpBv8TXV2/dsJrkVH+Llriea6amMxDVYO/TOGZIUxnNkVZozLefbk/EAacfb3OC6Gy4GUeKYRRI6+Mv4IEVuh30Z9HtLfQRpJiKGkr/qGKgr9p5a+ge0AFTJdc0bc105C2gHzrowFUQSS3T/uE5LrlFl+rtrxKQ9gMZ6f1szXwQohV4v9oda7KBEp/iifGREXjGbSfE8EkYwP9jvkS6BRN+xisooxd8hWk1jq84QpXsMPj7EsGqsdZMhPDqd3LltK9c= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB5390.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016)(23010399003)(20052099010)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006)(3023799007)(6133799003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Yf8MXIajqXyd9NBa0HIuktH7QIGM4C0OmByWxuoYsHXNknEmQCAF6Hu7pR7w?= =?us-ascii?Q?zEiCY9sf3+rg9kpHJRvVLkWF3lMhnq+glMWxfEbO9RBXgOQ+81Xttb2/rO9z?= =?us-ascii?Q?7znYfliAt2Yox2s+ImhKIxbny8/C0MKXnYGlcYXgccpfPLmrxRVtzsiwJGBj?= =?us-ascii?Q?yS3fF8xkCLmhnFDCAmnCXUgxJRREmu8WgEzDf9743bofGpeR8D1oX0y73bQm?= =?us-ascii?Q?yDiWNWfcYVm4ZwyJdhCWAaGSBlOZ2T+GX7Ba/Z9YM8iFiWgF31MOh6EdGyee?= =?us-ascii?Q?i5xwyIuAvA7BvlPD2op5mGttKe1d6UJtcQDtmM8ULJ7FbHGjx1+ORt22UW+T?= =?us-ascii?Q?WISvRLuiLIiKM8+Grhzi5LzwGQqYMOcR5ag6nrLCLnjg6pCIx6LdiMU43VMB?= =?us-ascii?Q?LIljPfL5HvmoC+jMB8swwFvXGgl9y9dkDtPkbay2ExqbNsqbcMTmGvjNpTAf?= =?us-ascii?Q?2btlUMwonjml8+HP86JD9o5BnNzGqZeB8ujGLEysJd4oHJIjdwwto2Ceth5p?= =?us-ascii?Q?iz7URJkWLBEwbPgBMxAvVKWkQg5OWICs0x4uWo8jXFMLsW3sgl3NWGV+c3si?= =?us-ascii?Q?mUhfrK7gkSJmOaWwIsaX4PT4vNRBlNlc14oH+KZR7jCJixv6zSYtIzy/HmJI?= =?us-ascii?Q?PUv6Pue30SlOjLoNgWSuFbI0LW66n1tfhXDQMuGH7ZCNMMRiSfWVbevM49bL?= =?us-ascii?Q?Oc+pIA7LYGvd8emoDeD+lZoGDP1PiA6hgdgV6xVjmIctn3fTTZ2FlP0deljs?= =?us-ascii?Q?zKqJY17qUz1WFsG0QqSlfLtt75E6lSiqHlp5o6/cs/PAtjIToIX8moCHVa6E?= =?us-ascii?Q?ZAycGSlJcsfoGmsDPu+YB92wMx1QurcmFPVOR9ilRkJYVTEXXRLts4oapPWw?= =?us-ascii?Q?8NdSVJb2blKEBmvCO8tg3BQJefHcS7cm0QMlR3uWQo+vZW7k4ewImmev2XhP?= =?us-ascii?Q?VasOTXk39Uwi/ZKlRhe5qicynivkWYyxYxSxC7WoiEsLYLdC71svCQtGTErS?= =?us-ascii?Q?407eJW/dn60O8qduwfl4Dno7Hu5x2K+xkrcb5ilwR8Q+duH+eNVB2DslD+QS?= =?us-ascii?Q?k67B0zCXWn7tbhUt94MRomOLT/l92gptW2eNc0DxMPQIcqBi3yf8uu9AsN/o?= =?us-ascii?Q?g5tJtVxJvmZK9ZvRiKYAzlSDu/zug9X+IxrJte5HE/DyKydfSsCP+J78mVo/?= =?us-ascii?Q?7S7W/LfikuJcAWS0FqVSx3ydsUFxpQVv8LESyhy08vu7o7/ha71B9K5E2CLN?= =?us-ascii?Q?RPIWwHlR9Duqec/bbu6c2UWqae184zRTUWplj+inUpJ90nbiqfQdPh4CiJXB?= =?us-ascii?Q?JvM2P2ezzVeYhn8m65Qc/tTlgB5A2lkepY/0KC0pUxegM55U29kIEejK8bZH?= =?us-ascii?Q?1BsmgOyjCX+f8t6O0WVQvDeJJIVYWqY6wAsvpio7r98IQzIRJLhOErrvPHTi?= =?us-ascii?Q?fUn/D3yCgaBjCuCDMiEssING6WIUgdZa0Z5aguGdPs09vDzxzHDSuFxdi2nc?= =?us-ascii?Q?XeErORYvBWfcASiKXCjlsYDrRCdhJ4Eqv+VVwhiPtyBZ3WIj2wk4OM4Xfhb0?= =?us-ascii?Q?myTktZ9yMwMqr+UCWhgRMORfCzYBid0ZJSPK5DhPIEN52PJ17hAjjOP8M7Tg?= =?us-ascii?Q?ymnWWwlhtfQRLQDYESmh2Iw+0+pw2Af8KwwS43M71IBFrDMH9RosIFlgtUcj?= =?us-ascii?Q?Dx5ImhUppm83ylnrlkrf3i/rWCAA6vZhqoq/fJtcR3KOvEPXjdQM1qfSfrnC?= =?us-ascii?Q?lZ/TO+sK3Q=3D=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a6ae9385-1b4b-4598-5292-08defd56c22a X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5390.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2026 18:30:20.0957 (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: bSGWOi1GYoLV3x0NdUd2HnhJ9m0N0oES5c+XYARIryoslfbAXMxRcwZMP1sfFIBk0D1MViIJ8cIh4y3N1YO9cw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN0PR12MB5858 Message-ID-Hash: XFQ3BDPVSQD7FVIUW4FHG2UJVFGGYURG X-Message-ID-Hash: XFQ3BDPVSQD7FVIUW4FHG2UJVFGGYURG 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: 1787078059129158500 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 Reviewed-by: Pavel Hrdina --- ...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 + + + + + +
+ + + + +
+ + + + +
+ + + + +
+ +