]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Check migratable host CPU features
authorJiri Denemark <jdenemar@redhat.com>
Wed, 29 Mar 2017 08:58:41 +0000 (10:58 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Thu, 30 Mar 2017 07:59:42 +0000 (09:59 +0200)
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@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_monitor.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.c
src/qemu/qemu_monitor_json.h
tests/cputest.c
tests/qemucapabilitiesdata/caps_2.8.0.s390x.replies
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml

index 446c15f92cd34819bddc73d28c51f3606c0a0792..9726bce748802249d666396d09bedfb1a4b6c61c 100644 (file)
@@ -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 {
index e9ba5fdea78fe4d63e3adde5fc04a3a58b0a9f90..a4fa6eca646e498437db161d6a7100d823e9142a 100644 (file)
@@ -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);
 }
 
 
index 3326521781031ec915fad6c2ff73ac5afcd5e132..91ab9057e823f2291dfce6f9fef1b563f45b9ceb 100644 (file)
@@ -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);
index b86d4d8e3576a4ab8afa7ac66ba33aea5ffe3cc9..aeb777d37c129f96d019d27ad67a256bcbc07d46 100644 (file)
@@ -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;
 }
 
index 9495efd034f88df260a8834cf938ccde64e28614..d090d5709176b0790fd16d0909bb75bcea2fa552 100644 (file)
@@ -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)
index 98f66237b8e49588fd189f47f5d851246e76ccf9..3d3e43f1674af48646166ed709fd8f9045e6564d 100644 (file)
@@ -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()))
index c3cbeee0a532b45512fa23e11be01f5f6680c596..ae214aa7b59faa783d2ce0bb086744f534fc0738 100644 (file)
   "id": "libvirt-48"
 }
 
+{
+  "id": "libvirt-49",
+  "error": {
+    "class": "GenericError",
+    "desc": "Property '.migratable' not found"
+  }
+}
+
 {
   "return": {
   },
index b6fd75090c28adcb441fb13908ad1f8a01fda8ee..bae24750ca2cc569b32e02c09806b8145a2194ea 100644 (file)
   "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": {
   },
       "static": false,
       "migration-safe": true
     }
-  ],
-  "id": "libvirt-2"
+  ],
+  "id": "libvirt-2"
+}
+
+{
+  "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-3"
+}
+
+{
+  "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-4"
 }
 
 {
       }
     }
   },
-  "id": "libvirt-3"
+  "id": "libvirt-5"
 }
 
 {
       }
     }
   },
-  "id": "libvirt-4"
+  "id": "libvirt-6"
 }
index 0b14e53e2a7c635505d6ceee6870ac2ddd1e972f..6efa8a668b0498b0997f70e74bf862bab2e20f56 100644 (file)
   <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'/>
     <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'/>
     <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'/>
     <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'/>
     <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'/>
     <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>