From nobody Mon Dec 15 11:50:26 2025 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; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1742348460; cv=none; d=zohomail.com; s=zohoarc; b=dR6PZUbNuED/7qwYliLvgBkdTyOwae++XToSKFAZASzmgrJae1NZ2EjmkK+0NOQDAFkf71sfOVV/2NNZ9qxM91OvmzIijtMzgyH5JrARoNmSLRaUXjpLCVh4mRDWgutJyvcRBtaGOP5uYdwtwI+7UM5k2avs9Hvii/d6PBApg88= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742348460; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=Nwb8/f3Su++WVOebApWdzoZodDAYUQFfBTlkNO4ZRbo=; b=bRxrTCll9XyyRdMKDHGuG7KA58XpnVbKPJ/xtWQxMscpd8gIjVrecairygTQae3z/KQv13Wj8iWDAT6wbXlQoN9u/4eivf5pf9wg+YipAdFNHGt1NHfERMoTKAnLxFZwbMljzyeIDhh6yHSkJSg0dBRBAx+8fztuUrnFOZaWkwI= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1742348460405687.3971638213987; Tue, 18 Mar 2025 18:41:00 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 7F4D31705; Tue, 18 Mar 2025 21:40:59 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id D6A531719; Tue, 18 Mar 2025 21:40:17 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 08B4D1704; Tue, 18 Mar 2025 21:40:12 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id F179216D5 for ; Tue, 18 Mar 2025 21:40:10 -0400 (EDT) Received: from mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-340-oWNx8xsvOPGcazCyBedouw-1; Tue, 18 Mar 2025 21:40:07 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-06.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1613A1800349; Wed, 19 Mar 2025 01:40:06 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.44.32.4]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 8AE6F180174E; Wed, 19 Mar 2025 01:40:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742348410; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=7ujn1gh6ToTe7ft0D1kBs7vYU7hyyBVKk/0jiJQqJxE=; b=al+xBV/PJUQ1LjT3aDStQCeyjcZaQwUfAvKjxZeBGGJvHzzl8h3T0CiZsYadsOc0QQhYCa bx4zUqKxEizmxsrN8hBQ1WLabDcYqNs3xa5SDfgHn/KwtK7i9qitK8dblRNINhYTLuM7YS xXChYUavTmYoQxfoaAlGKvrD7i8IXl0= X-MC-Unique: oWNx8xsvOPGcazCyBedouw-1 X-Mimecast-MFC-AGG-ID: oWNx8xsvOPGcazCyBedouw_1742348406 To: devel@lists.libvirt.org Subject: [libvirt PATCH 1/7] qemu: introduce QEMU_CAPS_AMD_IOMMU Date: Wed, 19 Mar 2025 02:38:25 +0100 Message-ID: <14f5471ccdb40aa18bbb17cbe7070db6d79fecf5.1742348310.git.jtomko@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: PVP05jFu89SuI7Zsg5FcgBsqsot65TU7nmZdWqwO6hk_1742348406 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: NCPE6UULGBEZWW74B6XGNZSBKUFZJQF4 X-Message-ID-Hash: NCPE6UULGBEZWW74B6XGNZSBKUFZJQF4 X-MailFrom: jtomko@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: suravee.suthikulpanit@amd.com, bsd@redhat.com X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: =?utf-8?q?J=C3=A1n_Tomko_via_Devel?= Reply-To: =?UTF-8?q?J=C3=A1n=20Tomko?= X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1742348462428019000 Content-Type: text/plain; charset="utf-8" Check for the presence of the amd-iommu device, so we can conditionalize probing for its properties. Signed-off-by: J=C3=A1n Tomko --- src/qemu/qemu_capabilities.c | 4 ++++ src/qemu/qemu_capabilities.h | 3 +++ tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml | 1 + tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml | 1 + tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml | 1 + tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml | 1 + 16 files changed, 21 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 2c137bb663..583f2bdc27 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -729,6 +729,9 @@ VIR_ENUM_IMPL(virQEMUCaps, "virtio-mem-ccw", /* QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW */ "blockdev-set-active", /* QEMU_CAPS_BLOCKDEV_SET_ACTIVE */ "shim", /* QEMU_CAPS_MACHINE_SHIM */ + + /* 475 */ + "amd-iommu", /* QEMU_CAPS_AMD_IOMMU */ ); =20 =20 @@ -1418,6 +1421,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[= ] =3D { { "sev-snp-guest", QEMU_CAPS_SEV_SNP_GUEST }, { "acpi-erst", QEMU_CAPS_DEVICE_ACPI_ERST }, { "virtio-mem-ccw", QEMU_CAPS_DEVICE_VIRTIO_MEM_CCW }, + { "amd-iommu", QEMU_CAPS_AMD_IOMMU }, }; =20 =20 diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index df63fe51ae..f0b9c36516 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -711,6 +711,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ QEMU_CAPS_BLOCKDEV_SET_ACTIVE, /* blockdev-set-active QMP command supp= orted */ QEMU_CAPS_MACHINE_SHIM, /* -shim command line argument */ =20 + /* 475 */ + QEMU_CAPS_AMD_IOMMU, /* -device amd-iommu */ + QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; =20 diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml b/tes= ts/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml index ad7bb7ebc8..b23a4b5307 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.xml @@ -207,6 +207,7 @@ + 9002050 43100285 v9.2.0-2369-g98c7362b1e diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemu= capabilitiesdata/caps_10.0.0_x86_64.xml index 24509f6a0a..e2894b733e 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml @@ -206,6 +206,7 @@ + 9002050 43100285 v9.2.0-2369-g98c7362b1e diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.2.0_x86_64.xml index 1c7def169c..2426f28d09 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml @@ -175,6 +175,7 @@ + 6002000 43100244 v6.2.0 diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.0.0_x86_64.xml index 8e342bf4ad..4f0e50da32 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml @@ -183,6 +183,7 @@ + 7000000 43100243 v7.0.0 diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.1.0_x86_64.xml index 71e6c16e8f..d96ea154b0 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml @@ -188,6 +188,7 @@ + 7001000 43100244 v7.1.0 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml b/tests/q= emucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml index 7bdeb00f9a..675d285e42 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml @@ -192,6 +192,7 @@ + 7002000 43100245 v7.2.0 diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.2.0_x86_64.xml index 54c72521b0..b7f29e58c6 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml @@ -192,6 +192,7 @@ + 7002000 43100245 v7.2.0 diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.0.0_x86_64.xml index 54db96d9c7..cf3f37ad50 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -196,6 +196,7 @@ + 8000000 43100244 v8.0.0 diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.1.0_x86_64.xml index 7d508a1601..f9b0326aa5 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -198,6 +198,7 @@ + 8001000 43100245 v8.1.0 diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.2.0_x86_64.xml index 2da46d944d..896e684364 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -201,6 +201,7 @@ + 8002000 43100246 v8.2.0 diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index b273193d35..2a2a71a7f5 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -203,6 +203,7 @@ + 9000000 43100245 v9.0.0 diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.1.0_x86_64.xml index 6b995c2f26..20b8b1d19c 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -202,6 +202,7 @@ + 9001000 43100246 v9.1.0 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml b/test= s/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml index 2181b9432a..c7aae0956f 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.xml @@ -206,6 +206,7 @@ + 9002000 43100247 v9.2.0 diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.2.0_x86_64.xml index 924f56d010..48499cdae0 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.xml @@ -204,6 +204,7 @@ + 9002000 43100247 v9.2.0 --=20 2.48.1 From nobody Mon Dec 15 11:50:26 2025 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; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1742348597; cv=none; d=zohomail.com; s=zohoarc; b=SyWB8U+VzCwiKJYSqpbbO8kmwJ3/knohXkzGC9V5EEC5FiBFqSA2Jq2YwWAWRk3MG7c9FtP4jpQ7mu/4oDjonIdbB8i5XZcURL2MzNjkdJrqSJqG3GGRFuW/3faAO/HUqp2OYgDled0CxxUzoHNuMO+n9TiW2AfH1F13Fy490UA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742348597; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=kLg3T8vGCHa/t0N5eumErMCQanIEn/jsRX2dGnvyUVQ=; b=TvGg8dcI8WXZEmH1fzM8oO6lLXrvfBb3/kS7Bkb+P1nc/+MZwvIfmrQIjCo5clSl3zh6ynomjgYC0iljJsg/TUTS5EqdOP+8PiPF0EOPtD8zXFNKvKXGegU5ewE1w3NdSuBH/cqKN5OHBcvlTDSngZqHz9hAHySk1eyUjGbVF2g= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 17423485972215.111348307625917; Tue, 18 Mar 2025 18:43:17 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 95A9C1854; Tue, 18 Mar 2025 21:43:16 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id D32AA1856; Tue, 18 Mar 2025 21:40:21 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 71D5D16D5; Tue, 18 Mar 2025 21:40:16 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 460B416D5 for ; Tue, 18 Mar 2025 21:40:14 -0400 (EDT) Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-512--2ciEsvgNOOiKVVS104ePw-1; Tue, 18 Mar 2025 21:40:09 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id D21771955DB9; Wed, 19 Mar 2025 01:40:08 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.44.32.4]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id ADEFB180175C; Wed, 19 Mar 2025 01:40:06 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742348414; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kLg3T8vGCHa/t0N5eumErMCQanIEn/jsRX2dGnvyUVQ=; b=L/s728ehyEnxiPfrUDGCOgn2hfSYq5SwOaBPovm6qS7mdq8Tr9L6PicPzsTf4O+Sajnua2 0+t15MGaiIgq4joAiJuMI3WHxy4O/gxpsSI8cV2oJmPViiPNb9CJbwz03s2vCbARIg592e mf2M6Po8qFUM9eJrhlXhXBKSgy+yY1Q= X-MC-Unique: -2ciEsvgNOOiKVVS104ePw-1 X-Mimecast-MFC-AGG-ID: -2ciEsvgNOOiKVVS104ePw_1742348409 To: devel@lists.libvirt.org Subject: [libvirt PATCH 2/7] qemu: introduce QEMU_CAPS_PCI_ID Date: Wed, 19 Mar 2025 02:38:26 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: SwkWehw2UuP2ESAuHxS9HP0SbJoguFBOrUdaGTQy0XE_1742348409 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TVLQL6PKBTZUZBHAF3KPMFZRP3SUQQKT X-Message-ID-Hash: TVLQL6PKBTZUZBHAF3KPMFZRP3SUQQKT X-MailFrom: jtomko@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: suravee.suthikulpanit@amd.com, bsd@redhat.com X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: =?utf-8?q?J=C3=A1n_Tomko_via_Devel?= Reply-To: =?UTF-8?q?J=C3=A1n=20Tomko?= X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1742348597906019000 Content-Type: text/plain; charset="utf-8" Introduced by QEMU commit TBD, the presence of this attribute allows libvirt to specify the alias of the AMDVI-PCI device explicitly. (It was implicit before the introduction of this attribute) Signed-off-by: J=C3=A1n Tomko --- src/qemu/qemu_capabilities.c | 8 ++ src/qemu/qemu_capabilities.h | 1 + .../caps_10.0.0_x86_64+amdsev.replies | 102 +++++++++++------ .../caps_10.0.0_x86_64.replies | 106 ++++++++++++------ .../caps_10.0.0_x86_64.xml | 1 + .../caps_6.2.0_x86_64.replies | 102 +++++++++++------ .../caps_7.0.0_x86_64.replies | 80 +++++++------ .../caps_7.1.0_x86_64.replies | 102 +++++++++++------ .../caps_7.2.0_x86_64+hvf.replies | 102 +++++++++++------ .../caps_7.2.0_x86_64.replies | 102 +++++++++++------ .../caps_8.0.0_x86_64.replies | 80 +++++++------ .../caps_8.1.0_x86_64.replies | 102 +++++++++++------ .../caps_8.2.0_x86_64.replies | 102 +++++++++++------ .../caps_9.0.0_x86_64.replies | 80 +++++++------ .../caps_9.1.0_x86_64.replies | 102 +++++++++++------ .../caps_9.2.0_x86_64+amdsev.replies | 102 +++++++++++------ .../caps_9.2.0_x86_64.replies | 102 +++++++++++------ 17 files changed, 928 insertions(+), 448 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 583f2bdc27..e07f78dbc2 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -732,6 +732,7 @@ VIR_ENUM_IMPL(virQEMUCaps, =20 /* 475 */ "amd-iommu", /* QEMU_CAPS_AMD_IOMMU */ + "amd-iommu.pci-id", /* QEMU_CAPS_AMD_IOMMU_PCI_ID */ ); =20 =20 @@ -1566,6 +1567,10 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCap= sDevicePropsVirtioBlkCCW[] =3D { "loadparm", QEMU_CAPS_VIRTIO_CCW_DEVICE_LOADPARM, NULL }, }; =20 +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsAMDIOMMU[]= =3D { + { "pci-id", QEMU_CAPS_AMD_IOMMU_PCI_ID, NULL }, +}; + /* see documentation for virQEMUQAPISchemaPathGet for the query format */ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] =3D { { "blockdev-add/arg-type/+file/drop-cache", QEMU_CAPS_MIGRATION_FILE_D= ROP_CACHE }, @@ -1725,6 +1730,9 @@ static virQEMUCapsDeviceTypeProps virQEMUCapsDevicePr= ops[] =3D { { "virtio-blk-ccw", virQEMUCapsDevicePropsVirtioBlkCCW, G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioBlkCCW), QEMU_CAPS_VIRTIO_CCW }, + { "amd-iommu", virQEMUCapsDevicePropsAMDIOMMU, + G_N_ELEMENTS(virQEMUCapsDevicePropsAMDIOMMU), + QEMU_CAPS_AMD_IOMMU }, }; =20 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMemoryBackendFi= le[] =3D { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index f0b9c36516..92efad958e 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -713,6 +713,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ =20 /* 475 */ QEMU_CAPS_AMD_IOMMU, /* -device amd-iommu */ + QEMU_CAPS_AMD_IOMMU_PCI_ID, /* amd-iommu.pci-id */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.replies b= /tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.replies index e8a0346fb1..1456bf1015 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.replies +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64+amdsev.replies @@ -32147,12 +32147,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -32242,7 +32280,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -32250,7 +32288,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32329,7 +32367,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32337,7 +32375,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -34510,12 +34548,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -35171,7 +35209,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -35179,7 +35217,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -35298,7 +35336,7 @@ "type": "bool" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -35306,7 +35344,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -35513,12 +35551,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37295,12 +37333,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37308,12 +37346,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37321,12 +37359,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -38849,12 +38887,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -38948,12 +38986,12 @@ "capability": "mapped-ram" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { @@ -38964,16 +39002,16 @@ "pdh": "AQAAAAE3AAADEAAAAwAAAAIAAAAZzB1NV5cz0ISI+tYZQHDF/dw77x1Zz+u2jw= 0cUf+KR3u958kjxZlN5IFNIo7sUgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8eYMemS1wynFwg= VIgw9ZdHI+6qmsr91sCHKjJHGGBLRF3DHGYtdCLEsYQCVmJQywAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAIAAAC/3y8ro5Ah= FTmPkAnaWckGQXhPEnSKInCUEpNnGgufIttDMtWgsjaAX7Jve/Hjcg8AAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAADe6oGDni6/LfA/HHDe0vBW4xoma82CBGyydXkq/PJfhO6fra1H9symYAiEd6db4n= 8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAA=3D", "cpu0-id": "BlAwmcr4Ruya3YvEGe2EBxuWjMAfIYolslNNM92RsIKxLkWDDRqivqSBOD= +qQRCYS9joBYSHMD1g+rmjY+MmVw=3D=3D" }, - "id": "libvirt-47" + "id": "libvirt-48" } =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "Could not open '/dev/sgx_vepc': No such file or directory" @@ -38988,7 +39026,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -39389,7 +39427,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -39403,7 +39441,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39804,7 +39842,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39819,7 +39857,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -40331,7 +40369,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.replies b/tests/= qemucapabilitiesdata/caps_10.0.0_x86_64.replies index aea8060984..33ddba6ca1 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.replies @@ -32072,12 +32072,54 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + }, + { + "name": "pci-id", + "type": "str" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -32171,7 +32213,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -32179,7 +32221,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32258,7 +32300,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32266,7 +32308,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -34439,12 +34481,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -35100,7 +35142,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -35108,7 +35150,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -35227,7 +35269,7 @@ "type": "bool" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -35235,7 +35277,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -35442,12 +35484,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -38080,12 +38122,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -38093,12 +38135,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -38106,12 +38148,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -39634,12 +39676,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -39733,16 +39775,16 @@ "capability": "mapped-ram" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -39751,11 +39793,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "Could not open '/dev/sgx_vepc': No such file or directory" @@ -39770,7 +39812,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -40171,7 +40213,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -40185,7 +40227,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -40586,7 +40628,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -40601,7 +40643,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -41113,7 +41155,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml b/tests/qemu= capabilitiesdata/caps_10.0.0_x86_64.xml index e2894b733e..156f347614 100644 --- a/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_10.0.0_x86_64.xml @@ -207,6 +207,7 @@ + 9002050 43100285 v9.2.0-2369-g98c7362b1e diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_6.2.0_x86_64.replies index b2b6bcdf0d..6d6072cab5 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.replies @@ -25740,12 +25740,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -25824,7 +25862,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -25832,7 +25870,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -25906,7 +25944,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -25914,7 +25952,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -27654,12 +27692,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -28142,7 +28180,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -28150,7 +28188,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -28253,7 +28291,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -28261,7 +28299,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -28425,12 +28463,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -30454,12 +30492,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -30467,12 +30505,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -30480,12 +30518,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -31805,12 +31843,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -31892,16 +31930,16 @@ "capability": "background-snapshot" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -31910,11 +31948,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "SGX is not enabled in KVM" @@ -31929,7 +31967,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -32262,7 +32300,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -32276,7 +32314,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -32609,7 +32647,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -32624,7 +32662,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -32957,7 +32995,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_7.0.0_x86_64.replies index 1ad960c99b..16fad62b37 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies @@ -26276,12 +26276,28 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "error": { + "class": "DeviceNotFound", + "desc": "Device 'example-device' not found" + }, + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -26360,7 +26376,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -26368,7 +26384,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -26442,7 +26458,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -26450,7 +26466,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -28206,12 +28222,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -28712,7 +28728,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -28720,7 +28736,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -28823,7 +28839,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -28831,7 +28847,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -29008,12 +29024,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -31073,12 +31089,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -31086,12 +31102,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -31099,12 +31115,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -32428,12 +32444,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -32515,16 +32531,16 @@ "capability": "background-snapshot" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -32533,7 +32549,7 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -32554,7 +32570,7 @@ } ] }, - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -32565,7 +32581,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -32902,7 +32918,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -32916,7 +32932,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -33253,7 +33269,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -33268,7 +33284,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -33605,7 +33621,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_7.1.0_x86_64.replies index cd2116d05a..ff560438f9 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies @@ -26999,12 +26999,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -27083,7 +27121,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -27091,7 +27129,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -27165,7 +27203,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -27173,7 +27211,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -28966,12 +29004,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -29490,7 +29528,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -29498,7 +29536,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -29611,7 +29649,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -29619,7 +29657,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -29811,12 +29849,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -31755,12 +31793,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -31768,12 +31806,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -31781,12 +31819,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -33110,12 +33148,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -33205,16 +33243,16 @@ "capability": "postcopy-preempt" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -33223,11 +33261,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "SGX is not enabled in KVM" @@ -33242,7 +33280,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -33580,7 +33618,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -33594,7 +33632,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -33932,7 +33970,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -33947,7 +33985,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -34285,7 +34323,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.replies b/tes= ts/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.replies index c85be45cd1..e0a72f7ad9 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.replies +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.replies @@ -27968,12 +27968,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -28057,7 +28095,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -28065,7 +28103,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -28144,7 +28182,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -28152,7 +28190,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -29945,12 +29983,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -30487,7 +30525,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -30495,7 +30533,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -30608,7 +30646,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -30616,7 +30654,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -30808,12 +30846,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -32752,12 +32790,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -32765,12 +32803,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -32778,12 +32816,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -34107,12 +34145,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -34202,16 +34240,16 @@ "capability": "postcopy-preempt" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -34220,11 +34258,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "SGX is not enabled in KVM" @@ -34239,7 +34277,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -34577,7 +34615,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -34591,7 +34629,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -34929,7 +34967,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -34944,7 +34982,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -35282,7 +35320,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_7.2.0_x86_64.replies index 4b56adeafa..fd6578b1c5 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies @@ -27968,12 +27968,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -28057,7 +28095,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -28065,7 +28103,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -28144,7 +28182,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -28152,7 +28190,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -29945,12 +29983,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -30487,7 +30525,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -30495,7 +30533,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -30608,7 +30646,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -30616,7 +30654,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -30808,12 +30846,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -32752,12 +32790,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -32765,12 +32803,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -32778,12 +32816,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -34107,12 +34145,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -34202,16 +34240,16 @@ "capability": "postcopy-preempt" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -34220,11 +34258,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "SGX is not enabled in KVM" @@ -34239,7 +34277,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -34577,7 +34615,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -34591,7 +34629,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -34929,7 +34967,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -34944,7 +34982,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -35282,7 +35320,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_8.0.0_x86_64.replies index 4cad376388..b070a5e569 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies @@ -29339,12 +29339,28 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "error": { + "class": "DeviceNotFound", + "desc": "Device 'example-device' not found" + }, + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -29428,7 +29444,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -29436,7 +29452,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -29515,7 +29531,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -29523,7 +29539,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -31340,12 +31356,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -31961,7 +31977,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -31969,7 +31985,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -32082,7 +32098,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -32090,7 +32106,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -32282,12 +32298,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -34333,12 +34349,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -34346,12 +34362,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -34359,12 +34375,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -35805,12 +35821,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -35900,16 +35916,16 @@ "capability": "postcopy-preempt" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -35918,11 +35934,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "SGX is not enabled in KVM" @@ -35937,7 +35953,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -36280,7 +36296,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -36294,7 +36310,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -36637,7 +36653,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -36652,7 +36668,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -37101,7 +37117,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_8.1.0_x86_64.replies index 888a5d3b6a..6f5297b470 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies @@ -30094,12 +30094,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -30188,7 +30226,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -30196,7 +30234,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -30275,7 +30313,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -30283,7 +30321,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -32180,12 +32218,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -32821,7 +32859,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -32829,7 +32867,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -32942,7 +32980,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -32950,7 +32988,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -33138,12 +33176,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -35525,12 +35563,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -35538,12 +35576,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -35551,12 +35589,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -37014,12 +37052,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -37117,16 +37155,16 @@ "capability": "dirty-limit" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -37135,11 +37173,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "SGX is not enabled in KVM" @@ -37154,7 +37192,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -37517,7 +37555,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -37531,7 +37569,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -37894,7 +37932,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -37909,7 +37947,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -38378,7 +38416,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_8.2.0_x86_64.replies index 33e4978c38..8a3c54f915 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.replies @@ -30785,12 +30785,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -30884,7 +30922,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -30892,7 +30930,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -30971,7 +31009,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -30979,7 +31017,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -32892,12 +32930,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33513,7 +33551,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33521,7 +33559,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33634,7 +33672,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33642,7 +33680,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -33830,12 +33868,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -36217,12 +36255,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -36230,12 +36268,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -36243,12 +36281,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -37719,12 +37757,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -37822,16 +37860,16 @@ "capability": "dirty-limit" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -37840,11 +37878,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "SGX is not enabled in KVM" @@ -37859,7 +37897,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38226,7 +38264,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38240,7 +38278,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -38607,7 +38645,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -38622,7 +38660,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -39095,7 +39133,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_9.0.0_x86_64.replies index 89fefb863b..638313f857 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.replies @@ -31003,12 +31003,28 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "error": { + "class": "DeviceNotFound", + "desc": "Device 'example-device' not found" + }, + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31102,7 +31118,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31110,7 +31126,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -31189,7 +31205,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -31197,7 +31213,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -33114,12 +33130,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33755,7 +33771,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33763,7 +33779,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33876,7 +33892,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33884,7 +33900,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -34076,12 +34092,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -36463,12 +36479,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -36476,12 +36492,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -36489,12 +36505,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -37969,12 +37985,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -38076,16 +38092,16 @@ "capability": "mapped-ram" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -38094,11 +38110,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "SGX is not enabled in KVM" @@ -38113,7 +38129,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38481,7 +38497,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38495,7 +38511,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -38863,7 +38879,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -38878,7 +38894,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -39352,7 +39368,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_9.1.0_x86_64.replies index 4838037ee7..47575075bd 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.replies @@ -31390,12 +31390,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31489,7 +31527,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31497,7 +31535,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -31576,7 +31614,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -31584,7 +31622,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -33633,12 +33671,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -34254,7 +34292,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -34262,7 +34300,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -34375,7 +34413,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -34383,7 +34421,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -34575,12 +34613,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37131,12 +37169,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37144,12 +37182,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37157,12 +37195,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -38645,12 +38683,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -38744,16 +38782,16 @@ "capability": "mapped-ram" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -38762,11 +38800,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "Could not open '/dev/sgx_vepc': No such file or directory" @@ -38781,7 +38819,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -39159,7 +39197,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -39173,7 +39211,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39551,7 +39589,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39566,7 +39604,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -40054,7 +40092,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.replies b/= tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.replies index 9d074f5843..be063de8aa 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.replies +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64+amdsev.replies @@ -31834,12 +31834,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31933,7 +31971,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31941,7 +31979,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32020,7 +32058,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -32028,7 +32066,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -34170,12 +34208,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -34821,7 +34859,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -34829,7 +34867,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -34947,7 +34985,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -34955,7 +34993,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -35153,12 +35191,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -36783,12 +36821,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -36796,12 +36834,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -36809,12 +36847,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -38327,12 +38365,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -38426,12 +38464,12 @@ "capability": "mapped-ram" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { @@ -38442,16 +38480,16 @@ "pdh": "AQAAAAE3AAADEAAAAwAAAAIAAAAZzB1NV5cz0ISI+tYZQHDF/dw77x1Zz+u2jw= 0cUf+KR3u958kjxZlN5IFNIo7sUgkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8eYMemS1wynFwg= VIgw9ZdHI+6qmsr91sCHKjJHGGBLRF3DHGYtdCLEsYQCVmJQywAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhAAAAIAAAC/3y8ro5Ah= FTmPkAnaWckGQXhPEnSKInCUEpNnGgufIttDMtWgsjaAX7Jve/Hjcg8AAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAADe6oGDni6/LfA/HHDe0vBW4xoma82CBGyydXkq/PJfhO6fra1H9symYAiEd6db4n= 8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= AAAAAAAAAAAAAAAAA=3D", "cpu0-id": "BlAwmcr4Ruya3YvEGe2EBxuWjMAfIYolslNNM92RsIKxLkWDDRqivqSBOD= +qQRCYS9joBYSHMD1g+rmjY+MmVw=3D=3D" }, - "id": "libvirt-47" + "id": "libvirt-48" } =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "Could not open '/dev/sgx_vepc': No such file or directory" @@ -38466,7 +38504,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38866,7 +38904,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38880,7 +38918,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39280,7 +39318,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39295,7 +39333,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -39806,7 +39844,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_9.2.0_x86_64.replies index 6b2ecb40d0..eaff01aba7 100644 --- a/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_9.2.0_x86_64.replies @@ -31726,12 +31726,50 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "description": "on/off", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "description": "on/off", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "description": "on/off", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31825,7 +31863,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31833,7 +31871,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -31912,7 +31950,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -31920,7 +31958,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -34062,12 +34100,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -34703,7 +34741,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -34711,7 +34749,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -34829,7 +34867,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -34837,7 +34875,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -35035,12 +35073,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37483,12 +37521,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37496,12 +37534,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -37509,12 +37547,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -39007,12 +39045,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -39106,16 +39144,16 @@ "capability": "mapped-ram" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { - "id": "libvirt-47", + "id": "libvirt-48", "error": { "class": "GenericError", "desc": "SEV: Failed to open /dev/sev: No such file or directory" @@ -39124,11 +39162,11 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { - "id": "libvirt-48", + "id": "libvirt-49", "error": { "class": "GenericError", "desc": "Could not open '/dev/sgx_vepc': No such file or directory" @@ -39143,7 +39181,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -39543,7 +39581,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -39557,7 +39595,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39957,7 +39995,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39972,7 +40010,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -40483,7 +40521,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { --=20 2.48.1 From nobody Mon Dec 15 11:50:26 2025 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; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1742348637; cv=none; d=zohomail.com; s=zohoarc; b=WdYxyXY/ux3OykTZon8Utf0Oqm3oNRLNV7yXUtMpGvLXZRJGZDOQFNK/h/JPjgZO8wfyZo5N+cqGlSY/xuDjhIAy8SeTxd27fiox3Yq5Tvc+4W9VxitllnhwyFwnSJ14iB1lhJZf4YyZFi1sMDJXHtjmTg4TiOWEt616DTTs+cY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1742348637; h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=UHcSL14RV/VPaEoofNw2nxnRRtfROBtu6zpiGqgEwkY=; b=fLiUYviMZw1sD7aQUtkcLCGWJpOMU48sApVhFh8FCiVEhJA1bcanY6UAKm3GwcsOgEiOd8y2lolLATW5m3AaNpR4a0QM4vcU+LZPrCm58OAPBEMjmcrG/eTK7b5PfKu6k4aRUqyL3kaJZRG5jvjqTWvopPz/snm3ZiveKOSXKQA= ARC-Authentication-Results: i=1; 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; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1742348637323600.874631691052; Tue, 18 Mar 2025 18:43:57 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 595F518A6; Tue, 18 Mar 2025 21:43:56 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id D9CD41736; Tue, 18 Mar 2025 21:40:23 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id DE79F1704; Tue, 18 Mar 2025 21:40:16 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 123B116FD for ; Tue, 18 Mar 2025 21:40:16 -0400 (EDT) Received: from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-613-un_V5YlLNom1MxRn-KpBXg-1; Tue, 18 Mar 2025 21:40:11 -0400 Received: from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 1ACF41801A06; Wed, 19 Mar 2025 01:40:11 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.44.32.4]) by mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 6C3D4180174E; Wed, 19 Mar 2025 01:40:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_HELO_NONE autolearn=unavailable autolearn_force=no version=3.4.4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1742348415; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=84zfMcyxkytA2DCCISEAPpS9cvBVVgg1OFjBKV6SPR8=; b=O7oHls22R7sVepfIxH8lSs1KUFk6OZLU/lPzEbAlCJGfKfO0H5qkG1ansffela8LTY66EK tapfXpZqSAYUkX0IPOAr226skOT3PfzYZm3bqgxc9PzXb11vg996Z/dCMItCZo+jJys1f/ mrrZ06VcYFll6asGbh790eAsgpfhwAY= X-MC-Unique: un_V5YlLNom1MxRn-KpBXg-1 X-Mimecast-MFC-AGG-ID: un_V5YlLNom1MxRn-KpBXg_1742348411 To: devel@lists.libvirt.org Subject: [libvirt PATCH 3/7] qemu: add IOMMU model amd Date: Wed, 19 Mar 2025 02:38:27 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.111 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: aqH7Arii8s45j-9J8RAdW8O9Fd32KsBeTl3WCSTw02o_1742348411 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: DFSXLCMHOML2MJOQBHI5EZNECYKWQMLT X-Message-ID-Hash: DFSXLCMHOML2MJOQBHI5EZNECYKWQMLT X-MailFrom: jtomko@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: suravee.suthikulpanit@amd.com, bsd@redhat.com X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: From: =?utf-8?q?J=C3=A1n_Tomko_via_Devel?= Reply-To: =?UTF-8?q?J=C3=A1n=20Tomko?= X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1742348638557019100 Content-Type: text/plain; charset="utf-8" Introduce a new IOMMU device model 'amd', both the parser and the formatter for QEMU because of our enum warnings. https://issues.redhat.com/browse/RHEL-50560 Signed-off-by: J=C3=A1n Tomko --- docs/formatdomain.rst | 5 ++- src/conf/domain_conf.c | 1 + src/conf/domain_conf.h | 1 + src/conf/domain_validate.c | 13 +++++++ src/conf/schemas/domaincommon.rng | 1 + src/qemu/qemu_command.c | 28 +++++++++++++ src/qemu/qemu_domain_address.c | 4 ++ src/qemu/qemu_validate.c | 29 ++++++++++++++ .../amd-iommu.x86_64-latest.args | 35 +++++++++++++++++ .../amd-iommu.x86_64-latest.xml | 1 + tests/qemuxmlconfdata/amd-iommu.xml | 39 +++++++++++++++++++ tests/qemuxmlconftest.c | 2 + 12 files changed, 157 insertions(+), 2 deletions(-) create mode 100644 tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args create mode 120000 tests/qemuxmlconfdata/amd-iommu.x86_64-latest.xml create mode 100644 tests/qemuxmlconfdata/amd-iommu.xml diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 9c6bb08726..c5708000b8 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -8904,8 +8904,9 @@ Example: =20 ``model`` Supported values are ``intel`` (for Q35 guests) ``smmuv3`` - (:since:`since 5.5.0`, for ARM virt guests), and ``virtio`` - (:since:`since 8.3.0`, for Q35 and ARM virt guests). + (:since:`since 5.5.0`, for ARM virt guests), ``virtio`` + (:since:`since 8.3.0`, for Q35 and ARM virt guests) and + ``amd`` (:since:`since 11.2.0`). =20 ``driver`` The ``driver`` subelement can be used to configure additional options, = some diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d05e68dd41..961ef08ba1 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1350,6 +1350,7 @@ VIR_ENUM_IMPL(virDomainIOMMUModel, "intel", "smmuv3", "virtio", + "amd", ); =20 VIR_ENUM_IMPL(virDomainVsockModel, diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index cbad1b7f7d..1ec16d3824 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2989,6 +2989,7 @@ typedef enum { VIR_DOMAIN_IOMMU_MODEL_INTEL, VIR_DOMAIN_IOMMU_MODEL_SMMUV3, VIR_DOMAIN_IOMMU_MODEL_VIRTIO, + VIR_DOMAIN_IOMMU_MODEL_AMD, =20 VIR_DOMAIN_IOMMU_MODEL_LAST } virDomainIOMMUModel; diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index 7b901da593..be91caee65 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -3016,6 +3016,18 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *i= ommu) } break; =20 + case VIR_DOMAIN_IOMMU_MODEL_AMD: + if (iommu->caching_mode !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->eim !=3D VIR_TRISTATE_SWITCH_ABSENT || + iommu->aw_bits !=3D 0 || + iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virReportError(VIR_ERR_XML_ERROR, + _("iommu model '%1$s' doesn't support some addi= tional attributes"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + break; + case VIR_DOMAIN_IOMMU_MODEL_INTEL: case VIR_DOMAIN_IOMMU_MODEL_LAST: break; @@ -3033,6 +3045,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) break; =20 case VIR_DOMAIN_IOMMU_MODEL_VIRTIO: + case VIR_DOMAIN_IOMMU_MODEL_AMD: case VIR_DOMAIN_IOMMU_MODEL_LAST: break; } diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index 7ef45a1731..71b68d6687 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6178,6 +6178,7 @@ intel smmuv3 virtio + amd diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 84ff62cd6c..269455ff3b 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6039,6 +6039,7 @@ qemuBuildIOMMUCommandLine(virCommand *cmd, virQEMUCaps *qemuCaps) { g_autoptr(virJSONValue) props =3D NULL; + g_autoptr(virJSONValue) wrapperProps =3D NULL; const virDomainIOMMUDef *iommu =3D def->iommu; =20 if (!iommu) @@ -6083,6 +6084,32 @@ qemuBuildIOMMUCommandLine(virCommand *cmd, /* There is no -device for SMMUv3, so nothing to be done here */ return 0; =20 + case VIR_DOMAIN_IOMMU_MODEL_AMD: + if (virJSONValueObjectAdd(&wrapperProps, + "s:driver", "AMDVI-PCI", + "s:id", iommu->info.alias, + NULL) < 0) + return -1; + + if (qemuBuildDeviceAddressProps(wrapperProps, def, &iommu->info) <= 0) + return -1; + + if (qemuBuildDeviceCommandlineFromJSON(cmd, wrapperProps, def, qem= uCaps) < 0) + return -1; + + if (virJSONValueObjectAdd(&props, + "s:driver", "amd-iommu", + "s:pci-id", iommu->info.alias, + "S:intremap", qemuOnOffAuto(iommu->intre= map), + "T:device-iotlb", iommu->iotlb, + NULL) < 0) + return -1; + + if (qemuBuildDeviceCommandlineFromJSON(cmd, props, def, qemuCaps) = < 0) + return -1; + + return 0; + case VIR_DOMAIN_IOMMU_MODEL_LAST: default: virReportEnumRangeError(virDomainIOMMUModel, iommu->model); @@ -6914,6 +6941,7 @@ qemuBuildMachineCommandLine(virCommand *cmd, =20 case VIR_DOMAIN_IOMMU_MODEL_INTEL: case VIR_DOMAIN_IOMMU_MODEL_VIRTIO: + case VIR_DOMAIN_IOMMU_MODEL_AMD: /* These IOMMUs are formatted in qemuBuildIOMMUCommandLine */ break; =20 diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index e89cdee487..7b65abac82 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -941,6 +941,9 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic= eDef *dev, case VIR_DOMAIN_IOMMU_MODEL_VIRTIO: return virtioFlags | VIR_PCI_CONNECT_INTEGRATED; =20 + case VIR_DOMAIN_IOMMU_MODEL_AMD: + return pciFlags | VIR_PCI_CONNECT_INTEGRATED; + case VIR_DOMAIN_IOMMU_MODEL_INTEL: case VIR_DOMAIN_IOMMU_MODEL_SMMUV3: case VIR_DOMAIN_IOMMU_MODEL_LAST: @@ -2359,6 +2362,7 @@ qemuDomainAssignDevicePCISlots(virDomainDef *def, =20 switch (iommu->model) { case VIR_DOMAIN_IOMMU_MODEL_VIRTIO: + case VIR_DOMAIN_IOMMU_MODEL_AMD: if (virDeviceInfoPCIAddressIsWanted(&iommu->info) && qemuDomainPCIAddressReserveNextAddr(addrs, &iommu->info) <= 0) { return -1; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index 19af0f0209..b1a798802d 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5209,6 +5209,35 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMM= UDef *iommu, } break; =20 + case VIR_DOMAIN_IOMMU_MODEL_AMD: + /* TODO: is this true? */ + if (!qemuDomainIsQ35(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("IOMMU device: '%1$s' is only supported with = Q35 machines"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_AMD_IOMMU_PCI_ID)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("IOMMU device: '%1$s' is not supported with t= his QEMU binary"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + if (def->features[VIR_DOMAIN_FEATURE_ACPI] !=3D VIR_TRISTATE_SWITC= H_ON) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("IOMMU device: '%1$s' requires ACPI"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + if (iommu->info.type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE && + iommu->info.type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCI) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("IOMMU device: '%1$s' needs a PCI address"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + break; + case VIR_DOMAIN_IOMMU_MODEL_LAST: default: virReportEnumRangeError(virDomainIOMMUModel, iommu->model); diff --git a/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args b/tests/qem= uxmlconfdata/amd-iommu.x86_64-latest.args new file mode 100644 index 0000000000..36244edb3a --- /dev/null +++ b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args @@ -0,0 +1,35 @@ +LC_ALL=3DC \ +PATH=3D/bin \ +HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1 \ +USER=3Dtest \ +LOGNAME=3Dtest \ +XDG_DATA_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.local/share \ +XDG_CACHE_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.cache \ +XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ +/usr/bin/qemu-system-x86_64 \ +-name guest=3DQEMUGuest1,debug-threads=3Don \ +-S \ +-object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/va= r/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ +-machine q35,usb=3Doff,kernel_irqchip=3Dsplit,dump-guest-core=3Doff,memory= -backend=3Dpc.ram,acpi=3Don \ +-accel kvm \ +-cpu qemu64 \ +-m size=3D219136k \ +-object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'= \ +-overcommit mem-lock=3Doff \ +-smp 1,sockets=3D1,cores=3D1,threads=3D1 \ +-uuid c7a5fdbd-edaf-9455-926a-d65c16db1809 \ +-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":"AMDVI-PCI","id":"iommu0","bus":"pcie.0","addr":"0x1"}'= \ +-device '{"driver":"amd-iommu","pci-id":"iommu0","intremap":"on","device-i= otlb":true}' \ +-audiodev '{"id":"audio1","driver":"none"}' \ +-global ICH9-LPC.noreboot=3Doff \ +-watchdog-action reset \ +-sandbox on,obsolete=3Ddeny,elevateprivileges=3Ddeny,spawn=3Ddeny,resource= control=3Ddeny \ +-msg timestamp=3Don diff --git a/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.xml b/tests/qemu= xmlconfdata/amd-iommu.x86_64-latest.xml new file mode 120000 index 0000000000..5ba3d4b91b --- /dev/null +++ b/tests/qemuxmlconfdata/amd-iommu.x86_64-latest.xml @@ -0,0 +1 @@ +amd-iommu.xml \ No newline at end of file diff --git a/tests/qemuxmlconfdata/amd-iommu.xml b/tests/qemuxmlconfdata/am= d-iommu.xml new file mode 100644 index 0000000000..0668ed4237 --- /dev/null +++ b/tests/qemuxmlconfdata/amd-iommu.xml @@ -0,0 +1,39 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + +
+ + + +