[libvirt] [PATCH 2/3] qemu: Check migratable host CPU features

Jiri Denemark jdenemar at redhat.com
Wed Mar 29 14:53:18 UTC 2017


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 <jdenemar at redhat.com>
---
 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 = 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 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=%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 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);
 
 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 = -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 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 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 98f66237b..3d3e43f16 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 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 @@
 }
 
 {
+  "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/qemucapabilitiesdata/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 @@
 
 {
   "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/qemucapabilitiesdata/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 @@
   <kvmVersion>0</kvmVersion>
   <package> (v2.9.0-rc0-142-g940a8ce)</package>
   <arch>x86_64</arch>
-  <hostCPU type='kvm' model='base' migratability='no'>
+  <hostCPU type='kvm' model='base' migratability='yes'>
     <property name='phys-bits' type='number' value='0'/>
     <property name='core-id' type='number' value='-1'/>
     <property name='xlevel' type='number' value='2147483656'/>
-    <property name='cmov' type='boolean' value='true'/>
+    <property name='cmov' type='boolean' value='true' migratable='yes'/>
     <property name='ia64' type='boolean' value='false'/>
-    <property name='aes' type='boolean' value='true'/>
-    <property name='mmx' type='boolean' value='true'/>
-    <property name='arat' type='boolean' value='true'/>
+    <property name='aes' type='boolean' value='true' migratable='yes'/>
+    <property name='mmx' type='boolean' value='true' migratable='yes'/>
+    <property name='arat' type='boolean' value='true' migratable='yes'/>
     <property name='rdpid' type='boolean' value='false'/>
     <property name='pause-filter' type='boolean' value='false'/>
-    <property name='xsavec' type='boolean' value='true'/>
+    <property name='xsavec' type='boolean' value='true' migratable='yes'/>
     <property name='osxsave' type='boolean' value='false'/>
     <property name='tsc-frequency' type='number' value='0'/>
-    <property name='xd' type='boolean' value='true'/>
+    <property name='xd' type='boolean' value='true' migratable='yes'/>
     <property name='hv-vendor-id' type='string' value=''/>
-    <property name='kvm-asyncpf' type='boolean' value='true'/>
-    <property name='kvm_asyncpf' type='boolean' value='true'/>
+    <property name='kvm-asyncpf' type='boolean' value='true' migratable='yes'/>
+    <property name='kvm_asyncpf' type='boolean' value='true' migratable='yes'/>
     <property name='perfctr_core' type='boolean' value='false'/>
     <property name='perfctr-core' type='boolean' value='false'/>
-    <property name='mpx' type='boolean' value='true'/>
+    <property name='mpx' type='boolean' value='true' migratable='yes'/>
     <property name='avx512cd' type='boolean' value='false'/>
     <property name='decodeassists' type='boolean' value='false'/>
     <property name='pbe' type='boolean' value='false'/>
-    <property name='sse4_1' type='boolean' value='true'/>
-    <property name='sse4.1' type='boolean' value='true'/>
-    <property name='sse4-1' type='boolean' value='true'/>
+    <property name='sse4_1' type='boolean' value='true' migratable='yes'/>
+    <property name='sse4.1' type='boolean' value='true' migratable='yes'/>
+    <property name='sse4-1' type='boolean' value='true' migratable='yes'/>
     <property name='family' type='number' value='6'/>
-    <property name='vmware-cpuid-freq' type='boolean' value='true'/>
+    <property name='vmware-cpuid-freq' type='boolean' value='true' migratable='yes'/>
     <property name='avx512f' type='boolean' value='false'/>
     <property name='xcrypt' type='boolean' value='false'/>
     <property name='hv-runtime' type='boolean' value='false'/>
-    <property name='msr' type='boolean' value='true'/>
-    <property name='mce' type='boolean' value='true'/>
-    <property name='mca' type='boolean' value='true'/>
+    <property name='msr' type='boolean' value='true' migratable='yes'/>
+    <property name='mce' type='boolean' value='true' migratable='yes'/>
+    <property name='mca' type='boolean' value='true' migratable='yes'/>
     <property name='thread-id' type='number' value='-1'/>
     <property name='min-level' type='number' value='13'/>
-    <property name='xgetbv1' type='boolean' value='true'/>
+    <property name='xgetbv1' type='boolean' value='true' migratable='yes'/>
     <property name='cid' type='boolean' value='false'/>
     <property name='hv-relaxed' type='boolean' value='false'/>
-    <property name='fxsr' type='boolean' value='true'/>
+    <property name='fxsr' type='boolean' value='true' migratable='yes'/>
     <property name='ds' type='boolean' value='false'/>
     <property name='hv-crash' type='boolean' value='false'/>
-    <property name='xsaveopt' type='boolean' value='true'/>
+    <property name='xsaveopt' type='boolean' value='true' migratable='yes'/>
     <property name='xtpr' type='boolean' value='false'/>
     <property name='avx512-vpopcntdq' type='boolean' value='false'/>
     <property name='phe' type='boolean' value='false'/>
     <property name='avx512vl' type='boolean' value='false'/>
     <property name='extapic' type='boolean' value='false'/>
-    <property name='3dnowprefetch' type='boolean' value='true'/>
+    <property name='3dnowprefetch' type='boolean' value='true' migratable='yes'/>
     <property name='cr8legacy' type='boolean' value='false'/>
-    <property name='cpuid-0xb' type='boolean' value='true'/>
+    <property name='cpuid-0xb' type='boolean' value='true' migratable='yes'/>
     <property name='xcrypt-en' type='boolean' value='false'/>
-    <property name='kvm_pv_eoi' type='boolean' value='true'/>
+    <property name='kvm_pv_eoi' type='boolean' value='true' migratable='yes'/>
     <property name='apic-id' type='number' value='4294967295'/>
     <property name='pn' type='boolean' value='false'/>
     <property name='dca' type='boolean' value='false'/>
@@ -277,81 +277,81 @@
     <property name='vmcb-clean' type='boolean' value='false'/>
     <property name='vmcb_clean' type='boolean' value='false'/>
     <property name='3dnowext' type='boolean' value='false'/>
-    <property name='hle' type='boolean' value='true'/>
+    <property name='hle' type='boolean' value='true' migratable='yes'/>
     <property name='npt' type='boolean' value='false'/>
     <property name='memory' type='string' value='/machine/unattached/system[0]'/>
     <property name='clwb' type='boolean' value='false'/>
     <property name='lbrv' type='boolean' value='false'/>
-    <property name='adx' type='boolean' value='true'/>
-    <property name='ss' type='boolean' value='true'/>
-    <property name='pni' type='boolean' value='true'/>
+    <property name='adx' type='boolean' value='true' migratable='yes'/>
+    <property name='ss' type='boolean' value='true' migratable='yes'/>
+    <property name='pni' type='boolean' value='true' migratable='yes'/>
     <property name='svm_lock' type='boolean' value='false'/>
     <property name='svm-lock' type='boolean' value='false'/>
-    <property name='smep' type='boolean' value='true'/>
+    <property name='smep' type='boolean' value='true' migratable='yes'/>
     <property name='pfthreshold' type='boolean' value='false'/>
-    <property name='smap' type='boolean' value='true'/>
-    <property name='x2apic' type='boolean' value='true'/>
+    <property name='smap' type='boolean' value='true' migratable='yes'/>
+    <property name='x2apic' type='boolean' value='true' migratable='yes'/>
     <property name='avx512vbmi' type='boolean' value='false'/>
     <property name='hv-stimer' type='boolean' value='false'/>
-    <property name='i64' type='boolean' value='true'/>
+    <property name='i64' type='boolean' value='true' migratable='yes'/>
     <property name='flushbyasid' type='boolean' value='false'/>
-    <property name='f16c' type='boolean' value='true'/>
+    <property name='f16c' type='boolean' value='true' migratable='yes'/>
     <property name='ace2-en' type='boolean' value='false'/>
-    <property name='pat' type='boolean' value='true'/>
-    <property name='pae' type='boolean' value='true'/>
-    <property name='sse' type='boolean' value='true'/>
+    <property name='pat' type='boolean' value='true' migratable='yes'/>
+    <property name='pae' type='boolean' value='true' migratable='yes'/>
+    <property name='sse' type='boolean' value='true' migratable='yes'/>
     <property name='phe-en' type='boolean' value='false'/>
-    <property name='kvm-nopiodelay' type='boolean' value='true'/>
-    <property name='kvm_nopiodelay' type='boolean' value='true'/>
+    <property name='kvm-nopiodelay' type='boolean' value='true' migratable='yes'/>
+    <property name='kvm_nopiodelay' type='boolean' value='true' migratable='yes'/>
     <property name='tm' type='boolean' value='false'/>
-    <property name='kvmclock-stable-bit' type='boolean' value='true'/>
-    <property name='hypervisor' type='boolean' value='true'/>
+    <property name='kvmclock-stable-bit' type='boolean' value='true' migratable='yes'/>
+    <property name='hypervisor' type='boolean' value='true' migratable='yes'/>
     <property name='socket-id' type='number' value='-1'/>
     <property name='pcommit' type='boolean' value='false'/>
-    <property name='syscall' type='boolean' value='true'/>
+    <property name='syscall' type='boolean' value='true' migratable='yes'/>
     <property name='level' type='number' value='13'/>
     <property name='avx512dq' type='boolean' value='false'/>
     <property name='svm' type='boolean' value='false'/>
-    <property name='full-cpuid-auto-level' type='boolean' value='true'/>
+    <property name='full-cpuid-auto-level' type='boolean' value='true' migratable='yes'/>
     <property name='hv-reset' type='boolean' value='false'/>
     <property name='invtsc' type='boolean' value='false'/>
-    <property name='sse3' type='boolean' value='true'/>
-    <property name='sse2' type='boolean' value='true'/>
+    <property name='sse3' type='boolean' value='true' migratable='yes'/>
+    <property name='sse2' type='boolean' value='true' migratable='yes'/>
     <property name='est' type='boolean' value='false'/>
     <property name='avx512ifma' type='boolean' value='false'/>
     <property name='tm2' type='boolean' value='false'/>
-    <property name='kvm-pv-eoi' type='boolean' value='true'/>
-    <property name='cx8' type='boolean' value='true'/>
+    <property name='kvm-pv-eoi' type='boolean' value='true' migratable='yes'/>
+    <property name='cx8' type='boolean' value='true' migratable='yes'/>
     <property name='kvm-mmu' type='boolean' value='false'/>
     <property name='kvm_mmu' type='boolean' value='false'/>
-    <property name='sse4_2' type='boolean' value='true'/>
-    <property name='sse4.2' type='boolean' value='true'/>
-    <property name='sse4-2' type='boolean' value='true'/>
-    <property name='pge' type='boolean' value='true'/>
-    <property name='fill-mtrr-mask' type='boolean' value='true'/>
+    <property name='sse4_2' type='boolean' value='true' migratable='yes'/>
+    <property name='sse4.2' type='boolean' value='true' migratable='yes'/>
+    <property name='sse4-2' type='boolean' value='true' migratable='yes'/>
+    <property name='pge' type='boolean' value='true' migratable='yes'/>
+    <property name='fill-mtrr-mask' type='boolean' value='true' migratable='yes'/>
     <property name='pdcm' type='boolean' value='false'/>
     <property name='nodeid_msr' type='boolean' value='false'/>
     <property name='model' type='number' value='94'/>
-    <property name='movbe' type='boolean' value='true'/>
+    <property name='movbe' type='boolean' value='true' migratable='yes'/>
     <property name='nrip-save' type='boolean' value='false'/>
     <property name='nrip_save' type='boolean' value='false'/>
     <property name='sse4a' type='boolean' value='false'/>
-    <property name='ssse3' type='boolean' value='true'/>
-    <property name='kvm_pv_unhalt' type='boolean' value='true'/>
-    <property name='invpcid' type='boolean' value='true'/>
-    <property name='pdpe1gb' type='boolean' value='true'/>
-    <property name='tsc-deadline' type='boolean' value='true'/>
-    <property name='fma' type='boolean' value='true'/>
-    <property name='cx16' type='boolean' value='true'/>
-    <property name='de' type='boolean' value='true'/>
+    <property name='ssse3' type='boolean' value='true' migratable='yes'/>
+    <property name='kvm_pv_unhalt' type='boolean' value='true' migratable='yes'/>
+    <property name='invpcid' type='boolean' value='true' migratable='yes'/>
+    <property name='pdpe1gb' type='boolean' value='true' migratable='yes'/>
+    <property name='tsc-deadline' type='boolean' value='true' migratable='yes'/>
+    <property name='fma' type='boolean' value='true' migratable='yes'/>
+    <property name='cx16' type='boolean' value='true' migratable='yes'/>
+    <property name='de' type='boolean' value='true' migratable='yes'/>
     <property name='enforce' type='boolean' value='false'/>
     <property name='stepping' type='number' value='3'/>
-    <property name='xsave' type='boolean' value='true'/>
-    <property name='clflush' type='boolean' value='true'/>
+    <property name='xsave' type='boolean' value='true' migratable='yes'/>
+    <property name='clflush' type='boolean' value='true' migratable='yes'/>
     <property name='skinit' type='boolean' value='false'/>
     <property name='tce' type='boolean' value='false'/>
-    <property name='tsc' type='boolean' value='true'/>
-    <property name='fpu' type='boolean' value='true'/>
+    <property name='tsc' type='boolean' value='true' migratable='yes'/>
+    <property name='fpu' type='boolean' value='true' migratable='yes'/>
     <property name='ds-cpl' type='boolean' value='false'/>
     <property name='ds_cpl' type='boolean' value='false'/>
     <property name='ibs' type='boolean' value='false'/>
@@ -359,242 +359,242 @@
     <property name='fma4' type='boolean' value='false'/>
     <property name='la57' type='boolean' value='false'/>
     <property name='osvw' type='boolean' value='false'/>
-    <property name='check' type='boolean' value='true'/>
+    <property name='check' type='boolean' value='true' migratable='yes'/>
     <property name='hv-spinlocks' type='number' value='-1'/>
     <property name='pmm' type='boolean' value='false'/>
-    <property name='apic' type='boolean' value='true'/>
+    <property name='apic' type='boolean' value='true' migratable='yes'/>
     <property name='pmu' type='boolean' value='false'/>
     <property name='min-xlevel2' type='number' value='0'/>
-    <property name='tsc-adjust' type='boolean' value='true'/>
-    <property name='tsc_adjust' type='boolean' value='true'/>
-    <property name='kvm-steal-time' type='boolean' value='true'/>
-    <property name='kvm_steal_time' type='boolean' value='true'/>
-    <property name='kvmclock' type='boolean' value='true'/>
-    <property name='l3-cache' type='boolean' value='true'/>
+    <property name='tsc-adjust' type='boolean' value='true' migratable='yes'/>
+    <property name='tsc_adjust' type='boolean' value='true' migratable='yes'/>
+    <property name='kvm-steal-time' type='boolean' value='true' migratable='yes'/>
+    <property name='kvm_steal_time' type='boolean' value='true' migratable='yes'/>
+    <property name='kvmclock' type='boolean' value='true' migratable='yes'/>
+    <property name='l3-cache' type='boolean' value='true' migratable='yes'/>
     <property name='lwp' type='boolean' value='false'/>
     <property name='xop' type='boolean' value='false'/>
-    <property name='avx' type='boolean' value='true'/>
+    <property name='avx' type='boolean' value='true' migratable='yes'/>
     <property name='ospke' type='boolean' value='false'/>
     <property name='ace2' type='boolean' value='false'/>
     <property name='acpi' type='boolean' value='false'/>
     <property name='avx512bw' type='boolean' value='false'/>
     <property name='hv-vapic' type='boolean' value='false'/>
-    <property name='fsgsbase' type='boolean' value='true'/>
+    <property name='fsgsbase' type='boolean' value='true' migratable='yes'/>
     <property name='ht' type='boolean' value='false'/>
-    <property name='nx' type='boolean' value='true'/>
-    <property name='pclmulqdq' type='boolean' value='true'/>
+    <property name='nx' type='boolean' value='true' migratable='yes'/>
+    <property name='pclmulqdq' type='boolean' value='true' migratable='yes'/>
     <property name='mmxext' type='boolean' value='false'/>
-    <property name='popcnt' type='boolean' value='true'/>
-    <property name='xsaves' type='boolean' value='true'/>
-    <property name='lm' type='boolean' value='true'/>
+    <property name='popcnt' type='boolean' value='true' migratable='yes'/>
+    <property name='xsaves' type='boolean' value='true' migratable='yes'/>
+    <property name='lm' type='boolean' value='true' migratable='yes'/>
     <property name='umip' type='boolean' value='false'/>
-    <property name='avx2' type='boolean' value='true'/>
-    <property name='pse' type='boolean' value='true'/>
-    <property name='sep' type='boolean' value='true'/>
-    <property name='pclmuldq' type='boolean' value='true'/>
+    <property name='avx2' type='boolean' value='true' migratable='yes'/>
+    <property name='pse' type='boolean' value='true' migratable='yes'/>
+    <property name='sep' type='boolean' value='true' migratable='yes'/>
+    <property name='pclmuldq' type='boolean' value='true' migratable='yes'/>
     <property name='nodeid-msr' type='boolean' value='false'/>
-    <property name='kvm' type='boolean' value='true'/>
+    <property name='kvm' type='boolean' value='true' migratable='yes'/>
     <property name='misalignsse' type='boolean' value='false'/>
     <property name='min-xlevel' type='number' value='2147483656'/>
-    <property name='bmi2' type='boolean' value='true'/>
-    <property name='bmi1' type='boolean' value='true'/>
-    <property name='kvm-pv-unhalt' type='boolean' value='true'/>
+    <property name='bmi2' type='boolean' value='true' migratable='yes'/>
+    <property name='bmi1' type='boolean' value='true' migratable='yes'/>
+    <property name='kvm-pv-unhalt' type='boolean' value='true' migratable='yes'/>
     <property name='realized' type='boolean' value='false'/>
     <property name='tsc_scale' type='boolean' value='false'/>
     <property name='tsc-scale' type='boolean' value='false'/>
     <property name='topoext' type='boolean' value='false'/>
     <property name='hv-vpindex' type='boolean' value='false'/>
     <property name='xlevel2' type='number' value='0'/>
-    <property name='clflushopt' type='boolean' value='true'/>
+    <property name='clflushopt' type='boolean' value='true' migratable='yes'/>
     <property name='kvm-no-smi-migration' type='boolean' value='false'/>
     <property name='monitor' type='boolean' value='false'/>
     <property name='avx512er' type='boolean' value='false'/>
     <property name='pmm-en' type='boolean' value='false'/>
-    <property name='pcid' type='boolean' value='true'/>
+    <property name='pcid' type='boolean' value='true' migratable='yes'/>
     <property name='3dnow' type='boolean' value='false'/>
-    <property name='erms' type='boolean' value='true'/>
-    <property name='lahf-lm' type='boolean' value='true'/>
-    <property name='lahf_lm' type='boolean' value='true'/>
+    <property name='erms' type='boolean' value='true' migratable='yes'/>
+    <property name='lahf-lm' type='boolean' value='true' migratable='yes'/>
+    <property name='lahf_lm' type='boolean' value='true' migratable='yes'/>
     <property name='xstore' type='boolean' value='false'/>
     <property name='hv-synic' type='boolean' value='false'/>
     <property name='fxsr-opt' type='boolean' value='false'/>
     <property name='fxsr_opt' type='boolean' value='false'/>
-    <property name='rtm' type='boolean' value='true'/>
-    <property name='lmce' type='boolean' value='true'/>
+    <property name='rtm' type='boolean' value='true' migratable='yes'/>
+    <property name='lmce' type='boolean' value='true' migratable='yes'/>
     <property name='hv-time' type='boolean' value='false'/>
     <property name='perfctr-nb' type='boolean' value='false'/>
     <property name='perfctr_nb' type='boolean' value='false'/>
     <property name='ffxsr' type='boolean' value='false'/>
-    <property name='rdrand' type='boolean' value='true'/>
-    <property name='rdseed' type='boolean' value='true'/>
+    <property name='rdrand' type='boolean' value='true' migratable='yes'/>
+    <property name='rdseed' type='boolean' value='true' migratable='yes'/>
     <property name='avx512-4vnniw' type='boolean' value='false'/>
-    <property name='vme' type='boolean' value='true'/>
-    <property name='vmx' type='boolean' value='true'/>
+    <property name='vme' type='boolean' value='true' migratable='yes'/>
+    <property name='vmx' type='boolean' value='true' migratable='yes'/>
     <property name='dtes64' type='boolean' value='false'/>
-    <property name='mtrr' type='boolean' value='true'/>
-    <property name='rdtscp' type='boolean' value='true'/>
-    <property name='pse36' type='boolean' value='true'/>
+    <property name='mtrr' type='boolean' value='true' migratable='yes'/>
+    <property name='rdtscp' type='boolean' value='true' migratable='yes'/>
+    <property name='pse36' type='boolean' value='true' migratable='yes'/>
     <property name='tbm' type='boolean' value='false'/>
     <property name='wdt' type='boolean' value='false'/>
     <property name='pause_filter' type='boolean' value='false'/>
     <property name='model-id' type='string' value='Intel(R) Xeon(R) CPU E3-1245 v5 @ 3.50GHz'/>
     <property name='sha-ni' type='boolean' value='false'/>
-    <property name='abm' type='boolean' value='true'/>
+    <property name='abm' type='boolean' value='true' migratable='yes'/>
     <property name='avx512pf' type='boolean' value='false'/>
     <property name='xstore-en' type='boolean' value='false'/>
   </hostCPU>
-  <hostCPU type='tcg' model='base' migratability='no'>
+  <hostCPU type='tcg' model='base' migratability='yes'>
     <property name='phys-bits' type='number' value='0'/>
     <property name='core-id' type='number' value='-1'/>
     <property name='xlevel' type='number' value='2147483658'/>
-    <property name='cmov' type='boolean' value='true'/>
+    <property name='cmov' type='boolean' value='true' migratable='yes'/>
     <property name='ia64' type='boolean' value='false'/>
-    <property name='aes' type='boolean' value='true'/>
-    <property name='mmx' type='boolean' value='true'/>
-    <property name='arat' type='boolean' value='true'/>
+    <property name='aes' type='boolean' value='true' migratable='yes'/>
+    <property name='mmx' type='boolean' value='true' migratable='yes'/>
+    <property name='arat' type='boolean' value='true' migratable='yes'/>
     <property name='rdpid' type='boolean' value='false'/>
     <property name='pause-filter' type='boolean' value='false'/>
     <property name='xsavec' type='boolean' value='false'/>
     <property name='osxsave' type='boolean' value='false'/>
     <property name='tsc-frequency' type='number' value='0'/>
-    <property name='xd' type='boolean' value='true'/>
+    <property name='xd' type='boolean' value='true' migratable='yes'/>
     <property name='hv-vendor-id' type='string' value=''/>
     <property name='kvm-asyncpf' type='boolean' value='false'/>
     <property name='kvm_asyncpf' type='boolean' value='false'/>
     <property name='perfctr_core' type='boolean' value='false'/>
     <property name='perfctr-core' type='boolean' value='false'/>
-    <property name='mpx' type='boolean' value='true'/>
+    <property name='mpx' type='boolean' value='true' migratable='yes'/>
     <property name='avx512cd' type='boolean' value='false'/>
     <property name='decodeassists' type='boolean' value='false'/>
     <property name='pbe' type='boolean' value='false'/>
-    <property name='sse4_1' type='boolean' value='true'/>
-    <property name='sse4.1' type='boolean' value='true'/>
-    <property name='sse4-1' type='boolean' value='true'/>
+    <property name='sse4_1' type='boolean' value='true' migratable='yes'/>
+    <property name='sse4.1' type='boolean' value='true' migratable='yes'/>
+    <property name='sse4-1' type='boolean' value='true' migratable='yes'/>
     <property name='family' type='number' value='6'/>
-    <property name='vmware-cpuid-freq' type='boolean' value='true'/>
+    <property name='vmware-cpuid-freq' type='boolean' value='true' migratable='yes'/>
     <property name='avx512f' type='boolean' value='false'/>
     <property name='xcrypt' type='boolean' value='false'/>
     <property name='hv-runtime' type='boolean' value='false'/>
-    <property name='msr' type='boolean' value='true'/>
-    <property name='mce' type='boolean' value='true'/>
-    <property name='mca' type='boolean' value='true'/>
+    <property name='msr' type='boolean' value='true' migratable='yes'/>
+    <property name='mce' type='boolean' value='true' migratable='yes'/>
+    <property name='mca' type='boolean' value='true' migratable='yes'/>
     <property name='thread-id' type='number' value='-1'/>
     <property name='min-level' type='number' value='13'/>
-    <property name='xgetbv1' type='boolean' value='true'/>
+    <property name='xgetbv1' type='boolean' value='true' migratable='yes'/>
     <property name='cid' type='boolean' value='false'/>
     <property name='hv-relaxed' type='boolean' value='false'/>
-    <property name='fxsr' type='boolean' value='true'/>
+    <property name='fxsr' type='boolean' value='true' migratable='yes'/>
     <property name='ds' type='boolean' value='false'/>
     <property name='hv-crash' type='boolean' value='false'/>
-    <property name='xsaveopt' type='boolean' value='true'/>
+    <property name='xsaveopt' type='boolean' value='true' migratable='yes'/>
     <property name='xtpr' type='boolean' value='false'/>
     <property name='avx512-vpopcntdq' type='boolean' value='false'/>
     <property name='phe' type='boolean' value='false'/>
     <property name='avx512vl' type='boolean' value='false'/>
     <property name='extapic' type='boolean' value='false'/>
     <property name='3dnowprefetch' type='boolean' value='false'/>
-    <property name='cr8legacy' type='boolean' value='true'/>
-    <property name='cpuid-0xb' type='boolean' value='true'/>
+    <property name='cr8legacy' type='boolean' value='true' migratable='yes'/>
+    <property name='cpuid-0xb' type='boolean' value='true' migratable='yes'/>
     <property name='xcrypt-en' type='boolean' value='false'/>
     <property name='kvm_pv_eoi' type='boolean' value='false'/>
     <property name='apic-id' type='number' value='4294967295'/>
     <property name='pn' type='boolean' value='false'/>
     <property name='dca' type='boolean' value='false'/>
     <property name='vendor' type='string' value='AuthenticAMD'/>
-    <property name='pku' type='boolean' value='true'/>
+    <property name='pku' type='boolean' value='true' migratable='yes'/>
     <property name='smx' type='boolean' value='false'/>
     <property name='cmp-legacy' type='boolean' value='false'/>
     <property name='cmp_legacy' type='boolean' value='false'/>
     <property name='avx512-4fmaps' type='boolean' value='false'/>
     <property name='vmcb-clean' type='boolean' value='false'/>
     <property name='vmcb_clean' type='boolean' value='false'/>
-    <property name='3dnowext' type='boolean' value='true'/>
+    <property name='3dnowext' type='boolean' value='true' migratable='yes'/>
     <property name='hle' type='boolean' value='false'/>
     <property name='npt' type='boolean' value='false'/>
     <property name='memory' type='string' value='/machine/unattached/system[0]'/>
-    <property name='clwb' type='boolean' value='true'/>
+    <property name='clwb' type='boolean' value='true' migratable='yes'/>
     <property name='lbrv' type='boolean' value='false'/>
-    <property name='adx' type='boolean' value='true'/>
-    <property name='ss' type='boolean' value='true'/>
-    <property name='pni' type='boolean' value='true'/>
+    <property name='adx' type='boolean' value='true' migratable='yes'/>
+    <property name='ss' type='boolean' value='true' migratable='yes'/>
+    <property name='pni' type='boolean' value='true' migratable='yes'/>
     <property name='svm_lock' type='boolean' value='false'/>
     <property name='svm-lock' type='boolean' value='false'/>
-    <property name='smep' type='boolean' value='true'/>
+    <property name='smep' type='boolean' value='true' migratable='yes'/>
     <property name='pfthreshold' type='boolean' value='false'/>
-    <property name='smap' type='boolean' value='true'/>
+    <property name='smap' type='boolean' value='true' migratable='yes'/>
     <property name='x2apic' type='boolean' value='false'/>
     <property name='avx512vbmi' type='boolean' value='false'/>
     <property name='hv-stimer' type='boolean' value='false'/>
-    <property name='i64' type='boolean' value='true'/>
+    <property name='i64' type='boolean' value='true' migratable='yes'/>
     <property name='flushbyasid' type='boolean' value='false'/>
     <property name='f16c' type='boolean' value='false'/>
     <property name='ace2-en' type='boolean' value='false'/>
-    <property name='pat' type='boolean' value='true'/>
-    <property name='pae' type='boolean' value='true'/>
-    <property name='sse' type='boolean' value='true'/>
+    <property name='pat' type='boolean' value='true' migratable='yes'/>
+    <property name='pae' type='boolean' value='true' migratable='yes'/>
+    <property name='sse' type='boolean' value='true' migratable='yes'/>
     <property name='phe-en' type='boolean' value='false'/>
     <property name='kvm-nopiodelay' type='boolean' value='false'/>
     <property name='kvm_nopiodelay' type='boolean' value='false'/>
     <property name='tm' type='boolean' value='false'/>
     <property name='kvmclock-stable-bit' type='boolean' value='false'/>
-    <property name='hypervisor' type='boolean' value='true'/>
+    <property name='hypervisor' type='boolean' value='true' migratable='yes'/>
     <property name='socket-id' type='number' value='-1'/>
-    <property name='pcommit' type='boolean' value='true'/>
-    <property name='syscall' type='boolean' value='true'/>
+    <property name='pcommit' type='boolean' value='true' migratable='yes'/>
+    <property name='syscall' type='boolean' value='true' migratable='yes'/>
     <property name='level' type='number' value='13'/>
     <property name='avx512dq' type='boolean' value='false'/>
-    <property name='svm' type='boolean' value='true'/>
-    <property name='full-cpuid-auto-level' type='boolean' value='true'/>
+    <property name='svm' type='boolean' value='true' migratable='yes'/>
+    <property name='full-cpuid-auto-level' type='boolean' value='true' migratable='yes'/>
     <property name='hv-reset' type='boolean' value='false'/>
     <property name='invtsc' type='boolean' value='false'/>
-    <property name='sse3' type='boolean' value='true'/>
-    <property name='sse2' type='boolean' value='true'/>
+    <property name='sse3' type='boolean' value='true' migratable='yes'/>
+    <property name='sse2' type='boolean' value='true' migratable='yes'/>
     <property name='est' type='boolean' value='false'/>
     <property name='avx512ifma' type='boolean' value='false'/>
     <property name='tm2' type='boolean' value='false'/>
     <property name='kvm-pv-eoi' type='boolean' value='false'/>
-    <property name='cx8' type='boolean' value='true'/>
+    <property name='cx8' type='boolean' value='true' migratable='yes'/>
     <property name='kvm-mmu' type='boolean' value='false'/>
     <property name='kvm_mmu' type='boolean' value='false'/>
-    <property name='sse4_2' type='boolean' value='true'/>
-    <property name='sse4.2' type='boolean' value='true'/>
-    <property name='sse4-2' type='boolean' value='true'/>
-    <property name='pge' type='boolean' value='true'/>
-    <property name='fill-mtrr-mask' type='boolean' value='true'/>
+    <property name='sse4_2' type='boolean' value='true' migratable='yes'/>
+    <property name='sse4.2' type='boolean' value='true' migratable='yes'/>
+    <property name='sse4-2' type='boolean' value='true' migratable='yes'/>
+    <property name='pge' type='boolean' value='true' migratable='yes'/>
+    <property name='fill-mtrr-mask' type='boolean' value='true' migratable='yes'/>
     <property name='pdcm' type='boolean' value='false'/>
     <property name='nodeid_msr' type='boolean' value='false'/>
     <property name='model' type='number' value='6'/>
-    <property name='movbe' type='boolean' value='true'/>
+    <property name='movbe' type='boolean' value='true' migratable='yes'/>
     <property name='nrip-save' type='boolean' value='false'/>
     <property name='nrip_save' type='boolean' value='false'/>
-    <property name='sse4a' type='boolean' value='true'/>
-    <property name='ssse3' type='boolean' value='true'/>
+    <property name='sse4a' type='boolean' value='true' migratable='yes'/>
+    <property name='ssse3' type='boolean' value='true' migratable='yes'/>
     <property name='kvm_pv_unhalt' type='boolean' value='false'/>
     <property name='invpcid' type='boolean' value='false'/>
-    <property name='pdpe1gb' type='boolean' value='true'/>
+    <property name='pdpe1gb' type='boolean' value='true' migratable='yes'/>
     <property name='tsc-deadline' type='boolean' value='false'/>
     <property name='fma' type='boolean' value='false'/>
-    <property name='cx16' type='boolean' value='true'/>
-    <property name='de' type='boolean' value='true'/>
+    <property name='cx16' type='boolean' value='true' migratable='yes'/>
+    <property name='de' type='boolean' value='true' migratable='yes'/>
     <property name='enforce' type='boolean' value='false'/>
     <property name='stepping' type='number' value='3'/>
-    <property name='xsave' type='boolean' value='true'/>
-    <property name='clflush' type='boolean' value='true'/>
+    <property name='xsave' type='boolean' value='true' migratable='yes'/>
+    <property name='clflush' type='boolean' value='true' migratable='yes'/>
     <property name='skinit' type='boolean' value='false'/>
     <property name='tce' type='boolean' value='false'/>
-    <property name='tsc' type='boolean' value='true'/>
-    <property name='fpu' type='boolean' value='true'/>
+    <property name='tsc' type='boolean' value='true' migratable='yes'/>
+    <property name='fpu' type='boolean' value='true' migratable='yes'/>
     <property name='ds-cpl' type='boolean' value='false'/>
     <property name='ds_cpl' type='boolean' value='false'/>
     <property name='ibs' type='boolean' value='false'/>
     <property name='host-phys-bits' type='boolean' value='false'/>
     <property name='fma4' type='boolean' value='false'/>
-    <property name='la57' type='boolean' value='true'/>
+    <property name='la57' type='boolean' value='true' migratable='yes'/>
     <property name='osvw' type='boolean' value='false'/>
-    <property name='check' type='boolean' value='true'/>
+    <property name='check' type='boolean' value='true' migratable='yes'/>
     <property name='hv-spinlocks' type='number' value='-1'/>
     <property name='pmm' type='boolean' value='false'/>
-    <property name='apic' type='boolean' value='true'/>
+    <property name='apic' type='boolean' value='true' migratable='yes'/>
     <property name='pmu' type='boolean' value='false'/>
     <property name='min-xlevel2' type='number' value='0'/>
     <property name='tsc-adjust' type='boolean' value='false'/>
@@ -602,34 +602,34 @@
     <property name='kvm-steal-time' type='boolean' value='false'/>
     <property name='kvm_steal_time' type='boolean' value='false'/>
     <property name='kvmclock' type='boolean' value='false'/>
-    <property name='l3-cache' type='boolean' value='true'/>
+    <property name='l3-cache' type='boolean' value='true' migratable='yes'/>
     <property name='lwp' type='boolean' value='false'/>
     <property name='xop' type='boolean' value='false'/>
     <property name='avx' type='boolean' value='false'/>
-    <property name='ospke' type='boolean' value='true'/>
+    <property name='ospke' type='boolean' value='true' migratable='yes'/>
     <property name='ace2' type='boolean' value='false'/>
-    <property name='acpi' type='boolean' value='true'/>
+    <property name='acpi' type='boolean' value='true' migratable='yes'/>
     <property name='avx512bw' type='boolean' value='false'/>
     <property name='hv-vapic' type='boolean' value='false'/>
-    <property name='fsgsbase' type='boolean' value='true'/>
+    <property name='fsgsbase' type='boolean' value='true' migratable='yes'/>
     <property name='ht' type='boolean' value='false'/>
-    <property name='nx' type='boolean' value='true'/>
-    <property name='pclmulqdq' type='boolean' value='true'/>
-    <property name='mmxext' type='boolean' value='true'/>
-    <property name='popcnt' type='boolean' value='true'/>
+    <property name='nx' type='boolean' value='true' migratable='yes'/>
+    <property name='pclmulqdq' type='boolean' value='true' migratable='yes'/>
+    <property name='mmxext' type='boolean' value='true' migratable='yes'/>
+    <property name='popcnt' type='boolean' value='true' migratable='yes'/>
     <property name='xsaves' type='boolean' value='false'/>
-    <property name='lm' type='boolean' value='true'/>
+    <property name='lm' type='boolean' value='true' migratable='yes'/>
     <property name='umip' type='boolean' value='false'/>
     <property name='avx2' type='boolean' value='false'/>
-    <property name='pse' type='boolean' value='true'/>
-    <property name='sep' type='boolean' value='true'/>
-    <property name='pclmuldq' type='boolean' value='true'/>
+    <property name='pse' type='boolean' value='true' migratable='yes'/>
+    <property name='sep' type='boolean' value='true' migratable='yes'/>
+    <property name='pclmuldq' type='boolean' value='true' migratable='yes'/>
     <property name='nodeid-msr' type='boolean' value='false'/>
-    <property name='kvm' type='boolean' value='true'/>
+    <property name='kvm' type='boolean' value='true' migratable='yes'/>
     <property name='misalignsse' type='boolean' value='false'/>
     <property name='min-xlevel' type='number' value='2147483658'/>
-    <property name='bmi2' type='boolean' value='true'/>
-    <property name='bmi1' type='boolean' value='true'/>
+    <property name='bmi2' type='boolean' value='true' migratable='yes'/>
+    <property name='bmi1' type='boolean' value='true' migratable='yes'/>
     <property name='kvm-pv-unhalt' type='boolean' value='false'/>
     <property name='realized' type='boolean' value='false'/>
     <property name='tsc_scale' type='boolean' value='false'/>
@@ -637,16 +637,16 @@
     <property name='topoext' type='boolean' value='false'/>
     <property name='hv-vpindex' type='boolean' value='false'/>
     <property name='xlevel2' type='number' value='0'/>
-    <property name='clflushopt' type='boolean' value='true'/>
+    <property name='clflushopt' type='boolean' value='true' migratable='yes'/>
     <property name='kvm-no-smi-migration' type='boolean' value='false'/>
-    <property name='monitor' type='boolean' value='true'/>
+    <property name='monitor' type='boolean' value='true' migratable='yes'/>
     <property name='avx512er' type='boolean' value='false'/>
     <property name='pmm-en' type='boolean' value='false'/>
     <property name='pcid' type='boolean' value='false'/>
-    <property name='3dnow' type='boolean' value='true'/>
-    <property name='erms' type='boolean' value='true'/>
-    <property name='lahf-lm' type='boolean' value='true'/>
-    <property name='lahf_lm' type='boolean' value='true'/>
+    <property name='3dnow' type='boolean' value='true' migratable='yes'/>
+    <property name='erms' type='boolean' value='true' migratable='yes'/>
+    <property name='lahf-lm' type='boolean' value='true' migratable='yes'/>
+    <property name='lahf_lm' type='boolean' value='true' migratable='yes'/>
     <property name='xstore' type='boolean' value='false'/>
     <property name='hv-synic' type='boolean' value='false'/>
     <property name='fxsr-opt' type='boolean' value='false'/>
@@ -663,15 +663,15 @@
     <property name='vme' type='boolean' value='false'/>
     <property name='vmx' type='boolean' value='false'/>
     <property name='dtes64' type='boolean' value='false'/>
-    <property name='mtrr' type='boolean' value='true'/>
-    <property name='rdtscp' type='boolean' value='true'/>
-    <property name='pse36' type='boolean' value='true'/>
+    <property name='mtrr' type='boolean' value='true' migratable='yes'/>
+    <property name='rdtscp' type='boolean' value='true' migratable='yes'/>
+    <property name='pse36' type='boolean' value='true' migratable='yes'/>
     <property name='tbm' type='boolean' value='false'/>
     <property name='wdt' type='boolean' value='false'/>
     <property name='pause_filter' type='boolean' value='false'/>
     <property name='model-id' type='string' value='QEMU TCG CPU version 2.5+'/>
     <property name='sha-ni' type='boolean' value='false'/>
-    <property name='abm' type='boolean' value='true'/>
+    <property name='abm' type='boolean' value='true' migratable='yes'/>
     <property name='avx512pf' type='boolean' value='false'/>
     <property name='xstore-en' type='boolean' value='false'/>
   </hostCPU>
-- 
2.12.2




More information about the libvir-list mailing list