From nobody Sat Dec 21 14:41:05 2024 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=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1727424332971783.8680141573427; Fri, 27 Sep 2024 01:05:32 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id BDB401377; Fri, 27 Sep 2024 04:05:31 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id E1B8F14AA; Fri, 27 Sep 2024 04:03:46 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id E122A13AF; Fri, 27 Sep 2024 04:03:41 -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 C182B1412 for ; Fri, 27 Sep 2024 04:03:29 -0400 (EDT) Received: from mx-prod-mc-01.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-645-Zkhk8_IuO46UxBFfpP96kg-1; Fri, 27 Sep 2024 04:03:26 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (unknown [10.30.177.40]) (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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id EAA941975AC3 for ; Fri, 27 Sep 2024 08:03:25 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.72.116.143]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C76AB1956054; Fri, 27 Sep 2024 08:03:23 +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.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H3, 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=1727424209; 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=0H72y0BEgMPbg0vPazuGCY3KKJ4KhL1NpeJo3ikknaU=; b=MVooHkOcugNK2La3IxGdeHHcraVQOQvVwRrC7SekrrWvzsDWz8TI0Rw1B1PoWzJZpRmXJE dmM8P9MY7MSbvMvnlHsEwGoazkRzxg6C//jr2s2PJ/M1NaDkluzlcPVI+b9I7MziJHib0I 8XIo5hdz+D/oAPwZTN30ck3MnJyG+X4= X-MC-Unique: Zkhk8_IuO46UxBFfpP96kg-1 From: Han Han To: devel@lists.libvirt.org Subject: [RFC PATCH 1/5] qemu_capabilities: Introduce QEMU_CAPS_AMD_IOMMU Date: Fri, 27 Sep 2024 15:45:42 +0800 Message-ID: <20240927080309.886224-2-hhan@redhat.com> In-Reply-To: <20240927080309.886224-1-hhan@redhat.com> References: <20240927080309.886224-1-hhan@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: BOZIUCC74I5FUTC3T6CCV2LEAL2MRW5J X-Message-ID-Hash: BOZIUCC74I5FUTC3T6CCV2LEAL2MRW5J X-MailFrom: hhan@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: Han Han 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: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1727424334381116600 Content-Type: text/plain; charset="utf-8"; x-default="true" This qemu capability will be used for the device amd-iommu. Signed-off-by: Han Han --- src/qemu/qemu_capabilities.c | 4 + src/qemu/qemu_capabilities.h | 3 + .../caps_5.2.0_x86_64.replies | 90 +++++++++++------ .../caps_5.2.0_x86_64.xml | 1 + .../caps_6.0.0_x86_64.replies | 90 +++++++++++------ .../caps_6.0.0_x86_64.xml | 1 + .../caps_6.1.0_x86_64.replies | 90 +++++++++++------ .../caps_6.1.0_x86_64.xml | 1 + .../caps_6.2.0_x86_64.xml | 1 + .../caps_7.0.0_x86_64.replies | 94 ++++++++++++------ .../caps_7.0.0_x86_64.xml | 1 + .../caps_7.1.0_x86_64.replies | 94 ++++++++++++------ .../caps_7.1.0_x86_64.xml | 1 + .../caps_7.2.0_x86_64+hvf.replies | 94 ++++++++++++------ .../caps_7.2.0_x86_64+hvf.xml | 1 + .../caps_7.2.0_x86_64.replies | 94 ++++++++++++------ .../caps_7.2.0_x86_64.xml | 1 + .../caps_8.0.0_x86_64.replies | 94 ++++++++++++------ .../caps_8.0.0_x86_64.xml | 1 + .../caps_8.1.0_x86_64.replies | 90 +++++++++++------ .../caps_8.1.0_x86_64.xml | 1 + .../caps_8.2.0_x86_64.replies | 86 ++++++++++------ .../caps_8.2.0_x86_64.xml | 1 + .../caps_9.0.0_x86_64.replies | 99 +++++++++++++------ .../caps_9.0.0_x86_64.xml | 1 + .../caps_9.1.0_x86_64.replies | 79 ++++++++++----- .../caps_9.1.0_x86_64.xml | 1 + 27 files changed, 752 insertions(+), 362 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 6a0f3e2ab7..5ecee07a53 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -715,6 +715,9 @@ VIR_ENUM_IMPL(virQEMUCaps, "acpi-erst", /* QEMU_CAPS_DEVICE_ACPI_ERST */ "intel-iommu.dma-translation", /* QEMU_CAPS_INTEL_IOMMU_DMA_= TRANSLATION */ "machine-i8042-opt", /* QEMU_CAPS_MACHINE_I8042_OPT */ + + /* 465 */ + "amd-iommu", /* QEMU_CAPS_DEVICE_AMD_IOMMU */ ); =20 =20 @@ -1402,6 +1405,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[= ] =3D { { "virtio-sound-device", QEMU_CAPS_DEVICE_VIRTIO_SOUND }, { "sev-snp-guest", QEMU_CAPS_SEV_SNP_GUEST }, { "acpi-erst", QEMU_CAPS_DEVICE_ACPI_ERST }, + { "amd-iommu", QEMU_CAPS_DEVICE_AMD_IOMMU }, }; =20 =20 diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 736d34179e..3075fe069c 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -695,6 +695,9 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ QEMU_CAPS_INTEL_IOMMU_DMA_TRANSLATION, /* intel-iommu.dma-translation = */ QEMU_CAPS_MACHINE_I8042_OPT, /* -machine xxx,i8042=3Don/off; use virQE= MUCapsSupportsI8042Toggle() to query this capability */ =20 + /* 465 */ + QEMU_CAPS_DEVICE_AMD_IOMMU, /* -device amd-iommu */ + QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; =20 diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_5.2.0_x86_64.replies index 3f5405d83e..cb0c432868 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.replies @@ -20589,12 +20589,42 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -20664,7 +20694,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -20672,7 +20702,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -20741,7 +20771,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -20749,7 +20779,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -22347,12 +22377,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -22810,7 +22840,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -22818,7 +22848,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -22903,7 +22933,7 @@ "type": "string" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -22911,7 +22941,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -23036,12 +23066,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -24822,12 +24852,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -24835,12 +24865,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -24848,12 +24878,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -26137,12 +26167,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -26220,16 +26250,16 @@ "capability": "validate-uuid" } ], - "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 is not enabled in KVM" @@ -26244,7 +26274,7 @@ "name": "host" } }, - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -26553,7 +26583,7 @@ } } }, - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -26567,7 +26597,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -26876,7 +26906,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -26891,7 +26921,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -27200,7 +27230,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.2.0_x86_64.xml index 4cd05fa7ec..c46b023c78 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml @@ -161,6 +161,7 @@ + 5002000 43100243 v5.2.0 diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_6.0.0_x86_64.replies index 5380b322d2..683b245c2e 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.replies @@ -22363,12 +22363,42 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -22442,7 +22472,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -22450,7 +22480,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -22519,7 +22549,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -22527,7 +22557,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -24173,12 +24203,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -24625,7 +24655,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -24633,7 +24663,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -24731,7 +24761,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -24739,7 +24769,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -24884,12 +24914,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -26713,12 +26743,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -26726,12 +26756,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -26739,12 +26769,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -28052,12 +28082,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -28139,12 +28169,12 @@ "capability": "background-snapshot" } ], - "id": "libvirt-46" + "id": "libvirt-47" } =20 { "execute": "query-sev-capabilities", - "id": "libvirt-47" + "id": "libvirt-48" } =20 { @@ -28154,7 +28184,7 @@ "cert-chain": "AQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAA= ", "pdh": "AQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAAOAAAAQAAAAA= OAAA" }, - "id": "libvirt-47" + "id": "libvirt-48" } =20 { @@ -28165,7 +28195,7 @@ "name": "host" } }, - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -28486,7 +28516,7 @@ } } }, - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -28500,7 +28530,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -28821,7 +28851,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -28836,7 +28866,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -29157,7 +29187,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.0.0_x86_64.xml index dc55e0ab3f..a189694f3b 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml @@ -173,6 +173,7 @@ + 6000000 43100242 v6.0.0 diff --git a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.replies b/tests/q= emucapabilitiesdata/caps_6.1.0_x86_64.replies index 6fb37d63d5..fec03bdf02 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.replies @@ -22592,12 +22592,42 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -22676,7 +22706,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -22684,7 +22714,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -22758,7 +22788,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -22766,7 +22796,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -24424,12 +24454,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -24894,7 +24924,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -24902,7 +24932,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -25005,7 +25035,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -25013,7 +25043,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -25172,12 +25202,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -27189,12 +27219,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -27202,12 +27232,12 @@ "tpm-crb", "tpm-tis" ], - "id": "libvirt-43" + "id": "libvirt-44" } =20 { "execute": "query-tpm-types", - "id": "libvirt-44" + "id": "libvirt-45" } =20 { @@ -27215,12 +27245,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -28540,12 +28570,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -28627,16 +28657,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": "Failed to open /dev/sev: No such file or directory" @@ -28651,7 +28681,7 @@ "name": "host" } }, - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -28974,7 +29004,7 @@ } } }, - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -28988,7 +29018,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -29311,7 +29341,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -29326,7 +29356,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -29649,7 +29679,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.1.0_x86_64.xml index 1d5b8ea9d2..641841d02d 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml @@ -179,6 +179,7 @@ + 6001000 43100243 v6.1.0 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.2.0_x86_64.xml index f8f8bd95f4..e7da931a73 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml @@ -181,6 +181,7 @@ + 6002000 43100244 v6.2.0 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..2d9c660813 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.replies @@ -26276,12 +26276,42 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -26360,7 +26390,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -26368,7 +26398,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -26442,7 +26472,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -26450,7 +26480,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -28206,12 +28236,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -28712,7 +28742,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -28720,7 +28750,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -28823,7 +28853,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -28831,7 +28861,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -29008,12 +29038,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -31073,12 +31103,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -31086,12 +31116,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 +31129,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -32428,12 +32458,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -32515,16 +32545,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 +32563,7 @@ =20 { "execute": "query-sgx-capabilities", - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -32554,7 +32584,7 @@ } ] }, - "id": "libvirt-48" + "id": "libvirt-49" } =20 { @@ -32565,7 +32595,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -32902,7 +32932,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -32916,7 +32946,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -33253,7 +33283,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -33268,7 +33298,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -33605,7 +33635,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.0.0_x86_64.xml index 23b626aa16..3218c5aa98 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml @@ -189,6 +189,7 @@ + 7000000 43100243 v7.0.0 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..286878bc6c 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.replies @@ -26999,12 +26999,42 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -27083,7 +27113,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -27091,7 +27121,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -27165,7 +27195,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -27173,7 +27203,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -28966,12 +28996,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -29490,7 +29520,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -29498,7 +29528,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -29611,7 +29641,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -29619,7 +29649,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -29811,12 +29841,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -31755,12 +31785,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -31768,12 +31798,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 +31811,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -33110,12 +33140,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -33205,16 +33235,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 +33253,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 +33272,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -33580,7 +33610,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -33594,7 +33624,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -33932,7 +33962,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -33947,7 +33977,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -34285,7 +34315,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.1.0_x86_64.xml index 81c4cc474b..ade421305a 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml @@ -194,6 +194,7 @@ + 7001000 43100244 v7.1.0 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..5bb30166f6 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,42 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -28057,7 +28087,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -28065,7 +28095,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -28144,7 +28174,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -28152,7 +28182,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -29945,12 +29975,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -30487,7 +30517,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -30495,7 +30525,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -30608,7 +30638,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -30616,7 +30646,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -30808,12 +30838,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -32752,12 +32782,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -32765,12 +32795,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 +32808,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -34107,12 +34137,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -34202,16 +34232,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 +34250,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 +34269,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -34577,7 +34607,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -34591,7 +34621,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -34929,7 +34959,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -34944,7 +34974,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -35282,7 +35312,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { 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 18d74d6e8c..f920f96d41 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml @@ -198,6 +198,7 @@ + 7002000 43100245 v7.2.0 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..63513646f1 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.replies @@ -27968,12 +27968,42 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -28057,7 +28087,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -28065,7 +28095,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -28144,7 +28174,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -28152,7 +28182,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -29945,12 +29975,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -30487,7 +30517,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -30495,7 +30525,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -30608,7 +30638,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -30616,7 +30646,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -30808,12 +30838,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -32752,12 +32782,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -32765,12 +32795,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 +32808,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -34107,12 +34137,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -34202,16 +34232,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 +34250,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 +34269,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -34577,7 +34607,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -34591,7 +34621,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -34929,7 +34959,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -34944,7 +34974,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -35282,7 +35312,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_7.2.0_x86_64.xml index fb52a30f04..3b23debd94 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml @@ -198,6 +198,7 @@ + 7002000 43100245 v7.2.0 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..f51e0bb223 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.replies @@ -29339,12 +29339,42 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -29428,7 +29458,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -29436,7 +29466,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -29515,7 +29545,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -29523,7 +29553,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -31340,12 +31370,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -31961,7 +31991,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -31969,7 +31999,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -32082,7 +32112,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -32090,7 +32120,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -32282,12 +32312,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -34333,12 +34363,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -34346,12 +34376,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 +34389,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -35805,12 +35835,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -35900,16 +35930,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 +35948,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 +35967,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -36280,7 +36310,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -36294,7 +36324,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -36637,7 +36667,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -36652,7 +36682,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -37101,7 +37131,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.0.0_x86_64.xml index 459d05bf43..1884221439 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -202,6 +202,7 @@ + 8000000 43100244 v8.0.0 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..6d94863029 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.replies @@ -30191,12 +30191,42 @@ "id": "libvirt-36" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-37" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-37" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -30275,7 +30305,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -30283,7 +30313,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -32180,12 +32210,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -32821,7 +32851,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -32829,7 +32859,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -32942,7 +32972,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -32950,7 +32980,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -33138,12 +33168,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -35525,12 +35555,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -35538,12 +35568,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 +35581,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -37014,12 +37044,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -37117,16 +37147,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 +37165,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 +37184,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -37517,7 +37547,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -37531,7 +37561,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -37894,7 +37924,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -37909,7 +37939,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -38378,7 +38408,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.1.0_x86_64.xml index 289c87ff19..1f2f91ce6f 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -204,6 +204,7 @@ + 8001000 43100245 v8.1.0 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..5b6fad2246 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.replies @@ -30974,12 +30974,42 @@ "id": "libvirt-37" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-38" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + } + ], + "id": "libvirt-38" +} + { "execute": "qom-list-properties", "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -32892,12 +32922,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33513,7 +33543,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33521,7 +33551,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33634,7 +33664,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33642,7 +33672,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -33830,12 +33860,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -36217,12 +36247,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -36230,12 +36260,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 +36273,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -37719,12 +37749,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -37822,16 +37852,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 +37870,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 +37889,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38226,7 +38256,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38240,7 +38270,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -38607,7 +38637,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -38622,7 +38652,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -39095,7 +39125,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_8.2.0_x86_64.xml index e56d5dafa4..ad68484130 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -207,6 +207,7 @@ + 8002000 43100246 v8.2.0 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..17f60bdfcc 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.replies @@ -31003,12 +31003,47 @@ "id": "libvirt-35" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-36" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "type": "bool" + } + ], + "id": "libvirt-36" +} + { "execute": "qom-list-properties", "arguments": { "typename": "memory-backend-file" }, - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31102,7 +31137,7 @@ "type": "bool" } ], - "id": "libvirt-36" + "id": "libvirt-37" } =20 { @@ -31110,7 +31145,7 @@ "arguments": { "typename": "memory-backend-memfd" }, - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -31189,7 +31224,7 @@ "type": "int" } ], - "id": "libvirt-37" + "id": "libvirt-38" } =20 { @@ -31197,7 +31232,7 @@ "arguments": { "typename": "max-x86_64-cpu" }, - "id": "libvirt-38" + "id": "libvirt-39" } =20 { @@ -33114,12 +33149,12 @@ "type": "bool" } ], - "id": "libvirt-38" + "id": "libvirt-39" } =20 { "execute": "query-machines", - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33755,7 +33790,7 @@ "default-ram-id": "pc.ram" } ], - "id": "libvirt-39" + "id": "libvirt-40" } =20 { @@ -33763,7 +33798,7 @@ "arguments": { "typename": "none-machine" }, - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33876,7 +33911,7 @@ "type": "child" } ], - "id": "libvirt-40" + "id": "libvirt-41" } =20 { @@ -33884,7 +33919,7 @@ "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -34076,12 +34111,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -36463,12 +36498,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -36476,12 +36511,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 +36524,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -37969,12 +38004,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -38076,16 +38111,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 +38129,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 +38148,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38481,7 +38516,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -38495,7 +38530,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -38863,7 +38898,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -38878,7 +38913,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -39352,7 +39387,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index 3f1f518d22..f899773766 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -209,6 +209,7 @@ + 9000000 43100245 v9.0.0 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..3637ab0e0a 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.replies @@ -34378,12 +34378,47 @@ "id": "libvirt-40" } =20 +{ + "execute": "device-list-properties", + "arguments": { + "typename": "amd-iommu" + }, + "id": "libvirt-41" +} + +{ + "return": [ + { + "default-value": true, + "name": "pt", + "type": "bool" + }, + { + "default-value": false, + "name": "device-iotlb", + "type": "bool" + }, + { + "default-value": "auto", + "name": "intremap", + "description": "on/off/auto", + "type": "OnOffAuto" + }, + { + "default-value": false, + "name": "xtsup", + "type": "bool" + } + ], + "id": "libvirt-41" +} + { "execute": "qom-list-properties", "arguments": { "typename": "generic-pc-machine" }, - "id": "libvirt-41" + "id": "libvirt-42" } =20 { @@ -34575,12 +34610,12 @@ "type": "bool" } ], - "id": "libvirt-41" + "id": "libvirt-42" } =20 { "execute": "query-cpu-definitions", - "id": "libvirt-42" + "id": "libvirt-43" } =20 { @@ -37131,12 +37166,12 @@ "deprecated": false } ], - "id": "libvirt-42" + "id": "libvirt-43" } =20 { "execute": "query-tpm-models", - "id": "libvirt-43" + "id": "libvirt-44" } =20 { @@ -37144,12 +37179,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 +37192,12 @@ "passthrough", "emulator" ], - "id": "libvirt-44" + "id": "libvirt-45" } =20 { "execute": "query-command-line-options", - "id": "libvirt-45" + "id": "libvirt-46" } =20 { @@ -38645,12 +38680,12 @@ "option": "drive" } ], - "id": "libvirt-45" + "id": "libvirt-46" } =20 { "execute": "query-migrate-capabilities", - "id": "libvirt-46" + "id": "libvirt-47" } =20 { @@ -38744,16 +38779,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 +38797,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 +38816,7 @@ "name": "host" } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -39159,7 +39194,7 @@ } } }, - "id": "libvirt-49" + "id": "libvirt-50" } =20 { @@ -39173,7 +39208,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39551,7 +39586,7 @@ } } }, - "id": "libvirt-50" + "id": "libvirt-51" } =20 { @@ -39566,7 +39601,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { @@ -40054,7 +40089,7 @@ } } }, - "id": "libvirt-51" + "id": "libvirt-52" } =20 { diff --git a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.1.0_x86_64.xml index a6b3768dfd..4bdeaa7f62 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -207,6 +207,7 @@ + 9001000 43100246 v9.1.0 --=20 2.46.2 From nobody Sat Dec 21 14:41:05 2024 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=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1727424396382714.9661433517381; Fri, 27 Sep 2024 01:06:36 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 4C3B2155C; Fri, 27 Sep 2024 04:06:35 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 605C6139D; Fri, 27 Sep 2024 04:03:50 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 361DB12FB; Fri, 27 Sep 2024 04:03:46 -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 19B231471 for ; Fri, 27 Sep 2024 04:03:31 -0400 (EDT) Received: from mx-prod-mc-03.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-507-ecrjcpycMc2zn1LsBRC4yw-1; Fri, 27 Sep 2024 04:03:29 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (unknown [10.30.177.40]) (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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 80E4218EBA91 for ; Fri, 27 Sep 2024 08:03:28 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.72.116.143]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id C4B581956054; Fri, 27 Sep 2024 08:03:26 +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.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H3, 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=1727424210; 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=gPPUHPBy1CPEWk5lQuvDSvnuoYQeT5hRalXM0Ltf+YU=; b=Iw6/9TWX7D3ypcCGvjOjoWQCQ0ZG6jAPfoCfcsoVGYnbSxvIneke3W1rx1dAk7RfdT/oWk DTuSXsXkazYwOsFF6jUUDP+tpTnRjSnyYEUhTc7T2H5UECeFHPMc1U4eJHDFmeUc5Oitop jXQcEJFfAbIXdDqIomZeAeb89b4hw8I= X-MC-Unique: ecrjcpycMc2zn1LsBRC4yw-1 From: Han Han To: devel@lists.libvirt.org Subject: [RFC PATCH 2/5] qemu_capabilities: Introduce QEMU_CAPS_AMD_IOMMU_INTREMAP Date: Fri, 27 Sep 2024 15:45:43 +0800 Message-ID: <20240927080309.886224-3-hhan@redhat.com> In-Reply-To: <20240927080309.886224-1-hhan@redhat.com> References: <20240927080309.886224-1-hhan@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: OG7G2YONA63YYTLQXR6XROXINU5ZUS5R X-Message-ID-Hash: OG7G2YONA63YYTLQXR6XROXINU5ZUS5R X-MailFrom: hhan@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: Han Han 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: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1727424398676116600 Content-Type: text/plain; charset="utf-8"; x-default="true" It will be used for the property "intremap" of the device amd-iommu. Signed-off-by: Han Han --- src/qemu/qemu_capabilities.c | 8 ++++++++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.1.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 + 15 files changed, 22 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 5ecee07a53..4fe354200d 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -718,6 +718,7 @@ VIR_ENUM_IMPL(virQEMUCaps, =20 /* 465 */ "amd-iommu", /* QEMU_CAPS_DEVICE_AMD_IOMMU */ + "amd-iommu.intremap", /* QEMU_CAPS_AMD_IOMMU_INTREMAP */ ); =20 =20 @@ -1546,6 +1547,10 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCap= sDevicePropsVirtioIOMMU[] =3D { "boot-bypass", QEMU_CAPS_VIRTIO_IOMMU_BOOT_BYPASS, NULL }, }; =20 +static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsAmdIOMMU[]= =3D { + { "intremap", QEMU_CAPS_AMD_IOMMU_INTREMAP, 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 }, @@ -1702,6 +1707,9 @@ static virQEMUCapsDeviceTypeProps virQEMUCapsDevicePr= ops[] =3D { { "virtio-iommu-pci", virQEMUCapsDevicePropsVirtioIOMMU, G_N_ELEMENTS(virQEMUCapsDevicePropsVirtioIOMMU), QEMU_CAPS_DEVICE_VIRTIO_IOMMU_PCI }, + { "amd-iommu", virQEMUCapsDevicePropsAmdIOMMU, + G_N_ELEMENTS(virQEMUCapsDevicePropsAmdIOMMU), + QEMU_CAPS_DEVICE_AMD_IOMMU}, }; =20 static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsMemoryBackendFi= le[] =3D { diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 3075fe069c..2b87b1ff97 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -697,6 +697,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ =20 /* 465 */ QEMU_CAPS_DEVICE_AMD_IOMMU, /* -device amd-iommu */ + QEMU_CAPS_AMD_IOMMU_INTREMAP, /* amd-iommu.intremap */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.2.0_x86_64.xml index c46b023c78..2bbe431a54 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml @@ -162,6 +162,7 @@ + 5002000 43100243 v5.2.0 diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.0.0_x86_64.xml index a189694f3b..ed5415ac50 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml @@ -174,6 +174,7 @@ + 6000000 43100242 v6.0.0 diff --git a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.1.0_x86_64.xml index 641841d02d..208378cd3d 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml @@ -180,6 +180,7 @@ + 6001000 43100243 v6.1.0 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.2.0_x86_64.xml index e7da931a73..d122272fd5 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml @@ -182,6 +182,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 3218c5aa98..7a5c0d0bff 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml @@ -190,6 +190,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 ade421305a..ae41f4a327 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml @@ -195,6 +195,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 f920f96d41..1f02202c1e 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml @@ -199,6 +199,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 3b23debd94..f24418b5bd 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml @@ -199,6 +199,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 1884221439..f80b9e9541 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -203,6 +203,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 1f2f91ce6f..6b1442e477 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -205,6 +205,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 ad68484130..f1b183ca7d 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -208,6 +208,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 f899773766..1caa710622 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -210,6 +210,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 4bdeaa7f62..62a2d48dce 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -208,6 +208,7 @@ + 9001000 43100246 v9.1.0 --=20 2.46.2 From nobody Sat Dec 21 14:41:05 2024 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=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 172742443334348.20702618412156; Fri, 27 Sep 2024 01:07:13 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 56C05140C; Fri, 27 Sep 2024 04:07:12 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id D025A1429; Fri, 27 Sep 2024 04:03:52 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 7F0DE14EB; Fri, 27 Sep 2024 04:03:47 -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 21C85130D for ; Fri, 27 Sep 2024 04:03:35 -0400 (EDT) Received: from mx-prod-mc-01.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-261-mwoYYzUtPxqd5BqpiXJvaQ-1; Fri, 27 Sep 2024 04:03:33 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (unknown [10.30.177.40]) (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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 17EB91975AE8 for ; Fri, 27 Sep 2024 08:03:31 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.72.116.143]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 5A7C51956054; Fri, 27 Sep 2024 08:03:28 +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.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H3, 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=1727424214; 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=uGLmIFjb7lTIWyW7xbSACQkFOCvQM1P8M6eIlsGu/bw=; b=LMXkUwloFMYBnHQoYwM2lQ1dC5O6DqtoBG5+l6dlSIaT2jB9JmacD8u++VbIgAxO87Ri+i IHUv7BsQHnwdtT9kAjmGHM3viGPDXmVmv+MIAQZeMY+Rhi/09EKOxPbV5toetGgCSADWs3 5tGlZvQQ6w/BSSaj99P0bHrzmU0pnSY= X-MC-Unique: mwoYYzUtPxqd5BqpiXJvaQ-1 From: Han Han To: devel@lists.libvirt.org Subject: [RFC PATCH 3/5] qemu_capabilities: Introduce QEMU_CAPS_AMD_IOMMU_DEVICE_IOTLB Date: Fri, 27 Sep 2024 15:45:44 +0800 Message-ID: <20240927080309.886224-4-hhan@redhat.com> In-Reply-To: <20240927080309.886224-1-hhan@redhat.com> References: <20240927080309.886224-1-hhan@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: TTBDTT5OGK6X7NQ2LGTKTCGZZQ5BD7AZ X-Message-ID-Hash: TTBDTT5OGK6X7NQ2LGTKTCGZZQ5BD7AZ X-MailFrom: hhan@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: Han Han 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: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1727424434652116600 Content-Type: text/plain; charset="utf-8"; x-default="true" It will be used for the device-iotlb property of amd-iommu device. Signed-off-by: Han Han --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_6.1.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 + 15 files changed, 16 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 4fe354200d..750f01116c 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -719,6 +719,7 @@ VIR_ENUM_IMPL(virQEMUCaps, /* 465 */ "amd-iommu", /* QEMU_CAPS_DEVICE_AMD_IOMMU */ "amd-iommu.intremap", /* QEMU_CAPS_AMD_IOMMU_INTREMAP */ + "amd-iommu.device-iotlb", /* QEMU_CAPS_AMD_IOMMU_DEVICE_IOTL= B */ ); =20 =20 @@ -1549,6 +1550,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCaps= DevicePropsVirtioIOMMU[] =3D =20 static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsAmdIOMMU[]= =3D { { "intremap", QEMU_CAPS_AMD_IOMMU_INTREMAP, NULL }, + { "device-iotlb", QEMU_CAPS_AMD_IOMMU_DEVICE_IOTLB, NULL }, }; =20 /* see documentation for virQEMUQAPISchemaPathGet for the query format */ diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 2b87b1ff97..62b34bdb7c 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -698,6 +698,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ /* 465 */ QEMU_CAPS_DEVICE_AMD_IOMMU, /* -device amd-iommu */ QEMU_CAPS_AMD_IOMMU_INTREMAP, /* amd-iommu.intremap */ + QEMU_CAPS_AMD_IOMMU_DEVICE_IOTLB, /* amd-iommu.device-iotlb */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_5.2.0_x86_64.xml index 2bbe431a54..e8c4112bdd 100644 --- a/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_5.2.0_x86_64.xml @@ -163,6 +163,7 @@ + 5002000 43100243 v5.2.0 diff --git a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.0.0_x86_64.xml index ed5415ac50..ae1c2647b3 100644 --- a/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.0.0_x86_64.xml @@ -175,6 +175,7 @@ + 6000000 43100242 v6.0.0 diff --git a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.1.0_x86_64.xml index 208378cd3d..adb7d3125a 100644 --- a/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.1.0_x86_64.xml @@ -181,6 +181,7 @@ + 6001000 43100243 v6.1.0 diff --git a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_6.2.0_x86_64.xml index d122272fd5..78d70da077 100644 --- a/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_6.2.0_x86_64.xml @@ -183,6 +183,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 7a5c0d0bff..e73f5d5c21 100644 --- a/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.0.0_x86_64.xml @@ -191,6 +191,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 ae41f4a327..a1b81d9453 100644 --- a/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.1.0_x86_64.xml @@ -196,6 +196,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 1f02202c1e..1e5aa020f4 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64+hvf.xml @@ -200,6 +200,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 f24418b5bd..fd00740292 100644 --- a/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_7.2.0_x86_64.xml @@ -200,6 +200,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 f80b9e9541..db3595077a 100644 --- a/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.0.0_x86_64.xml @@ -204,6 +204,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 6b1442e477..b1e9f6b1fa 100644 --- a/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.1.0_x86_64.xml @@ -206,6 +206,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 f1b183ca7d..947ed3aa99 100644 --- a/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_8.2.0_x86_64.xml @@ -209,6 +209,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 1caa710622..5cbcc5f210 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -211,6 +211,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 62a2d48dce..bda7a6d28d 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -209,6 +209,7 @@ + 9001000 43100246 v9.1.0 --=20 2.46.2 From nobody Sat Dec 21 14:41:05 2024 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=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1727424457365627.283214125048; Fri, 27 Sep 2024 01:07:37 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 43EFF14C1; Fri, 27 Sep 2024 04:07:36 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 663FF1448; Fri, 27 Sep 2024 04:03:55 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id E58E0131B; Fri, 27 Sep 2024 04:03:48 -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 6CBF4132D for ; Fri, 27 Sep 2024 04:03:36 -0400 (EDT) Received: from mx-prod-mc-03.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-66-Dmp4xOdnMmex-GA1bTM8hw-1; Fri, 27 Sep 2024 04:03:34 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (unknown [10.30.177.40]) (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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id A462B18F4981 for ; Fri, 27 Sep 2024 08:03:33 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.72.116.143]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id E5D7B1956054; Fri, 27 Sep 2024 08:03:31 +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.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H3, 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=1727424216; 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=58rusfc8uVP2LACkA43Iu3EgqPkfWYJiw//bu+pxA8c=; b=PsRpx+VhdksoH0PP4/3M7xQFuCjBACQDHyaSsZkq9JdLo+FeFk8dIOKtabn2+toh4wqvFQ wfl3SoPAzenpNUYrB/BWhqUb23t1Hi79fTPxhPzD8fgJxbvRzakhyqL5EvWVtSKE+GM5ey e9WXjErFED2nsyOEV6MVpv6GsTSsAQs= X-MC-Unique: Dmp4xOdnMmex-GA1bTM8hw-1 From: Han Han To: devel@lists.libvirt.org Subject: [RFC PATCH 4/5] qemu_capabilities: Introduce QEMU_CAPS_AMD_IOMMU_XTSUP Date: Fri, 27 Sep 2024 15:45:45 +0800 Message-ID: <20240927080309.886224-5-hhan@redhat.com> In-Reply-To: <20240927080309.886224-1-hhan@redhat.com> References: <20240927080309.886224-1-hhan@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: LNO42JC7UNB4NBV4RGQS6N2YMG2OQGDN X-Message-ID-Hash: LNO42JC7UNB4NBV4RGQS6N2YMG2OQGDN X-MailFrom: hhan@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: Han Han 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: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1727424458707116600 Content-Type: text/plain; charset="utf-8"; x-default="true" It will be used for the xtsup property of amd-iommu device. Signed-off-by: Han Han --- src/qemu/qemu_capabilities.c | 2 ++ src/qemu/qemu_capabilities.h | 1 + tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml | 1 + 4 files changed, 5 insertions(+) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 750f01116c..a57b7eae2a 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -720,6 +720,7 @@ VIR_ENUM_IMPL(virQEMUCaps, "amd-iommu", /* QEMU_CAPS_DEVICE_AMD_IOMMU */ "amd-iommu.intremap", /* QEMU_CAPS_AMD_IOMMU_INTREMAP */ "amd-iommu.device-iotlb", /* QEMU_CAPS_AMD_IOMMU_DEVICE_IOTL= B */ + "amd-iommu.xtsup", /* QEMU_CAPS_AMD_IOMMU_XTSUP */ ); =20 =20 @@ -1551,6 +1552,7 @@ static struct virQEMUCapsDevicePropsFlags virQEMUCaps= DevicePropsVirtioIOMMU[] =3D static struct virQEMUCapsDevicePropsFlags virQEMUCapsDevicePropsAmdIOMMU[]= =3D { { "intremap", QEMU_CAPS_AMD_IOMMU_INTREMAP, NULL }, { "device-iotlb", QEMU_CAPS_AMD_IOMMU_DEVICE_IOTLB, NULL }, + { "xtsup", QEMU_CAPS_AMD_IOMMU_XTSUP, NULL }, }; =20 /* see documentation for virQEMUQAPISchemaPathGet for the query format */ diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index 62b34bdb7c..c8bbe5d6f9 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -699,6 +699,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ QEMU_CAPS_DEVICE_AMD_IOMMU, /* -device amd-iommu */ QEMU_CAPS_AMD_IOMMU_INTREMAP, /* amd-iommu.intremap */ QEMU_CAPS_AMD_IOMMU_DEVICE_IOTLB, /* amd-iommu.device-iotlb */ + QEMU_CAPS_AMD_IOMMU_XTSUP, /* amd-iommu.xtsup */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml b/tests/qemuc= apabilitiesdata/caps_9.0.0_x86_64.xml index 5cbcc5f210..039b8adbc6 100644 --- a/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.0.0_x86_64.xml @@ -212,6 +212,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 bda7a6d28d..cfb1e46b4b 100644 --- a/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_9.1.0_x86_64.xml @@ -210,6 +210,7 @@ + 9001000 43100246 v9.1.0 --=20 2.46.2 From nobody Sat Dec 21 14:41:05 2024 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=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1727424537288420.0106114483284; Fri, 27 Sep 2024 01:08:57 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 3B95811D9; Fri, 27 Sep 2024 04:08:50 -0400 (EDT) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 7EA5613BA; Fri, 27 Sep 2024 04:04:01 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 996) id 4E79914DE; Fri, 27 Sep 2024 04:03:56 -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 0D5641436 for ; Fri, 27 Sep 2024 04:03:40 -0400 (EDT) Received: from mx-prod-mc-01.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-561-WPz9fdw5OriG4zvoN-VO8Q-1; Fri, 27 Sep 2024 04:03:38 -0400 Received: from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (unknown [10.30.177.40]) (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-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 6ADD9196E081 for ; Fri, 27 Sep 2024 08:03:37 +0000 (UTC) Received: from fedora.redhat.com (unknown [10.72.116.143]) by mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 7F9FB1956054; Fri, 27 Sep 2024 08:03:34 +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.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H3, 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=1727424219; 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=1NkbkIpwO4s7jIeWbHxHka0SPzjxnrTkcKkOE1vTftI=; b=Jov1m1D2idzPESwwVxECOeLmt8pfIwA4bJMcPoRM7uMGM476p59+cpcR8OLb5Xpv8z++DT 7SZ+NaoFzOTJ1WQ916fi7lB/pjdAzmi3qb2iRQAtkbLIerORWSrXXeoBdpEVVAQWENrXTR uW6iPgNcBcxucq3gaKKBv50blm9FSMs= X-MC-Unique: WPz9fdw5OriG4zvoN-VO8Q-1 From: Han Han To: devel@lists.libvirt.org Subject: [RFC PATCH 5/5] qemu: Add suppport for amd-iommu device and xtsup attrib Date: Fri, 27 Sep 2024 15:45:46 +0800 Message-ID: <20240927080309.886224-6-hhan@redhat.com> In-Reply-To: <20240927080309.886224-1-hhan@redhat.com> References: <20240927080309.886224-1-hhan@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.40 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: QUEIXIG7ELOWNLD5FLDFC336NCFP6CE6 X-Message-ID-Hash: QUEIXIG7ELOWNLD5FLDFC336NCFP6CE6 X-MailFrom: hhan@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: Han Han 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: X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1727424539265116600 Content-Type: text/plain; charset="utf-8"; x-default="true" Fixes: https://issues.redhat.com/browse/RHEL-50560 Signed-off-by: Han Han --- docs/formatdomain.rst | 20 +++++++++- src/conf/domain_conf.c | 16 ++++++++ src/conf/domain_conf.h | 2 + src/conf/domain_validate.c | 39 ++++++++++++++++++- src/conf/schemas/domaincommon.rng | 6 +++ src/qemu/qemu_command.c | 15 +++++++ src/qemu/qemu_domain_address.c | 2 + src/qemu/qemu_validate.c | 1 + tests/qemuxmlconfdata/amd-iommu-aw-bits.err | 1 + tests/qemuxmlconfdata/amd-iommu-aw-bits.xml | 32 +++++++++++++++ .../amd-iommu-caching-mode.err | 1 + .../amd-iommu-caching-mode.xml | 32 +++++++++++++++ .../amd-iommu-device-iotlb.x86_64-latest.args | 34 ++++++++++++++++ .../amd-iommu-device-iotlb.xml | 37 ++++++++++++++++++ .../amd-iommu-dma-translation.err | 1 + .../amd-iommu-dma-translation.xml | 32 +++++++++++++++ tests/qemuxmlconfdata/amd-iommu-eim.err | 1 + tests/qemuxmlconfdata/amd-iommu-eim.xml | 32 +++++++++++++++ .../amd-iommu-xtsup.x86_64-latest.args | 34 ++++++++++++++++ tests/qemuxmlconfdata/amd-iommu-xtsup.xml | 32 +++++++++++++++ .../amd-iommu.x86_64-latest.args | 34 ++++++++++++++++ tests/qemuxmlconfdata/amd-iommu.xml | 32 +++++++++++++++ tests/qemuxmlconfdata/intel-iommu-xtsup.err | 1 + tests/qemuxmlconfdata/intel-iommu-xtsup.xml | 38 ++++++++++++++++++ tests/qemuxmlconftest.c | 8 ++++ 25 files changed, 480 insertions(+), 3 deletions(-) create mode 100644 tests/qemuxmlconfdata/amd-iommu-aw-bits.err create mode 100644 tests/qemuxmlconfdata/amd-iommu-aw-bits.xml create mode 100644 tests/qemuxmlconfdata/amd-iommu-caching-mode.err create mode 100644 tests/qemuxmlconfdata/amd-iommu-caching-mode.xml create mode 100644 tests/qemuxmlconfdata/amd-iommu-device-iotlb.x86_64-lat= est.args create mode 100644 tests/qemuxmlconfdata/amd-iommu-device-iotlb.xml create mode 100644 tests/qemuxmlconfdata/amd-iommu-dma-translation.err create mode 100644 tests/qemuxmlconfdata/amd-iommu-dma-translation.xml create mode 100644 tests/qemuxmlconfdata/amd-iommu-eim.err create mode 100644 tests/qemuxmlconfdata/amd-iommu-eim.xml create mode 100644 tests/qemuxmlconfdata/amd-iommu-xtsup.x86_64-latest.args create mode 100644 tests/qemuxmlconfdata/amd-iommu-xtsup.xml create mode 100644 tests/qemuxmlconfdata/amd-iommu.x86_64-latest.args create mode 100644 tests/qemuxmlconfdata/amd-iommu.xml create mode 100644 tests/qemuxmlconfdata/intel-iommu-xtsup.err create mode 100644 tests/qemuxmlconfdata/intel-iommu-xtsup.xml diff --git a/docs/formatdomain.rst b/docs/formatdomain.rst index 4336cff3ac..866dbf4bd4 100644 --- a/docs/formatdomain.rst +++ b/docs/formatdomain.rst @@ -8587,10 +8587,20 @@ 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`` (:sinc= e:`since 10.9.0`, + for Q35 guests ). =20 ``driver`` The ``driver`` subelement can be used to configure additional options, = some @@ -8631,6 +8641,12 @@ Example: example to efficiently enable more than 255 vCPUs. :since:`Since 10.7.0` (QEMU/KVM only) =20 + ``xtsup`` + The ``xtsup`` attribute with possible values ``on`` and ``off`` can b= e used to + enable XTsup mode. A q35 domain with x2apic cpu feature ( as the ``fea= ture`` paragraph + in `CPU model and topology`_), and both x2apic feature and XTsup turne= d on for IOMMU, + will be able to use more than 255 vCPUs. :since:`Since 10.9.0` (QEMU/K= VM only) + The ``virtio`` IOMMU devices can further have ``address`` element as descr= ibed in `Device addresses`_ (address has to by type of ``pci``). =20 diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 6d7dee7956..6e7d92b264 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -1335,6 +1335,7 @@ VIR_ENUM_IMPL(virDomainIOMMUModel, "intel", "smmuv3", "virtio", + "amd", ); =20 VIR_ENUM_IMPL(virDomainVsockModel, @@ -13933,6 +13934,10 @@ virDomainIOMMUDefParseXML(virDomainXMLOption *xmlo= pt, if (virXMLPropTristateSwitch(driver, "dma_translation", VIR_XML_PR= OP_NONE, &iommu->dma_translation) < 0) return NULL; + + if (virXMLPropTristateSwitch(driver, "xtsup", VIR_XML_PROP_NONE, + &iommu->xtsup) < 0) + return NULL; } =20 if (virDomainDeviceInfoParseXML(xmlopt, node, ctxt, @@ -21492,6 +21497,13 @@ virDomainIOMMUDefCheckABIStability(virDomainIOMMUD= ef *src, virTristateSwitchTypeToString(src->dma_translation)= ); return false; } + if (src->xtsup !=3D dst->xtsup) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, + _("Target domain IOMMU device xtsup value '%1$s' do= es not match source '%2$s'"), + virTristateSwitchTypeToString(dst->xtsup), + virTristateSwitchTypeToString(src->xtsup)); + return false; + } =20 return virDomainDeviceInfoCheckABIStability(&src->info, &dst->info); } @@ -27480,6 +27492,10 @@ virDomainIOMMUDefFormat(virBuffer *buf, virBufferAsprintf(&driverAttrBuf, " dma_translation=3D'%s'", virTristateSwitchTypeToString(iommu->dma_transla= tion)); } + if (iommu->xtsup !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virBufferAsprintf(&driverAttrBuf, " xtsup=3D'%s'", + virTristateSwitchTypeToString(iommu->xtsup)); + } =20 virXMLFormatElement(&childBuf, "driver", &driverAttrBuf, NULL); =20 diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index a15af4fae3..d527975eb3 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -2919,6 +2919,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; @@ -2932,6 +2933,7 @@ struct _virDomainIOMMUDef { unsigned int aw_bits; virDomainDeviceInfo info; virTristateSwitch dma_translation; + virTristateSwitch xtsup; }; =20 typedef enum { diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c index eddb4a5e74..344df0c559 100644 --- a/src/conf/domain_validate.c +++ b/src/conf/domain_validate.c @@ -2980,7 +2980,8 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) iommu->caching_mode !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->eim !=3D VIR_TRISTATE_SWITCH_ABSENT || iommu->iotlb !=3D VIR_TRISTATE_SWITCH_ABSENT || - iommu->aw_bits !=3D 0) { + iommu->aw_bits !=3D 0 || + iommu->xtsup !=3D VIR_TRISTATE_SWITCH_ABSENT) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' doesn't support additiona= l attributes"), virDomainIOMMUModelTypeToString(iommu->model)); @@ -2989,6 +2990,41 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *i= ommu) break; =20 case VIR_DOMAIN_IOMMU_MODEL_INTEL: + if (iommu->xtsup !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virReportError(VIR_ERR_XML_ERROR, + _("iommu model '%1$s' doesn't support the xtsup= attribute"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + break; + + case VIR_DOMAIN_IOMMU_MODEL_AMD: + if (iommu->caching_mode !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virReportError(VIR_ERR_XML_ERROR, + _("iommu model '%1$s' doesn't support the cachi= ng_mode attribute"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + if (iommu->eim !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virReportError(VIR_ERR_XML_ERROR, + _("iommu model '%1$s' doesn't support the eim a= ttribute"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + if (iommu->aw_bits !=3D 0) { + virReportError(VIR_ERR_XML_ERROR, + _("iommu model '%1$s' doesn't support the aw_bi= ts attribute"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + if (iommu->dma_translation !=3D VIR_TRISTATE_SWITCH_ABSENT) { + virReportError(VIR_ERR_XML_ERROR, + _("iommu model '%1$s' doesn't support the dma_t= ranslation attribute"), + virDomainIOMMUModelTypeToString(iommu->model)); + return -1; + } + break; + case VIR_DOMAIN_IOMMU_MODEL_LAST: break; } @@ -2996,6 +3032,7 @@ virDomainIOMMUDefValidate(const virDomainIOMMUDef *io= mmu) switch (iommu->model) { case VIR_DOMAIN_IOMMU_MODEL_SMMUV3: case VIR_DOMAIN_IOMMU_MODEL_INTEL: + case VIR_DOMAIN_IOMMU_MODEL_AMD: if (iommu->info.type !=3D VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE) { virReportError(VIR_ERR_XML_ERROR, _("iommu model '%1$s' can't have address"), diff --git a/src/conf/schemas/domaincommon.rng b/src/conf/schemas/domaincom= mon.rng index efb5f00d77..d4336c5996 100644 --- a/src/conf/schemas/domaincommon.rng +++ b/src/conf/schemas/domaincommon.rng @@ -6070,6 +6070,7 @@ intel smmuv3 virtio + amd @@ -6105,6 +6106,11 @@ + + + + + diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index a0c9e5f8b3..c3d74544db 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -6040,6 +6040,20 @@ 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(&props, + "s:driver", "amd-iommu", + "s:id", iommu->info.alias, + "S:intremap", qemuOnOffAuto(iommu->intre= map), + "T:device-iotlb", iommu->iotlb, + "T:xtsup", iommu->xtsup, + 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); @@ -6853,6 +6867,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 970ae3949d..37c7a59aec 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -943,6 +943,7 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDevic= eDef *dev, =20 case VIR_DOMAIN_IOMMU_MODEL_INTEL: case VIR_DOMAIN_IOMMU_MODEL_SMMUV3: + case VIR_DOMAIN_IOMMU_MODEL_AMD: case VIR_DOMAIN_IOMMU_MODEL_LAST: /* These are not PCI devices */ return 0; @@ -2367,6 +2368,7 @@ qemuDomainAssignDevicePCISlots(virDomainDef *def, =20 case VIR_DOMAIN_IOMMU_MODEL_INTEL: case VIR_DOMAIN_IOMMU_MODEL_SMMUV3: + case VIR_DOMAIN_IOMMU_MODEL_AMD: case VIR_DOMAIN_IOMMU_MODEL_LAST: /* These are not PCI devices */ break; diff --git a/src/qemu/qemu_validate.c b/src/qemu/qemu_validate.c index fa23c5f973..326b0a9460 100644 --- a/src/qemu/qemu_validate.c +++ b/src/qemu/qemu_validate.c @@ -5046,6 +5046,7 @@ qemuValidateDomainDeviceDefIOMMU(const virDomainIOMMU= Def *iommu, { switch (iommu->model) { case VIR_DOMAIN_IOMMU_MODEL_INTEL: + case VIR_DOMAIN_IOMMU_MODEL_AMD: if (!qemuDomainIsQ35(def)) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("IOMMU device: '%1$s' is only supported with = Q35 machines"), diff --git a/tests/qemuxmlconfdata/amd-iommu-aw-bits.err b/tests/qemuxmlcon= fdata/amd-iommu-aw-bits.err new file mode 100644 index 0000000000..3958049227 --- /dev/null +++ b/tests/qemuxmlconfdata/amd-iommu-aw-bits.err @@ -0,0 +1 @@ +XML error: iommu model 'amd' doesn't support the aw_bits attribute diff --git a/tests/qemuxmlconfdata/amd-iommu-aw-bits.xml b/tests/qemuxmlcon= fdata/amd-iommu-aw-bits.xml new file mode 100644 index 0000000000..9433890f77 --- /dev/null +++ b/tests/qemuxmlconfdata/amd-iommu-aw-bits.xml @@ -0,0 +1,32 @@ + + QEMUGuest1 + c7a5fdbd-edaf-9455-926a-d65c16db1809 + 219100 + 219100 + 1 + + hvm + + + + qemu64 + + + destroy + restart + destroy + + /usr/bin/qemu-system-x86_64 + + + +
+ + + +