From nobody Mon Apr 29 00:41:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=intel.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1624006490441921.7138620297782; Fri, 18 Jun 2021 01:54:50 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-320-7RW4FBKhMAubIERojxTJjQ-1; Fri, 18 Jun 2021 04:54:47 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id BE2BD64A2B; Fri, 18 Jun 2021 08:54:42 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 96905100238C; Fri, 18 Jun 2021 08:54:42 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 5CB761809CB2; Fri, 18 Jun 2021 08:54:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 15I8qwGO010534 for ; Fri, 18 Jun 2021 04:52:58 -0400 Received: by smtp.corp.redhat.com (Postfix) id 661F010C733D; Fri, 18 Jun 2021 08:52:58 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 60C1D10C733A for ; Fri, 18 Jun 2021 08:52:55 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 14E048007DD for ; Fri, 18 Jun 2021 08:52:55 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-596-UWH7buOjOweSlEP3-7nLSQ-2; Fri, 18 Jun 2021 04:52:52 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 01:51:50 -0700 Received: from duan-client-optiplex-7080.bj.intel.com ([10.238.156.114]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 01:51:48 -0700 X-MC-Unique: 7RW4FBKhMAubIERojxTJjQ-1 X-MC-Unique: UWH7buOjOweSlEP3-7nLSQ-2 IronPort-SDR: g0XvYseaAP3Vu35/Nqciid//Q6uT2KbEZobmBh73OW0oIaNAmllFKNquMnfKMeRBL0VuPxlJCY 76Av9XPY+Y5g== X-IronPort-AV: E=McAfee;i="6200,9189,10018"; a="267665940" X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="267665940" IronPort-SDR: 5e6fV4ObJjmgovCVy1bdqK4YH4uoQvhLPXkyeSlzLNznJ6Ov4H8jkgGIbK+Eop4RSGDQPS56o3 pCqBEtB3SMoA== X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="485611612" From: Zhenzhong Duan To: libvir-list@redhat.com Subject: [RFC PATCH 1/7] qemu: provide support to query the TDX capabilities Date: Fri, 18 Jun 2021 16:50:46 +0800 Message-Id: <20210618085052.564315-2-zhenzhong.duan@intel.com> In-Reply-To: <20210618085052.564315-1-zhenzhong.duan@intel.com> References: <20210618085052.564315-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com X-Mailman-Approved-At: Fri, 18 Jun 2021 04:54:23 -0400 Cc: isaku.yamahata@intel.com, jun.j.tian@intel.com, chenyi.qiang@intel.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" QEMU provides support for launching an encrypted VMs on Intel x86 platform using Trust Domain Extension (TDX) feature. This patch adds support to query the TDX capabilities from the QEMU. Currently there is no elements in TDX capabilities except a placeholder. Signed-off-by: Chenyi Qiang Signed-off-by: Zhenzhong Duan --- src/conf/domain_capabilities.c | 8 +++++ src/conf/domain_capabilities.h | 10 +++++++ src/libvirt_private.syms | 1 + src/qemu/qemu_capabilities.c | 30 +++++++++++++++++++ src/qemu/qemu_capabilities.h | 1 + src/qemu/qemu_monitor.c | 8 +++++ src/qemu/qemu_monitor.h | 3 ++ src/qemu/qemu_monitor_json.c | 53 ++++++++++++++++++++++++++++++++++ src/qemu/qemu_monitor_json.h | 3 ++ 9 files changed, 117 insertions(+) diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index cb90ae0176..31577095e9 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -76,6 +76,14 @@ virSEVCapabilitiesFree(virSEVCapability *cap) g_free(cap); } =20 +void +virTDXCapabilitiesFree(virTDXCapability *cap) +{ + if (!cap) + return; + + VIR_FREE(cap); +} =20 static void virDomainCapsDispose(void *obj) diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index b6433b20c9..e099788da9 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -173,6 +173,12 @@ struct _virSEVCapability { unsigned int reduced_phys_bits; }; =20 +typedef struct _virTDXCapability virTDXCapability; +struct _virTDXCapability { + /* no elements for Intel TDX for now, just put a placeholder */ + uint64_t placeholder; +}; + typedef enum { VIR_DOMAIN_CAPS_FEATURE_IOTHREADS =3D 0, VIR_DOMAIN_CAPS_FEATURE_VMCOREINFO, @@ -254,3 +260,7 @@ void virSEVCapabilitiesFree(virSEVCapability *capabilities); =20 G_DEFINE_AUTOPTR_CLEANUP_FUNC(virSEVCapability, virSEVCapabilitiesFree); + +void virTDXCapabilitiesFree(virTDXCapability *capabilities); + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(virTDXCapability, virTDXCapabilitiesFree); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 2efa787664..8cbb60b577 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -218,6 +218,7 @@ virDomainCapsEnumSet; virDomainCapsFormat; virDomainCapsNew; virSEVCapabilitiesFree; +virTDXCapabilitiesFree; =20 =20 # conf/domain_conf.h diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 059d6badf2..a143e453f4 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -636,6 +636,7 @@ VIR_ENUM_IMPL(virQEMUCaps, /* 405 */ "confidential-guest-support", "query-display-options", + "tdx-guest", ); =20 =20 @@ -716,6 +717,8 @@ struct _virQEMUCaps { =20 virSEVCapability *sevCapabilities; =20 + virTDXCapability *tdxCapabilities; + /* Capabilities which may differ depending on the accelerator. */ virQEMUCapsAccel kvm; virQEMUCapsAccel tcg; @@ -1354,6 +1357,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[= ] =3D { { "input-linux", QEMU_CAPS_INPUT_LINUX }, { "virtio-gpu-gl-pci", QEMU_CAPS_VIRTIO_GPU_GL_PCI }, { "virtio-vga-gl", QEMU_CAPS_VIRTIO_VGA_GL }, + { "tdx-guest", QEMU_CAPS_TDX_GUEST}, }; =20 =20 @@ -2027,6 +2031,7 @@ void virQEMUCapsDispose(void *obj) g_free(qemuCaps->gicCapabilities); =20 virSEVCapabilitiesFree(qemuCaps->sevCapabilities); + virTDXCapabilitiesFree(qemuCaps->tdxCapabilities); =20 virQEMUCapsAccelClear(&qemuCaps->kvm); virQEMUCapsAccelClear(&qemuCaps->tcg); @@ -3354,6 +3359,29 @@ virQEMUCapsProbeQMPSEVCapabilities(virQEMUCaps *qemu= Caps, return 0; } =20 +static int +virQEMUCapsProbeQMPTDXCapabilities(virQEMUCaps *qemuCaps, + qemuMonitor *mon) +{ + int rc =3D -1; + virTDXCapability *caps =3D NULL; + + if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_TDX_GUEST)) + return 0; + + if ((rc =3D qemuMonitorGetTDXCapabilities(mon, &caps)) < 0) + return -1; + + /* TDX isn't actually supported */ + if (rc =3D=3D 0) { + virQEMUCapsClear(qemuCaps, QEMU_CAPS_TDX_GUEST); + return 0; + } + + virTDXCapabilitiesFree(qemuCaps->tdxCapabilities); + qemuCaps->tdxCapabilities =3D caps; + return 0; +} =20 /* * Filter for features which should never be passed to QEMU. Either because @@ -5316,6 +5344,8 @@ virQEMUCapsInitQMPMonitor(virQEMUCaps *qemuCaps, return -1; if (virQEMUCapsProbeQMPSEVCapabilities(qemuCaps, mon) < 0) return -1; + if (virQEMUCapsProbeQMPTDXCapabilities(qemuCaps, mon) < 0) + return -1; =20 virQEMUCapsInitProcessCaps(qemuCaps); =20 diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h index b2878312ac..a51bd9a256 100644 --- a/src/qemu/qemu_capabilities.h +++ b/src/qemu/qemu_capabilities.h @@ -616,6 +616,7 @@ typedef enum { /* virQEMUCapsFlags grouping marker for = syntax-check */ /* 405 */ QEMU_CAPS_MACHINE_CONFIDENTAL_GUEST_SUPPORT, /* -machine confidential-= guest-support */ QEMU_CAPS_QUERY_DISPLAY_OPTIONS, /* 'query-display-options' qmp comman= d present */ + QEMU_CAPS_TDX_GUEST, /* -object tdx-guest,... */ =20 QEMU_CAPS_LAST /* this must always be the last item */ } virQEMUCapsFlags; diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 8f35b4240f..f2a3badeec 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3946,6 +3946,14 @@ qemuMonitorNBDServerStart(qemuMonitor *mon, return qemuMonitorJSONNBDServerStart(mon, server, tls_alias); } =20 +int +qemuMonitorGetTDXCapabilities(qemuMonitor *mon, + virTDXCapability **capabilities) +{ + QEMU_CHECK_MONITOR(mon); + + return qemuMonitorJSONGetTDXCapabilities(mon, capabilities); +} =20 int qemuMonitorNBDServerAdd(qemuMonitor *mon, diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 6a25def78b..48c18c5220 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -859,6 +859,9 @@ int qemuMonitorGetGICCapabilities(qemuMonitor *mon, int qemuMonitorGetSEVCapabilities(qemuMonitor *mon, virSEVCapability **capabilities); =20 +int qemuMonitorGetTDXCapabilities(qemuMonitor *mon, + virTDXCapability **capabilities); + typedef enum { QEMU_MONITOR_MIGRATE_BACKGROUND =3D 1 << 0, QEMU_MONITOR_MIGRATE_NON_SHARED_DISK =3D 1 << 1, /* migration with non-= shared storage with full disk copy */ diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 223777739d..c58152e86f 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -7028,6 +7028,59 @@ qemuMonitorJSONGetSEVCapabilities(qemuMonitor *mon, return ret; } =20 +/** + * qemuMonitorJSONGetTDXCapabilities: + * @mon: qemu monitor object + * @capabilities: pointer to pointer to a TDX capability structure to be f= illed + * + * Returns -1 on error, 0 if TDX is not supported, and 1 if TDX is support= ed on + * the platform. + */ +int +qemuMonitorJSONGetTDXCapabilities(qemuMonitor *mon, + virTDXCapability **capabilities) +{ + int ret =3D -1; + virJSONValue *cmd; + virJSONValue *reply =3D NULL; + g_autoptr(virTDXCapability) capability =3D NULL; + + *capabilities =3D NULL; + + if (!(cmd =3D qemuMonitorJSONMakeCommand("query-tdx-capabilities", + NULL))) + return -1; + + if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0) + goto cleanup; + + /* QEMU has only compiled-in support of TDX */ + if (qemuMonitorJSONHasError(reply, "GenericError")) { + ret =3D 0; + goto cleanup; + } + + if (qemuMonitorJSONCheckError(cmd, reply) < 0) + goto cleanup; + + if (!virJSONValueObjectGetObject(reply, "return")) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("query-tdx-capabilities reply was missing return"= )); + return -1; + } + + capability =3D g_new0(virTDXCapability, 1); + + *capabilities =3D g_steal_pointer(&capability); + + ret =3D 1; + cleanup: + virJSONValueFree(cmd); + virJSONValueFree(reply); + + return ret; +} + static virJSONValue * qemuMonitorJSONBuildInetSocketAddress(const char *host, const char *port) diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index 01a3ba25f1..3fe6a34c4c 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -157,6 +157,9 @@ int qemuMonitorJSONGetGICCapabilities(qemuMonitor *mon, int qemuMonitorJSONGetSEVCapabilities(qemuMonitor *mon, virSEVCapability **capabilities); =20 +int qemuMonitorJSONGetTDXCapabilities(qemuMonitor *mon, + virTDXCapability **capabilities); + int qemuMonitorJSONMigrate(qemuMonitor *mon, unsigned int flags, const char *uri); --=20 2.25.1 From nobody Mon Apr 29 00:41:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=intel.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.zohomail.com with SMTPS id 16240064769161015.7834556670257; Fri, 18 Jun 2021 01:54:36 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-593-pWt0uivYPsCnlMoAjv6RcA-1; Fri, 18 Jun 2021 04:54:34 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AFB4D100C661; Fri, 18 Jun 2021 08:54:28 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 6BFA160C58; Fri, 18 Jun 2021 08:54:28 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id F2E6046F82; Fri, 18 Jun 2021 08:54:24 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 15I8qwXZ010533 for ; Fri, 18 Jun 2021 04:52:59 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6603A10C733C; Fri, 18 Jun 2021 08:52:58 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast06.extmail.prod.ext.rdu2.redhat.com [10.11.55.22]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 60B9010C7339 for ; Fri, 18 Jun 2021 08:52:58 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-2.mimecast.com [205.139.110.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id D9F14185A7B9 for ; Fri, 18 Jun 2021 08:52:57 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-596-sjalBC_sMdWKNzg1QPonjQ-3; Fri, 18 Jun 2021 04:52:55 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 01:51:52 -0700 Received: from duan-client-optiplex-7080.bj.intel.com ([10.238.156.114]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 01:51:50 -0700 X-MC-Unique: pWt0uivYPsCnlMoAjv6RcA-1 X-MC-Unique: sjalBC_sMdWKNzg1QPonjQ-3 IronPort-SDR: e5TINIpiOiM4epsbssvzkWEm7L0rM1avlUe9xxXlOJRSnKl4MkTPfuIZs5J6xXfkpvPy22Cr4S 7R17xExQGhCg== X-IronPort-AV: E=McAfee;i="6200,9189,10018"; a="267665943" X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="267665943" IronPort-SDR: ZBks0JrZc+Ak3ts5qGaWYXEW4w2nF7utFaJq+AWVC0pivg1RyfVvb1PP0SYgZF5GiqfHblpnyB aILxB1W4+NCw== X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="485611620" From: Zhenzhong Duan To: libvir-list@redhat.com Subject: [RFC PATCH 2/7] conf: expose TDX feature in domain capabilities Date: Fri, 18 Jun 2021 16:50:47 +0800 Message-Id: <20210618085052.564315-3-zhenzhong.duan@intel.com> In-Reply-To: <20210618085052.564315-1-zhenzhong.duan@intel.com> References: <20210618085052.564315-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com X-Mailman-Approved-At: Fri, 18 Jun 2021 04:54:23 -0400 Cc: isaku.yamahata@intel.com, jun.j.tian@intel.com, chenyi.qiang@intel.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Extend hypervisor capabilities to include tdx feature. When available, hypervisor can launch an encrypted VM on Intel platform. Signed-off-by: Chenyi Qiang Signed-off-by: Zhenzhong Duan --- docs/formatdomaincaps.html.in | 16 ++++++++++++++++ docs/schemas/domaincaps.rng | 9 +++++++++ src/conf/domain_capabilities.c | 14 ++++++++++++++ src/conf/domain_capabilities.h | 1 + src/qemu/qemu_capabilities.c | 12 ++++++++++++ tests/domaincapsdata/bhyve_basic.x86_64.xml | 1 + tests/domaincapsdata/bhyve_fbuf.x86_64.xml | 1 + tests/domaincapsdata/bhyve_uefi.x86_64.xml | 1 + tests/domaincapsdata/empty.xml | 1 + tests/domaincapsdata/libxl-xenfv.xml | 1 + tests/domaincapsdata/libxl-xenpv.xml | 1 + tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.11.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.11.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml | 1 + .../domaincapsdata/qemu_2.12.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_2.12.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_2.12.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_2.12.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.12.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.4.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.4.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.4.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.5.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.5.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.5.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.6.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.6.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.6.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_2.6.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_2.6.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_2.6.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.7.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.7.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.7.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.7.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.8.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.8.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.8.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.8.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_2.9.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_2.9.0.s390x.xml | 1 + tests/domaincapsdata/qemu_2.9.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_3.0.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_3.0.0.s390x.xml | 1 + tests/domaincapsdata/qemu_3.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_3.1.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_3.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_4.0.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_4.0.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_4.0.0.s390x.xml | 1 + tests/domaincapsdata/qemu_4.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_4.2.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_4.2.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_4.2.0.s390x.xml | 1 + tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_5.0.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_5.0.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.1.0.sparc.xml | 1 + tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml | 1 + tests/domaincapsdata/qemu_5.2.0.aarch64.xml | 1 + tests/domaincapsdata/qemu_5.2.0.ppc64.xml | 1 + tests/domaincapsdata/qemu_5.2.0.s390x.xml | 1 + tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.0.0.s390x.xml | 1 + tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 1 + 97 files changed, 144 insertions(+) diff --git a/docs/formatdomaincaps.html.in b/docs/formatdomaincaps.html.in index 62f1940e6a..0e679b19b7 100644 --- a/docs/formatdomaincaps.html.in +++ b/docs/formatdomaincaps.html.in @@ -566,6 +566,7 @@ <genid supported=3D'yes'/> <backingStoreInput supported=3D'yes'/> <backup supported=3D'yes'/> + <tdx supported=3D'yes'/> <sev> <cbitpos>47</cbitpos> <reduced-phys-bits>1</reduced-phys-bits> @@ -620,6 +621,21 @@ virDomainUndefine is supported.

=20 +

TDX capabilities

+

Trust Domain Extensions(TDX) capabilities are exposed under the + tdx element. + TDX is an Intel technology that extends Virtual Machines Extensions (V= MX) + to with a new kind of virtual machine guest called Trust Domain (TD). = A TD + runs in a CPU model which protects the confidentiality of its memory c= ontents + and its CPU state from any other software, including the hosting Virtu= al Machine + Monitor (VMM), unless explicitly shared by the TD itself.

+ +

+ For more details on the TDX feature, please follow resources in the + Intel developer's document. In order to use TDX with libvirt have + a look at TDX in domain= XML +

+

SEV capabilities

=20

AMD Secure Encrypted Virtualization (SEV) capabilities are exposed = under diff --git a/docs/schemas/domaincaps.rng b/docs/schemas/domaincaps.rng index fc668e0c78..0e61d38923 100644 --- a/docs/schemas/domaincaps.rng +++ b/docs/schemas/domaincaps.rng @@ -250,6 +250,9 @@ + + + =20 @@ -298,6 +301,12 @@ =20 + + + + + + diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index 31577095e9..709ef6ab9e 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -97,6 +97,7 @@ virDomainCapsDispose(void *obj) virObjectUnref(caps->cpu.custom); virCPUDefFree(caps->cpu.hostModel); virSEVCapabilitiesFree(caps->sev); + virTDXCapabilitiesFree(caps->tdx); =20 values =3D &caps->os.loader.values; for (i =3D 0; i < values->nvalues; i++) @@ -590,6 +591,17 @@ virDomainCapsFeatureSEVFormat(virBuffer *buf, return; } =20 +static void +virDomainCapsFeatureTDXFormat(virBuffer *buf, + const virTDXCapability *tdx) +{ + if (tdx) + virBufferAddLit(buf, "\n"); + else + virBufferAddLit(buf, "\n"); + + return; +} =20 static void virDomainCapsFormatFeatures(const virDomainCaps *caps, @@ -611,6 +623,8 @@ virDomainCapsFormatFeatures(const virDomainCaps *caps, =20 virDomainCapsFeatureSEVFormat(&childBuf, caps->sev); =20 + virDomainCapsFeatureTDXFormat(&childBuf, caps->tdx); + virXMLFormatElement(buf, "features", NULL, &childBuf); } =20 diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index e099788da9..17b59b699a 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -213,6 +213,7 @@ struct _virDomainCaps { virDomainCapsFeatureGIC gic; virSEVCapability *sev; /* add new domain features here */ + virTDXCapability *tdx; =20 virTristateBool features[VIR_DOMAIN_CAPS_FEATURE_LAST]; }; diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index a143e453f4..5e54d7e306 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -6332,6 +6332,17 @@ virQEMUCapsFillDomainFeatureSEVCaps(virQEMUCaps *qem= uCaps, domCaps->sev->reduced_phys_bits =3D cap->reduced_phys_bits; } =20 +static void +virQEMUCapsFillDomainFeatureTDXCaps(virQEMUCaps *qemuCaps, + virDomainCaps *domCaps) +{ + virTDXCapability *cap =3D qemuCaps->tdxCapabilities; + + if (!cap) + return; + + domCaps->tdx =3D g_new0(virTDXCapability, 1); +} =20 int virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps, @@ -6379,6 +6390,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps, virQEMUCapsFillDomainDeviceFSCaps(qemuCaps, filesystem); virQEMUCapsFillDomainFeatureGICCaps(qemuCaps, domCaps); virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps); + virQEMUCapsFillDomainFeatureTDXCaps(qemuCaps, domCaps); =20 return 0; } diff --git a/tests/domaincapsdata/bhyve_basic.x86_64.xml b/tests/domaincaps= data/bhyve_basic.x86_64.xml index 745f325531..40e853c560 100644 --- a/tests/domaincapsdata/bhyve_basic.x86_64.xml +++ b/tests/domaincapsdata/bhyve_basic.x86_64.xml @@ -33,5 +33,6 @@ + diff --git a/tests/domaincapsdata/bhyve_fbuf.x86_64.xml b/tests/domaincapsd= ata/bhyve_fbuf.x86_64.xml index bb11c02ae9..87f98b6bba 100644 --- a/tests/domaincapsdata/bhyve_fbuf.x86_64.xml +++ b/tests/domaincapsdata/bhyve_fbuf.x86_64.xml @@ -50,5 +50,6 @@ + diff --git a/tests/domaincapsdata/bhyve_uefi.x86_64.xml b/tests/domaincapsd= ata/bhyve_uefi.x86_64.xml index dfd2360d74..9409257887 100644 --- a/tests/domaincapsdata/bhyve_uefi.x86_64.xml +++ b/tests/domaincapsdata/bhyve_uefi.x86_64.xml @@ -42,5 +42,6 @@ + diff --git a/tests/domaincapsdata/empty.xml b/tests/domaincapsdata/empty.xml index d3e2d89b60..ba47d8c5be 100644 --- a/tests/domaincapsdata/empty.xml +++ b/tests/domaincapsdata/empty.xml @@ -13,5 +13,6 @@ + diff --git a/tests/domaincapsdata/libxl-xenfv.xml b/tests/domaincapsdata/li= bxl-xenfv.xml index cc5b3847e2..4c335ab7ee 100644 --- a/tests/domaincapsdata/libxl-xenfv.xml +++ b/tests/domaincapsdata/libxl-xenfv.xml @@ -76,5 +76,6 @@ + diff --git a/tests/domaincapsdata/libxl-xenpv.xml b/tests/domaincapsdata/li= bxl-xenpv.xml index 325f1e50b3..c2fa55472b 100644 --- a/tests/domaincapsdata/libxl-xenpv.xml +++ b/tests/domaincapsdata/libxl-xenpv.xml @@ -66,5 +66,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml b/tests/domain= capsdata/qemu_2.11.0-q35.x86_64.xml index f5714298c1..6eb612ea05 100644 --- a/tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.11.0-q35.x86_64.xml @@ -172,5 +172,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml b/tests/domain= capsdata/qemu_2.11.0-tcg.x86_64.xml index 1392f7c50e..2bce2140e7 100644 --- a/tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.11.0-tcg.x86_64.xml @@ -185,5 +185,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.11.0.s390x.xml b/tests/domaincapsd= ata/qemu_2.11.0.s390x.xml index cd3ab38bc4..c6f1d26d8f 100644 --- a/tests/domaincapsdata/qemu_2.11.0.s390x.xml +++ b/tests/domaincapsdata/qemu_2.11.0.s390x.xml @@ -207,5 +207,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.11.0.x86_64.xml b/tests/domaincaps= data/qemu_2.11.0.x86_64.xml index 0dde7c65c6..1e86efe77d 100644 --- a/tests/domaincapsdata/qemu_2.11.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.11.0.x86_64.xml @@ -172,5 +172,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml b/tests/domain= capsdata/qemu_2.12.0-q35.x86_64.xml index f7db0b4cc7..b85b1b3ada 100644 --- a/tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.12.0-q35.x86_64.xml @@ -189,5 +189,6 @@ 47 1 + diff --git a/tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml b/tests/domain= capsdata/qemu_2.12.0-tcg.x86_64.xml index cb26512256..20201dd795 100644 --- a/tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.12.0-tcg.x86_64.xml @@ -199,5 +199,6 @@ 47 1 + diff --git a/tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml b/tests/doma= incapsdata/qemu_2.12.0-virt.aarch64.xml index de41f9c859..27c66b49d6 100644 --- a/tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_2.12.0-virt.aarch64.xml @@ -160,5 +160,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.12.0.aarch64.xml b/tests/domaincap= sdata/qemu_2.12.0.aarch64.xml index 0d2ed1058e..bc99972431 100644 --- a/tests/domaincapsdata/qemu_2.12.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_2.12.0.aarch64.xml @@ -154,5 +154,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.12.0.ppc64.xml b/tests/domaincapsd= ata/qemu_2.12.0.ppc64.xml index e01f2c6fec..0598a24191 100644 --- a/tests/domaincapsdata/qemu_2.12.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_2.12.0.ppc64.xml @@ -124,5 +124,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.12.0.s390x.xml b/tests/domaincapsd= ata/qemu_2.12.0.s390x.xml index 418db98294..5c6f3f7e93 100644 --- a/tests/domaincapsdata/qemu_2.12.0.s390x.xml +++ b/tests/domaincapsdata/qemu_2.12.0.s390x.xml @@ -206,5 +206,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.12.0.x86_64.xml b/tests/domaincaps= data/qemu_2.12.0.x86_64.xml index 1ce380cea7..761b436f0a 100644 --- a/tests/domaincapsdata/qemu_2.12.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.12.0.x86_64.xml @@ -189,5 +189,6 @@ 47 1 + diff --git a/tests/domaincapsdata/qemu_2.4.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_2.4.0-q35.x86_64.xml index 3ae03de391..608bed8bdd 100644 --- a/tests/domaincapsdata/qemu_2.4.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.4.0-q35.x86_64.xml @@ -147,5 +147,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.4.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_2.4.0-tcg.x86_64.xml index 461cc4c102..0afd91ea7b 100644 --- a/tests/domaincapsdata/qemu_2.4.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.4.0-tcg.x86_64.xml @@ -143,5 +143,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.4.0.x86_64.xml b/tests/domaincapsd= ata/qemu_2.4.0.x86_64.xml index e1af5b6622..cafa271e87 100644 --- a/tests/domaincapsdata/qemu_2.4.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.4.0.x86_64.xml @@ -147,5 +147,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.5.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_2.5.0-q35.x86_64.xml index f46991ca27..a361bc3343 100644 --- a/tests/domaincapsdata/qemu_2.5.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.5.0-q35.x86_64.xml @@ -147,5 +147,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.5.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_2.5.0-tcg.x86_64.xml index 82edcbfac6..182814b589 100644 --- a/tests/domaincapsdata/qemu_2.5.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.5.0-tcg.x86_64.xml @@ -143,5 +143,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.5.0.x86_64.xml b/tests/domaincapsd= ata/qemu_2.5.0.x86_64.xml index 57f9f9b41b..86edf760cb 100644 --- a/tests/domaincapsdata/qemu_2.5.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.5.0.x86_64.xml @@ -147,5 +147,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.6.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_2.6.0-q35.x86_64.xml index 8bcd8f92ab..dcbff499f1 100644 --- a/tests/domaincapsdata/qemu_2.6.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.6.0-q35.x86_64.xml @@ -147,5 +147,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.6.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_2.6.0-tcg.x86_64.xml index 2a7b46f775..bdfbf4b5de 100644 --- a/tests/domaincapsdata/qemu_2.6.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.6.0-tcg.x86_64.xml @@ -143,5 +143,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.6.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_2.6.0-virt.aarch64.xml index 14cab3f557..3af9d4d305 100644 --- a/tests/domaincapsdata/qemu_2.6.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_2.6.0-virt.aarch64.xml @@ -145,5 +145,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.6.0.aarch64.xml b/tests/domaincaps= data/qemu_2.6.0.aarch64.xml index f84e648a15..44bc9f74e4 100644 --- a/tests/domaincapsdata/qemu_2.6.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_2.6.0.aarch64.xml @@ -139,5 +139,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.6.0.ppc64.xml b/tests/domaincapsda= ta/qemu_2.6.0.ppc64.xml index 7f9372a359..b9a18e64be 100644 --- a/tests/domaincapsdata/qemu_2.6.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_2.6.0.ppc64.xml @@ -112,5 +112,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.6.0.x86_64.xml b/tests/domaincapsd= ata/qemu_2.6.0.x86_64.xml index 4eeec1a22b..c03140a147 100644 --- a/tests/domaincapsdata/qemu_2.6.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.6.0.x86_64.xml @@ -147,5 +147,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.7.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_2.7.0-q35.x86_64.xml index 537941561b..63cfb38d65 100644 --- a/tests/domaincapsdata/qemu_2.7.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.7.0-q35.x86_64.xml @@ -148,5 +148,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.7.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_2.7.0-tcg.x86_64.xml index 79f5fba212..4d35f5d249 100644 --- a/tests/domaincapsdata/qemu_2.7.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.7.0-tcg.x86_64.xml @@ -144,5 +144,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.7.0.s390x.xml b/tests/domaincapsda= ta/qemu_2.7.0.s390x.xml index f76564a9bc..0b6310751b 100644 --- a/tests/domaincapsdata/qemu_2.7.0.s390x.xml +++ b/tests/domaincapsdata/qemu_2.7.0.s390x.xml @@ -104,5 +104,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.7.0.x86_64.xml b/tests/domaincapsd= ata/qemu_2.7.0.x86_64.xml index 1dd19dfc37..5a54c5290a 100644 --- a/tests/domaincapsdata/qemu_2.7.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.7.0.x86_64.xml @@ -148,5 +148,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.8.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_2.8.0-q35.x86_64.xml index e0bb1b1eee..1fba86335b 100644 --- a/tests/domaincapsdata/qemu_2.8.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.8.0-q35.x86_64.xml @@ -148,5 +148,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.8.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_2.8.0-tcg.x86_64.xml index 1829fbda60..0c3f5b55cc 100644 --- a/tests/domaincapsdata/qemu_2.8.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.8.0-tcg.x86_64.xml @@ -144,5 +144,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.8.0.s390x.xml b/tests/domaincapsda= ta/qemu_2.8.0.s390x.xml index 2c075d7cdb..9a01625f53 100644 --- a/tests/domaincapsdata/qemu_2.8.0.s390x.xml +++ b/tests/domaincapsdata/qemu_2.8.0.s390x.xml @@ -185,5 +185,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.8.0.x86_64.xml b/tests/domaincapsd= ata/qemu_2.8.0.x86_64.xml index 5f55b0730d..d828088d3d 100644 --- a/tests/domaincapsdata/qemu_2.8.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.8.0.x86_64.xml @@ -148,5 +148,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_2.9.0-q35.x86_64.xml index 797b970040..ef36127e42 100644 --- a/tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.9.0-q35.x86_64.xml @@ -162,5 +162,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_2.9.0-tcg.x86_64.xml index b47c426f1b..79f5fe264f 100644 --- a/tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.9.0-tcg.x86_64.xml @@ -181,5 +181,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.9.0.ppc64.xml b/tests/domaincapsda= ta/qemu_2.9.0.ppc64.xml index 2523d6ec6b..ad4a226c17 100644 --- a/tests/domaincapsdata/qemu_2.9.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_2.9.0.ppc64.xml @@ -112,5 +112,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.9.0.s390x.xml b/tests/domaincapsda= ta/qemu_2.9.0.s390x.xml index d5b58a786d..abefc63400 100644 --- a/tests/domaincapsdata/qemu_2.9.0.s390x.xml +++ b/tests/domaincapsdata/qemu_2.9.0.s390x.xml @@ -186,5 +186,6 @@ + diff --git a/tests/domaincapsdata/qemu_2.9.0.x86_64.xml b/tests/domaincapsd= ata/qemu_2.9.0.x86_64.xml index 7716e9d381..410fb1ad1a 100644 --- a/tests/domaincapsdata/qemu_2.9.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_2.9.0.x86_64.xml @@ -162,5 +162,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_3.0.0-q35.x86_64.xml index 6dfb6135b3..bdc93a8055 100644 --- a/tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_3.0.0-q35.x86_64.xml @@ -187,5 +187,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_3.0.0-tcg.x86_64.xml index 3c12f79f3a..c1248a8135 100644 --- a/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_3.0.0-tcg.x86_64.xml @@ -199,5 +199,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_3.0.0.ppc64.xml index 86dd4a0c39..2227523c5c 100644 --- a/tests/domaincapsdata/qemu_3.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_3.0.0.ppc64.xml @@ -126,5 +126,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.0.0.s390x.xml b/tests/domaincapsda= ta/qemu_3.0.0.s390x.xml index d4443bde20..9d8e356c67 100644 --- a/tests/domaincapsdata/qemu_3.0.0.s390x.xml +++ b/tests/domaincapsdata/qemu_3.0.0.s390x.xml @@ -213,5 +213,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_3.0.0.x86_64.xml index 1abdc89c38..aa40eb31ff 100644 --- a/tests/domaincapsdata/qemu_3.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_3.0.0.x86_64.xml @@ -187,5 +187,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_3.1.0-q35.x86_64.xml index fd7fe4794a..07fccfee25 100644 --- a/tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_3.1.0-q35.x86_64.xml @@ -190,5 +190,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_3.1.0-tcg.x86_64.xml index 424c3e4e51..4fab773a8a 100644 --- a/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_3.1.0-tcg.x86_64.xml @@ -202,5 +202,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.1.0.ppc64.xml b/tests/domaincapsda= ta/qemu_3.1.0.ppc64.xml index 65dc3fbd72..521c426ee7 100644 --- a/tests/domaincapsdata/qemu_3.1.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_3.1.0.ppc64.xml @@ -126,5 +126,6 @@ + diff --git a/tests/domaincapsdata/qemu_3.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_3.1.0.x86_64.xml index 409fd223bd..726a284b57 100644 --- a/tests/domaincapsdata/qemu_3.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_3.1.0.x86_64.xml @@ -190,5 +190,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_4.0.0-q35.x86_64.xml index 89440e9312..572691bb48 100644 --- a/tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.0.0-q35.x86_64.xml @@ -190,5 +190,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_4.0.0-tcg.x86_64.xml index 43eaa1c6aa..d6ddc8a46c 100644 --- a/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.0.0-tcg.x86_64.xml @@ -203,5 +203,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_4.0.0-virt.aarch64.xml index 7f8a3ef8cd..de6b2f0f44 100644 --- a/tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_4.0.0-virt.aarch64.xml @@ -167,5 +167,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.0.0.aarch64.xml b/tests/domaincaps= data/qemu_4.0.0.aarch64.xml index 3570d5eec2..5dd7908379 100644 --- a/tests/domaincapsdata/qemu_4.0.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_4.0.0.aarch64.xml @@ -161,5 +161,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_4.0.0.ppc64.xml index c33967e51f..43958b8dcc 100644 --- a/tests/domaincapsdata/qemu_4.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_4.0.0.ppc64.xml @@ -127,5 +127,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.0.0.s390x.xml b/tests/domaincapsda= ta/qemu_4.0.0.s390x.xml index e0ff109ead..0401f50e64 100644 --- a/tests/domaincapsdata/qemu_4.0.0.s390x.xml +++ b/tests/domaincapsdata/qemu_4.0.0.s390x.xml @@ -223,5 +223,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_4.0.0.x86_64.xml index a4739c721a..51213283a0 100644 --- a/tests/domaincapsdata/qemu_4.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.0.0.x86_64.xml @@ -190,5 +190,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_4.1.0-q35.x86_64.xml index 4d3659bce9..fc077b4ce6 100644 --- a/tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.1.0-q35.x86_64.xml @@ -196,5 +196,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_4.1.0-tcg.x86_64.xml index 887c07d28f..545ec5a3e8 100644 --- a/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.1.0-tcg.x86_64.xml @@ -205,5 +205,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_4.1.0.x86_64.xml index 4e07afd3d9..25a39b430b 100644 --- a/tests/domaincapsdata/qemu_4.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.1.0.x86_64.xml @@ -196,5 +196,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_4.2.0-q35.x86_64.xml index 39646c7d1e..58a0ad469e 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -204,5 +204,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_4.2.0-tcg.x86_64.xml index 5d7cea0f41..8102c2621d 100644 --- a/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-tcg.x86_64.xml @@ -212,5 +212,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_4.2.0-virt.aarch64.xml index 740dc1f15e..d3f219a105 100644 --- a/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-virt.aarch64.xml @@ -169,5 +169,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml b/tests/domaincaps= data/qemu_4.2.0.aarch64.xml index a923d30e76..ecfccc6110 100644 --- a/tests/domaincapsdata/qemu_4.2.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.aarch64.xml @@ -163,5 +163,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_4.2.0.ppc64.xml index b09e401d5c..ed41c9835c 100644 --- a/tests/domaincapsdata/qemu_4.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.ppc64.xml @@ -128,5 +128,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.2.0.s390x.xml b/tests/domaincapsda= ta/qemu_4.2.0.s390x.xml index a610c417f7..79f3cf2930 100644 --- a/tests/domaincapsdata/qemu_4.2.0.s390x.xml +++ b/tests/domaincapsdata/qemu_4.2.0.s390x.xml @@ -238,5 +238,6 @@ + diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_4.2.0.x86_64.xml index 36e8bd2ff3..dc1c11a58a 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -204,5 +204,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_5.0.0-q35.x86_64.xml index 4f7d1bdbbc..c98efaa0c9 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -206,5 +206,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_5.0.0-tcg.x86_64.xml index 97d1819482..36d39541e1 100644 --- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml @@ -213,5 +213,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_5.0.0-virt.aarch64.xml index dcad3b3833..b53a80e437 100644 --- a/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-virt.aarch64.xml @@ -170,5 +170,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml b/tests/domaincaps= data/qemu_5.0.0.aarch64.xml index ada3ebdb2b..6c4d4679c1 100644 --- a/tests/domaincapsdata/qemu_5.0.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.aarch64.xml @@ -164,5 +164,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml b/tests/domaincapsda= ta/qemu_5.0.0.ppc64.xml index 650188606c..18313f57f0 100644 --- a/tests/domaincapsdata/qemu_5.0.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.ppc64.xml @@ -129,5 +129,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_5.0.0.x86_64.xml index 2bb72027ba..3c1b73e111 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -206,5 +206,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_5.1.0-q35.x86_64.xml index 95d44575fd..84c5395ef5 100644 --- a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml @@ -207,5 +207,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_5.1.0-tcg.x86_64.xml index 3a4ec231f3..36bab4379f 100644 --- a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml @@ -213,5 +213,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.1.0.sparc.xml b/tests/domaincapsda= ta/qemu_5.1.0.sparc.xml index 6f85a768e2..ef61bf8c13 100644 --- a/tests/domaincapsdata/qemu_5.1.0.sparc.xml +++ b/tests/domaincapsdata/qemu_5.1.0.sparc.xml @@ -105,5 +105,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_5.1.0.x86_64.xml index 98dfb971a2..882ceb73de 100644 --- a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml @@ -207,5 +207,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_5.2.0-q35.x86_64.xml index 1712c2113b..a7df147e44 100644 --- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml @@ -207,5 +207,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_5.2.0-tcg.x86_64.xml index 754046fb6d..2a71d94ec8 100644 --- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml @@ -213,5 +213,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml b/tests/domai= ncapsdata/qemu_5.2.0-virt.aarch64.xml index 27776a667b..b5ddfdbbf7 100644 --- a/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.2.0-virt.aarch64.xml @@ -170,5 +170,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml b/tests/domaincaps= data/qemu_5.2.0.aarch64.xml index ada3ebdb2b..6c4d4679c1 100644 --- a/tests/domaincapsdata/qemu_5.2.0.aarch64.xml +++ b/tests/domaincapsdata/qemu_5.2.0.aarch64.xml @@ -164,5 +164,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml b/tests/domaincapsda= ta/qemu_5.2.0.ppc64.xml index 211f7b8ac6..105f9bd3c5 100644 --- a/tests/domaincapsdata/qemu_5.2.0.ppc64.xml +++ b/tests/domaincapsdata/qemu_5.2.0.ppc64.xml @@ -129,5 +129,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.2.0.s390x.xml b/tests/domaincapsda= ta/qemu_5.2.0.s390x.xml index 43905a6a85..f2e756fc23 100644 --- a/tests/domaincapsdata/qemu_5.2.0.s390x.xml +++ b/tests/domaincapsdata/qemu_5.2.0.s390x.xml @@ -240,5 +240,6 @@ + diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml b/tests/domaincapsd= ata/qemu_5.2.0.x86_64.xml index daf43d222c..fef5abef40 100644 --- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml @@ -207,5 +207,6 @@ + diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_6.0.0-q35.x86_64.xml index 98edd3e37d..580f0a6778 100644 --- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml @@ -211,5 +211,6 @@ 47 1 + diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_6.0.0-tcg.x86_64.xml index 7b4cd0160a..f8c552a1be 100644 --- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml @@ -217,5 +217,6 @@ 47 1 + diff --git a/tests/domaincapsdata/qemu_6.0.0.s390x.xml b/tests/domaincapsda= ta/qemu_6.0.0.s390x.xml index d384f0859b..d69ac0c9f3 100644 --- a/tests/domaincapsdata/qemu_6.0.0.s390x.xml +++ b/tests/domaincapsdata/qemu_6.0.0.s390x.xml @@ -241,5 +241,6 @@ + diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml b/tests/domaincapsd= ata/qemu_6.0.0.x86_64.xml index 7122c89497..f4b4a2bf25 100644 --- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml @@ -211,5 +211,6 @@ 47 1 + diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml b/tests/domainc= apsdata/qemu_6.1.0-q35.x86_64.xml index 057824d795..d8d6ac64f7 100644 --- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml @@ -211,5 +211,6 @@ + diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml b/tests/domainc= apsdata/qemu_6.1.0-tcg.x86_64.xml index 6c84207231..d5938428d7 100644 --- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml @@ -214,5 +214,6 @@ + diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml b/tests/domaincapsd= ata/qemu_6.1.0.x86_64.xml index 1934035547..2ab68a6bd4 100644 --- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml @@ -211,5 +211,6 @@ + --=20 2.25.1 From nobody Mon Apr 29 00:41:34 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=intel.com Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1624006497742380.07572533695986; Fri, 18 Jun 2021 01:54:57 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-500-o4Lk1qZqMqaSFd98pTcNnA-1; Fri, 18 Jun 2021 04:54:54 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id DD3B418D6A35; Fri, 18 Jun 2021 08:54:45 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B29B5188E4; Fri, 18 Jun 2021 08:54:45 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 7AA1D1800BAE; Fri, 18 Jun 2021 08:54:45 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 15I8qxIC010541 for ; Fri, 18 Jun 2021 04:52:59 -0400 Received: by smtp.corp.redhat.com (Postfix) id 4ED7F10C7339; Fri, 18 Jun 2021 08:52:59 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast04.extmail.prod.ext.rdu2.redhat.com [10.11.55.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 4AECF10C732B for ; Fri, 18 Jun 2021 08:52:59 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 309FF101D221 for ; Fri, 18 Jun 2021 08:52:59 +0000 (UTC) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-596-MIv2SuzmPgu1KWIP7DMkxQ-4; Fri, 18 Jun 2021 04:52:56 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 01:51:54 -0700 Received: from duan-client-optiplex-7080.bj.intel.com ([10.238.156.114]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jun 2021 01:51:52 -0700 X-MC-Unique: o4Lk1qZqMqaSFd98pTcNnA-1 X-MC-Unique: MIv2SuzmPgu1KWIP7DMkxQ-4 IronPort-SDR: URie1X/s47MSyUt4lblt3O01qWb/eP2ILTT6X44OLjJPhiAlJuM3qM/m8uhkQYrGSjCkm9aYA8 X8iUXFbQ7CrA== X-IronPort-AV: E=McAfee;i="6200,9189,10018"; a="267665945" X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="267665945" IronPort-SDR: /ajPJzyBzOK0jxHrWsxvwly4uvneMVE8+TE2dY3CjnLelSM9rS8w2YiIJ1zT+EyD492BLHYfG7 nwASKtHCeDxg== X-IronPort-AV: E=Sophos;i="5.83,283,1616482800"; d="scan'208";a="485611631" From: Zhenzhong Duan To: libvir-list@redhat.com Subject: [RFC PATCH 3/7] conf: introduce TrustDomain element in domain Date: Fri, 18 Jun 2021 16:50:48 +0800 Message-Id: <20210618085052.564315-4-zhenzhong.duan@intel.com> In-Reply-To: <20210618085052.564315-1-zhenzhong.duan@intel.com> References: <20210618085052.564315-1-zhenzhong.duan@intel.com> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com X-Mailman-Approved-At: Fri, 18 Jun 2021 04:54:23 -0400 Cc: isaku.yamahata@intel.com, jun.j.tian@intel.com, chenyi.qiang@intel.com X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The TrustDomain element can be used to define the security model to use when launching a domain. Only type 'tdx' is supported currently. When 'tdx' is used, the VM will launched with Intel TDX feature enabled. TDX feature supports running encrypted VM (Trust Domain, TD) under the control of KVM. A TD runs in a CPU model which protects the confidentiality of its memory and its CPU state from other software There is a child element 'policy' in TrustDomain. In 'policy', bit 0 is used to enable TDX debug, other bits are reserved currently. For example: 0x0001 Signed-off-by: Zhenzhong Duan --- docs/schemas/domaincommon.rng | 16 ++++ src/conf/domain_conf.c | 84 +++++++++++++++++++ src/conf/domain_conf.h | 15 ++++ src/conf/virconftypes.h | 2 + src/qemu/qemu_validate.c | 8 ++ .../genericxml2xmlindata/trust-domain-tdx.xml | 21 +++++ tests/genericxml2xmltest.c | 1 + 7 files changed, 147 insertions(+) create mode 100644 tests/genericxml2xmlindata/trust-domain-tdx.xml diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng index 5ea14b6dbf..2b39a01e84 100644 --- a/docs/schemas/domaincommon.rng +++ b/docs/schemas/domaincommon.rng @@ -89,6 +89,9 @@ + + + @@ -518,6 +521,19 @@ =20 + + + + tdx + + + + + + + + +