diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 446c15f92c..9726bce748 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 = NULL;
+ virHashTablePtr hash = NULL;
const char *model;
qemuMonitorCPUModelExpansionType type;
+ int ret = -1;
if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION))
return 0;
@@ -2831,7 +2834,55 @@ virQEMUCapsProbeQMPHostCPU(virQEMUCapsPtr qemuCaps,
else
type = QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC;
- 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 = virHashCreate(0, NULL)))
+ goto error;
+
+ for (i = 0; i < (*modelInfo)->nprops; i++) {
+ prop = (*modelInfo)->props + i;
+ if (virHashAddEntry(hash, prop->name, prop) < 0)
+ goto error;
+ }
+
+ for (i = 0; i < nonMigratable->nprops; i++) {
+ nmProp = nonMigratable->props + i;
+ if (!(prop = virHashLookup(hash, nmProp->name)) ||
+ prop->type != QEMU_MONITOR_CPU_PROPERTY_BOOLEAN ||
+ prop->type != nmProp->type)
+ continue;
+
+ if (prop->value.boolean)
+ prop->migratable = VIR_TRISTATE_BOOL_YES;
+ }
+
+ (*modelInfo)->migratability = true;
+ }
+
+ ret = 0;
+
+ cleanup:
+ virHashFree(hash);
+ qemuMonitorCPUModelInfoFree(nonMigratable);
+
+ return ret;
+
+ error:
+ qemuMonitorCPUModelInfoFree(*modelInfo);
+ *modelInfo = NULL;
+ goto cleanup;
}
struct tpmTypeToCaps {
diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
index e9ba5fdea7..a4fa6eca64 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=%d model_name=%s", type, model_name);
+ VIR_DEBUG("type=%d model_name=%s migratable=%d",
+ type, model_name, migratable);
QEMU_CHECK_MONITOR_JSON(mon);
- return qemuMonitorJSONGetCPUModelExpansion(mon, type, model_name, model_info);
+ return qemuMonitorJSONGetCPUModelExpansion(mon, type, model_name,
+ migratable, model_info);
}
diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
index 3326521781..91ab9057e8 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);
void qemuMonitorCPUModelInfoFree(qemuMonitorCPUModelInfoPtr model_info);
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index b86d4d8e35..aeb777d37c 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 = -1;
virJSONValuePtr model = NULL;
+ virJSONValuePtr props = NULL;
virJSONValuePtr cmd = NULL;
virJSONValuePtr reply = NULL;
virJSONValuePtr data;
@@ -5154,6 +5156,14 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
if (virJSONValueObjectAppendString(model, "name", model_name) < 0)
goto cleanup;
+ if (!migratable) {
+ if (!(props = virJSONValueNewObject()) ||
+ virJSONValueObjectAppendBoolean(props, "migratable", false) < 0 ||
+ virJSONValueObjectAppend(model, "props", props) < 0)
+ goto cleanup;
+ props = NULL;
+ }
+
retry:
switch (type) {
case QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC:
@@ -5248,6 +5258,7 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
virJSONValueFree(cmd);
virJSONValueFree(reply);
virJSONValueFree(model);
+ virJSONValueFree(props);
return ret;
}
diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h
index 9495efd034..d090d57091 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 type,
const char *model_name,
+ bool migratable,
qemuMonitorCPUModelInfoPtr *model_info)
- ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(4);
+ ATTRIBUTE_NONNULL(3) ATTRIBUTE_NONNULL(5);
int qemuMonitorJSONGetCommands(qemuMonitorPtr mon,
char ***commands)
diff --git a/tests/cputest.c b/tests/cputest.c
index 98f66237b8..3d3e43f167 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -691,7 +691,7 @@ cpuTestJSONCPUID(const void *arg)
if (qemuMonitorGetCPUModelExpansion(qemuMonitorTestGetMonitor(testMon),
QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC,
- "host", &model) < 0)
+ "host", true, &model) < 0)
goto cleanup;
if (!(qemuCaps = virQEMUCapsNew()))
diff --git a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
index c3cbeee0a5..ae214aa7b5 100644
--- a/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
+++ b/tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
@@ -13047,6 +13047,14 @@
"id": "libvirt-48"
}
+{
+ "id": "libvirt-49",
+ "error": {
+ "class": "GenericError",
+ "desc": "Property '.migratable' not found"
+ }
+}
+
{
"return": {
},
diff --git a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
index b6fd75090c..bae24750ca 100644
--- a/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
+++ b/tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
@@ -15311,6 +15311,426 @@
"id": "libvirt-49"
}
+{
+ "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": {
},
@@ -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/qemucapabilitiesdata/caps_2.9.0.x86_64.xml
index 0b14e53e2a..6efa8a668b 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 @@
-
-
-
+
+
+
-
+