From nobody Tue Apr 30 18:14:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1490799860815614.9210180641976; Wed, 29 Mar 2017 08:04:20 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 192684AEA8; Wed, 29 Mar 2017 15:04:19 +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 E176C183AD; Wed, 29 Mar 2017 15:04:18 +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 8C53218523CA; Wed, 29 Mar 2017 15:04:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v2TErOlh026182 for ; Wed, 29 Mar 2017 10:53:24 -0400 Received: by smtp.corp.redhat.com (Postfix) id 09C77B23F0; Wed, 29 Mar 2017 14:53:24 +0000 (UTC) Received: from virval.usersys.redhat.com (dhcp129-92.brq.redhat.com [10.34.129.92]) by smtp.corp.redhat.com (Postfix) with ESMTPS id AC311183AD for ; Wed, 29 Mar 2017 14:53:21 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 2B1B910669A; Wed, 29 Mar 2017 16:53:20 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 192684AEA8 Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 192684AEA8 From: Jiri Denemark To: libvir-list@redhat.com Date: Wed, 29 Mar 2017 16:53:17 +0200 Message-Id: <6a4a7916766d39535d95a40a8dc844d7fab4a3e8.1490798631.git.jdenemar@redhat.com> In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 1/3] qemuMonitorCPUModelInfo: Add support for non-migratable features 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Wed, 29 Mar 2017 15:04:20 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" QEMU is able to tell us whether a CPU feature would block migration or not. This patch adds support for storing such features in qemuMonitorCPUModelInfo. Signed-off-by: Jiri Denemark --- src/qemu/qemu_capabilities.c | 39 ++++++++++++++++++++= +--- src/qemu/qemu_monitor.c | 2 ++ src/qemu/qemu_monitor.h | 2 ++ tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 2 +- tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 4 +-- 5 files changed, 41 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f51141b99..446c15f92 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -3272,6 +3272,7 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsPtr qemuCa= ps, int ret =3D -1; size_t i; int n; + int val; =20 if (virtType =3D=3D VIR_DOMAIN_VIRT_KVM) hostCPUNode =3D virXPathNode("./hostCPU[@type=3D'kvm']", ctxt); @@ -3293,6 +3294,15 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsPtr qemuC= aps, goto cleanup; } =20 + if (!(str =3D virXMLPropString(hostCPUNode, "migratability")) || + (val =3D virTristateBoolTypeFromString(str)) <=3D 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, "%s", + _("invalid migratability value for host CPU model")= ); + goto cleanup; + } + hostCPU->migratability =3D val =3D=3D VIR_TRISTATE_BOOL_YES; + VIR_FREE(str); + ctxt->node =3D hostCPUNode; =20 if ((n =3D virXPathNodeSet("./property", ctxt, &nodes)) > 0) { @@ -3303,7 +3313,6 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsPtr qemuCa= ps, =20 for (i =3D 0; i < n; i++) { qemuMonitorCPUPropertyPtr prop =3D hostCPU->props + i; - int type; =20 ctxt->node =3D nodes[i]; =20 @@ -3315,7 +3324,7 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsPtr qemuCa= ps, } =20 if (!(str =3D virXMLPropString(ctxt->node, "type")) || - (type =3D qemuMonitorCPUPropertyTypeFromString(str)) < 0) { + (val =3D qemuMonitorCPUPropertyTypeFromString(str)) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("missing or invalid CPU model property ty= pe " "in QEMU capabilities cache")); @@ -3323,7 +3332,7 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsPtr qemuCa= ps, } VIR_FREE(str); =20 - prop->type =3D type; + prop->type =3D val; switch (prop->type) { case QEMU_MONITOR_CPU_PROPERTY_BOOLEAN: if (virXPathBoolean("./@value=3D'true'", ctxt)) @@ -3355,6 +3364,19 @@ virQEMUCapsLoadHostCPUModelInfo(virQEMUCapsPtr qemuC= aps, case QEMU_MONITOR_CPU_PROPERTY_LAST: break; } + + if ((str =3D virXMLPropString(ctxt->node, "migratable"))) { + if ((val =3D virTristateBoolTypeFromString(str)) <=3D 0) { + virReportError(VIR_ERR_INTERNAL_ERROR, + _("unknown migratable value for '%s' ho= st " + "CPU model property"), + prop->name); + goto cleanup; + } + + prop->migratable =3D val; + VIR_FREE(str); + } } } =20 @@ -3707,8 +3729,10 @@ virQEMUCapsFormatHostCPUModelInfo(virQEMUCapsPtr qem= uCaps, if (!model) return; =20 - virBufferAsprintf(buf, "\n", - typeStr, model->name); + virBufferAsprintf(buf, + "\n", + typeStr, model->name, + model->migratability ? "yes" : "no"); virBufferAdjustIndent(buf, 2); =20 for (i =3D 0; i < model->nprops; i++) { @@ -3735,6 +3759,11 @@ virQEMUCapsFormatHostCPUModelInfo(virQEMUCapsPtr qem= uCaps, case QEMU_MONITOR_CPU_PROPERTY_LAST: break; } + + if (prop->migratable > 0) + virBufferAsprintf(buf, " migratable=3D'%s'", + virTristateBoolTypeToString(prop->migratable= )); + virBufferAddLit(buf, "/>\n"); } =20 diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index 78d9cb752..e9ba5fdea 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3747,12 +3747,14 @@ qemuMonitorCPUModelInfoCopy(const qemuMonitorCPUMod= elInfo *orig) if (VIR_STRDUP(copy->name, orig->name) < 0) goto error; =20 + copy->migratability =3D orig->migratability; copy->nprops =3D orig->nprops; =20 for (i =3D 0; i < orig->nprops; i++) { if (VIR_STRDUP(copy->props[i].name, orig->props[i].name) < 0) goto error; =20 + copy->props[i].migratable =3D orig->props[i].migratable; copy->props[i].type =3D orig->props[i].type; switch (orig->props[i].type) { case QEMU_MONITOR_CPU_PROPERTY_BOOLEAN: diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 87a1496cf..332652178 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -992,6 +992,7 @@ struct _qemuMonitorCPUProperty { char *string; long long number; } value; + virTristateBool migratable; }; =20 typedef struct _qemuMonitorCPUModelInfo qemuMonitorCPUModelInfo; @@ -1001,6 +1002,7 @@ struct _qemuMonitorCPUModelInfo { char *name; size_t nprops; qemuMonitorCPUPropertyPtr props; + bool migratability; }; =20 typedef enum { diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml b/tests/qemuca= pabilitiesdata/caps_2.8.0.s390x.xml index d49f0fbd1..42c92c567 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml +++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml @@ -136,7 +136,7 @@ 0 s390x - + diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.9.0.x86_64.xml index bb5463469..0b14e53e2 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -211,7 +211,7 @@ 0 (v2.9.0-rc0-142-g940a8ce) x86_64 - + @@ -443,7 +443,7 @@ - + --=20 2.12.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Tue Apr 30 18:14:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1490799465179313.67713680071404; Wed, 29 Mar 2017 07:57:45 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 82362C054918; Wed, 29 Mar 2017 14:57:43 +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 411017FBEF; Wed, 29 Mar 2017 14:57:43 +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 D2A3F18523D1; Wed, 29 Mar 2017 14:57:42 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v2TErQkt026202 for ; Wed, 29 Mar 2017 10:53:26 -0400 Received: by smtp.corp.redhat.com (Postfix) id 555AB800C2; Wed, 29 Mar 2017 14:53:26 +0000 (UTC) Received: from virval.usersys.redhat.com (dhcp129-92.brq.redhat.com [10.34.129.92]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 7BF457FBF7 for ; Wed, 29 Mar 2017 14:53:21 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 2CF0D10669D; Wed, 29 Mar 2017 16:53:20 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 82362C054918 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 82362C054918 From: Jiri Denemark To: libvir-list@redhat.com Date: Wed, 29 Mar 2017 16:53:18 +0200 Message-Id: <0c4cbc2842a9ba2e91ee9e1de4faa1c2344846f0.1490798631.git.jdenemar@redhat.com> In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 2/3] qemu: Check migratable host CPU features 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Wed, 29 Mar 2017 14:57:44 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" If calling query-cpu-model-expansion on the 'host'/'max' CPU model with 'migratable' property set to false succeeds, we know QEMU is able to tell us which features would disable migration. Thus we can mark all enabled features as migratable. Signed-off-by: Jiri Denemark --- src/qemu/qemu_capabilities.c | 53 +- src/qemu/qemu_monitor.c | 7 +- src/qemu/qemu_monitor.h | 1 + src/qemu/qemu_monitor_json.c | 11 + src/qemu/qemu_monitor_json.h | 3 +- tests/cputest.c | 2 +- .../qemucapabilitiesdata/caps_2.8.0.s390x.replies | 8 + .../qemucapabilitiesdata/caps_2.9.0.x86_64.replies | 840 +++++++++++++++++= ++++ tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 366 ++++----- 9 files changed, 1103 insertions(+), 188 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 446c15f92..9726bce74 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2807,8 +2807,11 @@ virQEMUCapsProbeQMPHostCPU(virQEMUCapsPtr qemuCaps, bool tcg) { qemuMonitorCPUModelInfoPtr *modelInfo; + qemuMonitorCPUModelInfoPtr nonMigratable =3D NULL; + virHashTablePtr hash =3D NULL; const char *model; qemuMonitorCPUModelExpansionType type; + int ret =3D -1; =20 if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION)) return 0; @@ -2831,7 +2834,55 @@ virQEMUCapsProbeQMPHostCPU(virQEMUCapsPtr qemuCaps, else type =3D QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC; =20 - return qemuMonitorGetCPUModelExpansion(mon, type, model, modelInfo); + if (qemuMonitorGetCPUModelExpansion(mon, type, model, true, modelInfo)= < 0) + return -1; + + /* Try to check migratability of each feature. */ + if (*modelInfo && + qemuMonitorGetCPUModelExpansion(mon, type, model, false, + &nonMigratable) < 0) + goto error; + + if (nonMigratable) { + qemuMonitorCPUPropertyPtr prop; + qemuMonitorCPUPropertyPtr nmProp; + size_t i; + + if (!(hash =3D virHashCreate(0, NULL))) + goto error; + + for (i =3D 0; i < (*modelInfo)->nprops; i++) { + prop =3D (*modelInfo)->props + i; + if (virHashAddEntry(hash, prop->name, prop) < 0) + goto error; + } + + for (i =3D 0; i < nonMigratable->nprops; i++) { + nmProp =3D nonMigratable->props + i; + if (!(prop =3D virHashLookup(hash, nmProp->name)) || + prop->type !=3D QEMU_MONITOR_CPU_PROPERTY_BOOLEAN || + prop->type !=3D nmProp->type) + continue; + + if (prop->value.boolean) + prop->migratable =3D VIR_TRISTATE_BOOL_YES; + } + + (*modelInfo)->migratability =3D true; + } + + ret =3D 0; + + cleanup: + virHashFree(hash); + qemuMonitorCPUModelInfoFree(nonMigratable); + + return ret; + + error: + qemuMonitorCPUModelInfoFree(*modelInfo); + *modelInfo =3D NULL; + goto cleanup; } =20 struct tpmTypeToCaps { diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index e9ba5fdea..a4fa6eca6 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -3702,13 +3702,16 @@ int qemuMonitorGetCPUModelExpansion(qemuMonitorPtr mon, qemuMonitorCPUModelExpansionType type, const char *model_name, + bool migratable, qemuMonitorCPUModelInfoPtr *model_info) { - VIR_DEBUG("type=3D%d model_name=3D%s", type, model_name); + VIR_DEBUG("type=3D%d model_name=3D%s migratable=3D%d", + type, model_name, migratable); =20 QEMU_CHECK_MONITOR_JSON(mon); =20 - return qemuMonitorJSONGetCPUModelExpansion(mon, type, model_name, mode= l_info); + return qemuMonitorJSONGetCPUModelExpansion(mon, type, model_name, + migratable, model_info); } =20 =20 diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index 332652178..91ab9057e 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -1014,6 +1014,7 @@ typedef enum { int qemuMonitorGetCPUModelExpansion(qemuMonitorPtr mon, qemuMonitorCPUModelExpansionType type, const char *model_name, + bool migratable, qemuMonitorCPUModelInfoPtr *model_info= ); =20 void qemuMonitorCPUModelInfoFree(qemuMonitorCPUModelInfoPtr model_info); diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index b86d4d8e3..aeb777d37 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -5133,10 +5133,12 @@ int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon, qemuMonitorCPUModelExpansionType type, const char *model_name, + bool migratable, qemuMonitorCPUModelInfoPtr *model_info) { int ret =3D -1; virJSONValuePtr model =3D NULL; + virJSONValuePtr props =3D NULL; virJSONValuePtr cmd =3D NULL; virJSONValuePtr reply =3D NULL; virJSONValuePtr data; @@ -5154,6 +5156,14 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr m= on, if (virJSONValueObjectAppendString(model, "name", model_name) < 0) goto cleanup; =20 + if (!migratable) { + if (!(props =3D virJSONValueNewObject()) || + virJSONValueObjectAppendBoolean(props, "migratable", false) < = 0 || + virJSONValueObjectAppend(model, "props", props) < 0) + goto cleanup; + props =3D NULL; + } + retry: switch (type) { case QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC: @@ -5248,6 +5258,7 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mo= n, virJSONValueFree(cmd); virJSONValueFree(reply); virJSONValueFree(model); + virJSONValueFree(props); return ret; } =20 diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index 9495efd03..d090d5709 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -356,8 +356,9 @@ int qemuMonitorJSONGetCPUDefinitions(qemuMonitorPtr mon, int qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon, qemuMonitorCPUModelExpansionType t= ype, const char *model_name, + bool migratable, qemuMonitorCPUModelInfoPtr *model_= info) - ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4); + ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(5); =20 int qemuMonitorJSONGetCommands(qemuMonitorPtr mon, char ***commands) diff --git a/tests/cputest.c b/tests/cputest.c index 98f66237b..3d3e43f16 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -691,7 +691,7 @@ cpuTestJSONCPUID(const void *arg) =20 if (qemuMonitorGetCPUModelExpansion(qemuMonitorTestGetMonitor(testMon), QEMU_MONITOR_CPU_MODEL_EXPANSION_S= TATIC, - "host", &model) < 0) + "host", true, &model) < 0) goto cleanup; =20 if (!(qemuCaps =3D virQEMUCapsNew())) diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies b/tests/qe= mucapabilitiesdata/caps_2.8.0.s390x.replies index c3cbeee0a..ae214aa7b 100644 --- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies +++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies @@ -13048,6 +13048,14 @@ } =20 { + "id": "libvirt-49", + "error": { + "class": "GenericError", + "desc": "Property '.migratable' not found" + } +} + +{ "return": { }, "id": "libvirt-1" diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies b/tests/q= emucapabilitiesdata/caps_2.9.0.x86_64.replies index b6fd75090..bae24750c 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies @@ -15313,6 +15313,426 @@ =20 { "return": { + "model": { + "name": "base", + "props": { + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "rdpid": false, + "arat": true, + "pause-filter": false, + "xsavec": true, + "osxsave": false, + "kvm-asyncpf": true, + "perfctr-core": false, + "mpx": true, + "pbe": false, + "avx512cd": false, + "decodeassists": false, + "sse4.1": true, + "family": 6, + "avx512f": false, + "msr": true, + "mce": true, + "mca": true, + "xcrypt": false, + "min-level": 13, + "xgetbv1": true, + "cid": false, + "ds": false, + "fxsr": true, + "xsaveopt": true, + "xtpr": false, + "avx512vl": false, + "avx512-vpopcntdq": false, + "phe": false, + "extapic": false, + "3dnowprefetch": true, + "cr8legacy": false, + "xcrypt-en": false, + "pn": false, + "dca": false, + "vendor": "GenuineIntel", + "pku": false, + "smx": false, + "cmp-legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "hle": true, + "3dnowext": false, + "npt": false, + "clwb": false, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm-lock": false, + "smep": true, + "smap": true, + "pfthreshold": false, + "x2apic": true, + "avx512vbmi": false, + "flushbyasid": false, + "f16c": true, + "ace2-en": false, + "pae": true, + "pat": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": true, + "tm": false, + "kvmclock-stable-bit": true, + "hypervisor": true, + "pcommit": false, + "syscall": true, + "avx512dq": false, + "svm": false, + "invtsc": true, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": true, + "cx8": true, + "kvm-mmu": false, + "sse4.2": true, + "pge": true, + "pdcm": false, + "model": 94, + "movbe": true, + "nrip-save": false, + "ssse3": true, + "sse4a": false, + "invpcid": true, + "pdpe1gb": true, + "tsc-deadline": true, + "fma": true, + "cx16": true, + "de": true, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tsc": true, + "tce": false, + "fpu": true, + "ds-cpl": false, + "ibs": false, + "fma4": false, + "la57": false, + "osvw": false, + "apic": true, + "pmm": false, + "tsc-adjust": true, + "kvm-steal-time": true, + "kvmclock": true, + "lwp": false, + "xop": false, + "avx": true, + "ospke": false, + "acpi": false, + "avx512bw": false, + "ace2": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": false, + "popcnt": true, + "xsaves": true, + "lm": true, + "umip": false, + "pse": true, + "avx2": true, + "sep": true, + "nodeid-msr": false, + "misalignsse": false, + "min-xlevel": 2147483656, + "bmi1": true, + "bmi2": true, + "kvm-pv-unhalt": true, + "tsc-scale": false, + "topoext": false, + "clflushopt": true, + "monitor": false, + "avx512er": false, + "pmm-en": false, + "pcid": true, + "3dnow": false, + "erms": true, + "lahf-lm": true, + "fxsr-opt": false, + "xstore": false, + "rtm": true, + "lmce": true, + "perfctr-nb": false, + "rdrand": true, + "rdseed": true, + "avx512-4vnniw": false, + "vme": true, + "vmx": true, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "model-id": "Intel(R) Xeon(R) CPU E3-1245 v5 @ 3.50GHz", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-50" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "phys-bits": 0, + "core-id": -1, + "xlevel": 2147483656, + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "arat": true, + "rdpid": false, + "pause-filter": false, + "xsavec": true, + "osxsave": false, + "tsc-frequency": 0, + "xd": true, + "hv-vendor-id": "", + "kvm-asyncpf": true, + "kvm_asyncpf": true, + "perfctr_core": false, + "perfctr-core": false, + "mpx": true, + "avx512cd": false, + "decodeassists": false, + "pbe": false, + "sse4_1": true, + "sse4.1": true, + "sse4-1": true, + "family": 6, + "vmware-cpuid-freq": true, + "avx512f": false, + "xcrypt": false, + "hv-runtime": false, + "msr": true, + "mce": true, + "mca": true, + "thread-id": -1, + "min-level": 13, + "xgetbv1": true, + "cid": false, + "hv-relaxed": false, + "fxsr": true, + "ds": false, + "hv-crash": false, + "xsaveopt": true, + "xtpr": false, + "avx512-vpopcntdq": false, + "phe": false, + "avx512vl": false, + "extapic": false, + "3dnowprefetch": true, + "cr8legacy": false, + "cpuid-0xb": true, + "xcrypt-en": false, + "kvm_pv_eoi": true, + "apic-id": 4294967295, + "pn": false, + "dca": false, + "vendor": "GenuineIntel", + "pku": false, + "smx": false, + "cmp-legacy": false, + "cmp_legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "vmcb_clean": false, + "3dnowext": false, + "hle": true, + "npt": false, + "memory": "/machine/unattached/system[0]", + "clwb": false, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm_lock": false, + "svm-lock": false, + "smep": true, + "pfthreshold": false, + "smap": true, + "x2apic": true, + "avx512vbmi": false, + "hv-stimer": false, + "i64": true, + "flushbyasid": false, + "f16c": true, + "ace2-en": false, + "pat": true, + "pae": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": true, + "kvm_nopiodelay": true, + "tm": false, + "kvmclock-stable-bit": true, + "hypervisor": true, + "socket-id": -1, + "pcommit": false, + "syscall": true, + "level": 13, + "avx512dq": false, + "svm": false, + "full-cpuid-auto-level": true, + "hv-reset": false, + "invtsc": true, + "sse3": true, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": true, + "cx8": true, + "kvm-mmu": false, + "kvm_mmu": false, + "sse4_2": true, + "sse4.2": true, + "sse4-2": true, + "pge": true, + "fill-mtrr-mask": true, + "pdcm": false, + "nodeid_msr": false, + "model": 94, + "movbe": true, + "nrip-save": false, + "nrip_save": false, + "sse4a": false, + "ssse3": true, + "kvm_pv_unhalt": true, + "invpcid": true, + "pdpe1gb": true, + "tsc-deadline": true, + "fma": true, + "cx16": true, + "de": true, + "enforce": false, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tce": false, + "tsc": true, + "fpu": true, + "ds-cpl": false, + "ds_cpl": false, + "ibs": false, + "host-phys-bits": false, + "fma4": false, + "la57": false, + "osvw": false, + "check": true, + "hv-spinlocks": -1, + "pmm": false, + "apic": true, + "pmu": false, + "min-xlevel2": 0, + "tsc-adjust": true, + "tsc_adjust": true, + "kvm-steal-time": true, + "kvm_steal_time": true, + "kvmclock": true, + "l3-cache": true, + "lwp": false, + "xop": false, + "avx": true, + "ospke": false, + "ace2": false, + "acpi": false, + "avx512bw": false, + "hv-vapic": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": false, + "popcnt": true, + "xsaves": true, + "lm": true, + "umip": false, + "avx2": true, + "pse": true, + "sep": true, + "pclmuldq": true, + "nodeid-msr": false, + "kvm": true, + "misalignsse": false, + "min-xlevel": 2147483656, + "bmi2": true, + "bmi1": true, + "kvm-pv-unhalt": true, + "realized": false, + "tsc_scale": false, + "tsc-scale": false, + "topoext": false, + "hv-vpindex": false, + "xlevel2": 0, + "clflushopt": true, + "kvm-no-smi-migration": false, + "monitor": false, + "avx512er": false, + "pmm-en": false, + "pcid": true, + "3dnow": false, + "erms": true, + "lahf-lm": true, + "lahf_lm": true, + "xstore": false, + "hv-synic": false, + "fxsr-opt": false, + "fxsr_opt": false, + "rtm": true, + "lmce": true, + "hv-time": false, + "perfctr-nb": false, + "perfctr_nb": false, + "ffxsr": false, + "rdrand": true, + "rdseed": true, + "avx512-4vnniw": false, + "vme": true, + "vmx": true, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "pause_filter": false, + "model-id": "Intel(R) Xeon(R) CPU E3-1245 v5 @ 3.50GHz", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-51" +} + +{ + "return": { }, "id": "libvirt-1" } @@ -16081,3 +16501,423 @@ }, "id": "libvirt-4" } + +{ + "return": { + "model": { + "name": "base", + "props": { + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "rdpid": false, + "arat": true, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "kvm-asyncpf": false, + "perfctr-core": false, + "mpx": true, + "pbe": false, + "avx512cd": false, + "decodeassists": false, + "sse4.1": true, + "family": 6, + "avx512f": false, + "msr": true, + "mce": true, + "mca": true, + "xcrypt": false, + "min-level": 13, + "xgetbv1": true, + "cid": false, + "ds": false, + "fxsr": true, + "xsaveopt": true, + "xtpr": false, + "avx512vl": false, + "avx512-vpopcntdq": false, + "phe": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": true, + "xcrypt-en": false, + "pn": false, + "dca": false, + "vendor": "AuthenticAMD", + "pku": true, + "smx": false, + "cmp-legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "hle": false, + "3dnowext": true, + "npt": false, + "clwb": true, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm-lock": false, + "smep": true, + "smap": true, + "pfthreshold": false, + "x2apic": false, + "avx512vbmi": false, + "flushbyasid": false, + "f16c": false, + "ace2-en": false, + "pae": true, + "pat": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": false, + "tm": false, + "kvmclock-stable-bit": false, + "hypervisor": true, + "pcommit": true, + "syscall": true, + "avx512dq": false, + "svm": true, + "invtsc": false, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": false, + "cx8": true, + "kvm-mmu": false, + "sse4.2": true, + "pge": true, + "pdcm": false, + "model": 6, + "movbe": true, + "nrip-save": false, + "ssse3": true, + "sse4a": true, + "invpcid": false, + "pdpe1gb": true, + "tsc-deadline": false, + "fma": false, + "cx16": true, + "de": true, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tsc": true, + "tce": false, + "fpu": true, + "ds-cpl": false, + "ibs": false, + "fma4": false, + "la57": true, + "osvw": false, + "apic": true, + "pmm": false, + "tsc-adjust": false, + "kvm-steal-time": false, + "kvmclock": false, + "lwp": false, + "xop": false, + "avx": false, + "ospke": true, + "acpi": true, + "avx512bw": false, + "ace2": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": true, + "popcnt": true, + "xsaves": false, + "lm": true, + "umip": false, + "pse": true, + "avx2": false, + "sep": true, + "nodeid-msr": false, + "misalignsse": false, + "min-xlevel": 2147483658, + "bmi1": true, + "bmi2": true, + "kvm-pv-unhalt": false, + "tsc-scale": false, + "topoext": false, + "clflushopt": true, + "monitor": true, + "avx512er": false, + "pmm-en": false, + "pcid": false, + "3dnow": true, + "erms": true, + "lahf-lm": true, + "fxsr-opt": false, + "xstore": false, + "rtm": false, + "lmce": false, + "perfctr-nb": false, + "rdrand": false, + "rdseed": false, + "avx512-4vnniw": false, + "vme": false, + "vmx": false, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "model-id": "QEMU TCG CPU version 2.5+", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-5" +} + +{ + "return": { + "model": { + "name": "base", + "props": { + "phys-bits": 0, + "core-id": -1, + "xlevel": 2147483658, + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "arat": true, + "rdpid": false, + "pause-filter": false, + "xsavec": false, + "osxsave": false, + "tsc-frequency": 0, + "xd": true, + "hv-vendor-id": "", + "kvm-asyncpf": false, + "kvm_asyncpf": false, + "perfctr_core": false, + "perfctr-core": false, + "mpx": true, + "avx512cd": false, + "decodeassists": false, + "pbe": false, + "sse4_1": true, + "sse4.1": true, + "sse4-1": true, + "family": 6, + "vmware-cpuid-freq": true, + "avx512f": false, + "xcrypt": false, + "hv-runtime": false, + "msr": true, + "mce": true, + "mca": true, + "thread-id": -1, + "min-level": 13, + "xgetbv1": true, + "cid": false, + "hv-relaxed": false, + "fxsr": true, + "ds": false, + "hv-crash": false, + "xsaveopt": true, + "xtpr": false, + "avx512-vpopcntdq": false, + "phe": false, + "avx512vl": false, + "extapic": false, + "3dnowprefetch": false, + "cr8legacy": true, + "cpuid-0xb": true, + "xcrypt-en": false, + "kvm_pv_eoi": false, + "apic-id": 4294967295, + "pn": false, + "dca": false, + "vendor": "AuthenticAMD", + "pku": true, + "smx": false, + "cmp-legacy": false, + "cmp_legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "vmcb_clean": false, + "3dnowext": true, + "hle": false, + "npt": false, + "memory": "/machine/unattached/system[0]", + "clwb": true, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm_lock": false, + "svm-lock": false, + "smep": true, + "pfthreshold": false, + "smap": true, + "x2apic": false, + "avx512vbmi": false, + "hv-stimer": false, + "i64": true, + "flushbyasid": false, + "f16c": false, + "ace2-en": false, + "pat": true, + "pae": true, + "sse": true, + "phe-en": false, + "kvm-nopiodelay": false, + "kvm_nopiodelay": false, + "tm": false, + "kvmclock-stable-bit": false, + "hypervisor": true, + "socket-id": -1, + "pcommit": true, + "syscall": true, + "level": 13, + "avx512dq": false, + "svm": true, + "full-cpuid-auto-level": true, + "hv-reset": false, + "invtsc": false, + "sse3": true, + "sse2": true, + "est": false, + "avx512ifma": false, + "tm2": false, + "kvm-pv-eoi": false, + "cx8": true, + "kvm-mmu": false, + "kvm_mmu": false, + "sse4_2": true, + "sse4.2": true, + "sse4-2": true, + "pge": true, + "fill-mtrr-mask": true, + "pdcm": false, + "nodeid_msr": false, + "model": 6, + "movbe": true, + "nrip-save": false, + "nrip_save": false, + "sse4a": true, + "ssse3": true, + "kvm_pv_unhalt": false, + "invpcid": false, + "pdpe1gb": true, + "tsc-deadline": false, + "fma": false, + "cx16": true, + "de": true, + "enforce": false, + "stepping": 3, + "xsave": true, + "clflush": true, + "skinit": false, + "tce": false, + "tsc": true, + "fpu": true, + "ds-cpl": false, + "ds_cpl": false, + "ibs": false, + "host-phys-bits": false, + "fma4": false, + "la57": true, + "osvw": false, + "check": true, + "hv-spinlocks": -1, + "pmm": false, + "apic": true, + "pmu": false, + "min-xlevel2": 0, + "tsc-adjust": false, + "tsc_adjust": false, + "kvm-steal-time": false, + "kvm_steal_time": false, + "kvmclock": false, + "l3-cache": true, + "lwp": false, + "xop": false, + "avx": false, + "ospke": true, + "ace2": false, + "acpi": true, + "avx512bw": false, + "hv-vapic": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": true, + "popcnt": true, + "xsaves": false, + "lm": true, + "umip": false, + "avx2": false, + "pse": true, + "sep": true, + "pclmuldq": true, + "nodeid-msr": false, + "kvm": true, + "misalignsse": false, + "min-xlevel": 2147483658, + "bmi2": true, + "bmi1": true, + "kvm-pv-unhalt": false, + "realized": false, + "tsc_scale": false, + "tsc-scale": false, + "topoext": false, + "hv-vpindex": false, + "xlevel2": 0, + "clflushopt": true, + "kvm-no-smi-migration": false, + "monitor": true, + "avx512er": false, + "pmm-en": false, + "pcid": false, + "3dnow": true, + "erms": true, + "lahf-lm": true, + "lahf_lm": true, + "xstore": false, + "hv-synic": false, + "fxsr-opt": false, + "fxsr_opt": false, + "rtm": false, + "lmce": false, + "hv-time": false, + "perfctr-nb": false, + "perfctr_nb": false, + "ffxsr": false, + "rdrand": false, + "rdseed": false, + "avx512-4vnniw": false, + "vme": false, + "vmx": false, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "pause_filter": false, + "model-id": "QEMU TCG CPU version 2.5+", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "libvirt-6" +} diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.9.0.x86_64.xml index 0b14e53e2..6efa8a668 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -211,60 +211,60 @@ 0 (v2.9.0-rc0-142-g940a8ce) x86_64 - + - + - - - + + + - + - + - - + + - + - - - + + + - + - - - + + + - + - + - + - + - + - + @@ -277,81 +277,81 @@ - + - - - + + + - + - - + + - + - + - - - + + + - - + + - - + + - + - + - - + + - - + + - - - - - + + + + + - + - - - - - - - - + + + + + + + + - - + + - - + + @@ -359,242 +359,242 @@ - + - + - - - - - - + + + + + + - + - + - - + + - - - + + + - - - - + + + + - + - - - + + + - + - + - - - + + + - - + + - - + + - - + + - - - + + + - + - + - + - - - + + + - + - + - - - + + + - + - - - + + + - + - + - + - - + + - + - + - + - - - + + + - + - + - + - - - + + + - + - - + + - - + + - - + + - + - - - - - + + + + + - + - - + + - + - - + + - - + + - - + + - + - + - + @@ -602,34 +602,34 @@ - + - + - + - + - - - - + + + + - + - - - + + + - + - - + + @@ -637,16 +637,16 @@ - + - + - - - - + + + + @@ -663,15 +663,15 @@ - - - + + + - + --=20 2.12.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list From nobody Tue Apr 30 18:14:38 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1490799442363354.52850701205296; Wed, 29 Mar 2017 07:57:22 -0700 (PDT) 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 mx1.redhat.com (Postfix) with ESMTPS id 5B542C0094C4; Wed, 29 Mar 2017 14:57:20 +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 2F515996BA; Wed, 29 Mar 2017 14:57:20 +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 02BD818521CB; Wed, 29 Mar 2017 14:57:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v2TErPct026195 for ; Wed, 29 Mar 2017 10:53:25 -0400 Received: by smtp.corp.redhat.com (Postfix) id EAFB17D9F0; Wed, 29 Mar 2017 14:53:25 +0000 (UTC) Received: from virval.usersys.redhat.com (dhcp129-92.brq.redhat.com [10.34.129.92]) by smtp.corp.redhat.com (Postfix) with ESMTPS id BEE107D9E5 for ; Wed, 29 Mar 2017 14:53:21 +0000 (UTC) Received: by virval.usersys.redhat.com (Postfix, from userid 500) id 2ED1010669E; Wed, 29 Mar 2017 16:53:20 +0200 (CEST) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 5B542C0094C4 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 5B542C0094C4 From: Jiri Denemark To: libvir-list@redhat.com Date: Wed, 29 Mar 2017 16:53:19 +0200 Message-Id: <39e7bbe875e5b6419bb1f0049c16ab9ca20144e6.1490798631.git.jdenemar@redhat.com> In-Reply-To: References: In-Reply-To: References: Mail-Followup-To: libvir-list@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 3/3] qemu: Check non-migratable host CPU features 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: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Wed, 29 Mar 2017 14:57:21 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" CPU features which change their value from disabled to enabled between two calls to query-cpu-model-expansion (the first with no extra properties set and the second with 'migratable' property set to false) can be marked as enabled and non-migratable in qemuMonitorCPUModelInfo. Since the code consuming qemuMonitorCPUModelInfo currently ignores the migratable flag, this change is effectively changing the CPU model advertised in domain capabilities to contain all features (even those which block migration). And this matches what we do for QEMU older than 2.9.0, when we detect all CPUID bits ourselves without asking QEMU. As a result of this change will work with all QEMU versions. Such CPU definition would be forbidden with QEMU >=3D 2.9.0 without this patch. Signed-off-by: Jiri Denemark --- src/qemu/qemu_capabilities.c | 6 +++++- tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml | 1 + tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 9726bce74..b1245ad5d 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2864,8 +2864,12 @@ virQEMUCapsProbeQMPHostCPU(virQEMUCapsPtr qemuCaps, prop->type !=3D nmProp->type) continue; =20 - if (prop->value.boolean) + if (prop->value.boolean) { prop->migratable =3D VIR_TRISTATE_BOOL_YES; + } else if (nmProp->value.boolean) { + prop->value.boolean =3D true; + prop->migratable =3D VIR_TRISTATE_BOOL_NO; + } } =20 (*modelInfo)->migratability =3D true; diff --git a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml b/tests/domai= ncapsschemadata/qemu_2.9.0.x86_64.xml index a4ab74dca..e8fe01d85 100644 --- a/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml @@ -30,6 +30,7 @@ + qemu64 diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml b/tests/qemuc= apabilitiesdata/caps_2.9.0.x86_64.xml index 6efa8a668..6386c4ed0 100644 --- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml +++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml @@ -314,7 +314,7 @@ - + --=20 2.12.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list