]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Use full CPU model expansion on x86
authorJiri Denemark <jdenemar@redhat.com>
Thu, 23 Feb 2017 12:53:51 +0000 (13:53 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Fri, 3 Mar 2017 18:57:57 +0000 (19:57 +0100)
The static CPU model expansion is designed to return only canonical
names of all CPU properties. To maintain backwards compatibility libvirt
is stuck with different spelling of some of the features, but we need to
use the full expansion to get the additional spellings. In addition to
returning all spelling variants for all properties the full expansion
will contain properties which are not guaranteed to be migration
compatible. Thus, we need to combine both expansions. First we need to
call the static expansion to limit the result to migratable properties.
Then we can use the result of the static expansion as an input to the
full expansion to get both canonical names and their aliases.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.c
tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml
tests/domaincapsschemadata/qemu_2.9.0.x86_64.xml
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.replies
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml

index 70a2409a361372c3cc6f81f4566545154b73de51..8554313bbe2c22fa77543124105bbe6f34e27775 100644 (file)
@@ -2851,6 +2851,7 @@ virQEMUCapsProbeQMPHostCPU(virQEMUCapsPtr qemuCaps,
 {
     qemuMonitorCPUModelInfoPtr *modelInfo;
     const char *model;
+    qemuMonitorCPUModelExpansionType type;
 
     if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_QUERY_CPU_MODEL_EXPANSION))
         return 0;
@@ -2863,9 +2864,17 @@ virQEMUCapsProbeQMPHostCPU(virQEMUCapsPtr qemuCaps,
         model = "host";
     }
 
-    return qemuMonitorGetCPUModelExpansion(mon,
-                                           QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC,
-                                           model, modelInfo);
+    /* Some x86_64 features defined in cpu_map.xml use spelling which differ
+     * from the one preferred by QEMU. Static expansion would give us only the
+     * preferred spelling, thus we need to do a full expansion on the result of
+     * the initial static expansion to get all variants of all features.
+     */
+    if (ARCH_IS_X86(qemuCaps->arch))
+        type = QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC_FULL;
+    else
+        type = QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC;
+
+    return qemuMonitorGetCPUModelExpansion(mon, type, model, modelInfo);
 }
 
 struct tpmTypeToCaps {
index f9a9536bb448779b2625512c2dee6f178f648fa4..847e9458a554d660e3b2912765349df64e9f0fa7 100644 (file)
@@ -954,6 +954,8 @@ struct _qemuMonitorCPUModelInfo {
 
 typedef enum {
     QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC,
+    QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC_FULL,
+    QEMU_MONITOR_CPU_MODEL_EXPANSION_FULL,
 } qemuMonitorCPUModelExpansionType;
 
 int qemuMonitorGetCPUModelExpansion(qemuMonitorPtr mon,
index 39c04b62fe86510d8ce8472e1683d966f1ab54b7..3a29f1aa7418a4d88fc01f0c8ad1fc052b7b515f 100644 (file)
@@ -5031,7 +5031,7 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
                                     qemuMonitorCPUModelInfoPtr *model_info)
 {
     int ret = -1;
-    virJSONValuePtr model;
+    virJSONValuePtr model = NULL;
     virJSONValuePtr cmd = NULL;
     virJSONValuePtr reply = NULL;
     virJSONValuePtr data;
@@ -5049,10 +5049,16 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
     if (virJSONValueObjectAppendString(model, "name", model_name) < 0)
         goto cleanup;
 
+ retry:
     switch (type) {
     case QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC:
+    case QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC_FULL:
         typeStr = "static";
         break;
+
+    case QEMU_MONITOR_CPU_MODEL_EXPANSION_FULL:
+        typeStr = "full";
+        break;
     }
 
     if (!(cmd = qemuMonitorJSONMakeCommand("query-cpu-model-expansion",
@@ -5089,6 +5095,19 @@ qemuMonitorJSONGetCPUModelExpansion(qemuMonitorPtr mon,
         goto cleanup;
     }
 
+    /* QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC_FULL requests "full" expansion
+     * on the result of the initial "static" expansion.
+     */
+    if (type == QEMU_MONITOR_CPU_MODEL_EXPANSION_STATIC_FULL) {
+        if (!(model = virJSONValueCopy(cpu_model)))
+            goto cleanup;
+
+        virJSONValueFree(cmd);
+        virJSONValueFree(reply);
+        type = QEMU_MONITOR_CPU_MODEL_EXPANSION_FULL;
+        goto retry;
+    }
+
     if (!(cpu_name = virJSONValueObjectGetString(cpu_model, "name"))) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                        _("query-cpu-model-expansion reply data was missing 'name'"));
index 1827b1d6f97621a2b1fadc5f97e6cfe6bb62865b..573eb4bb6e6b6dfe256c370881ec6a6fa9980b88 100644 (file)
@@ -46,9 +46,7 @@
       <feature policy='require' name='3dnowext'/>
       <feature policy='require' name='3dnow'/>
       <feature policy='require' name='cr8legacy'/>
-      <feature policy='disable' name='pclmuldq'/>
       <feature policy='disable' name='avx'/>
-      <feature policy='disable' name='lahf_lm'/>
       <feature policy='disable' name='misalignsse'/>
       <feature policy='disable' name='3dnowprefetch'/>
       <feature policy='disable' name='xop'/>
index a7a2ecdeaf0aa290b9703e1e6e720773016c9b35..b361475d7e2bde4ff1c27315e9d1648ede193043 100644 (file)
       <feature policy='require' name='ss'/>
       <feature policy='require' name='vmx'/>
       <feature policy='require' name='hypervisor'/>
+      <feature policy='require' name='tsc_adjust'/>
       <feature policy='require' name='clflushopt'/>
       <feature policy='require' name='xsaves'/>
       <feature policy='require' name='pdpe1gb'/>
-      <feature policy='disable' name='pclmuldq'/>
-      <feature policy='disable' name='lahf_lm'/>
     </mode>
     <mode name='custom' supported='yes'>
       <model usable='yes'>qemu64</model>
index 70f7df3cf4cb5730d4554d4604156079ec209113..f6109513a2d78e90c373a2c3410df49d094a5ee9 100644 (file)
   "id": "libvirt-48"
 }
 
+{
+  "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": false,
+        "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,
+        "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-49"
+}
+
 {
   "return": {
   },
   },
   "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,
+        "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"
+}
index 44c24b047ba28282ab8a880e92fdfdf5cb149590..334f8e74bdf57fb4ed8044b69ffb387e49eec103 100644 (file)
   <package> (v2.8.0-1961-g5b10b94bd5)</package>
   <arch>x86_64</arch>
   <hostCPU type='kvm' model='base'>
+    <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='ia64' type='boolean' value='false'/>
     <property name='aes' type='boolean' value='true'/>
     <property name='mmx' type='boolean' value='true'/>
-    <property name='rdpid' type='boolean' value='false'/>
     <property name='arat' type='boolean' value='true'/>
+    <property name='rdpid' type='boolean' value='false'/>
     <property name='pause-filter' type='boolean' value='false'/>
     <property name='xsavec' type='boolean' value='true'/>
     <property name='osxsave' type='boolean' value='false'/>
+    <property name='tsc-frequency' type='number' value='0'/>
+    <property name='xd' type='boolean' value='true'/>
+    <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='perfctr_core' type='boolean' value='false'/>
     <property name='perfctr-core' type='boolean' value='false'/>
     <property name='mpx' type='boolean' value='true'/>
-    <property name='pbe' type='boolean' value='false'/>
     <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='family' type='number' value='6'/>
+    <property name='vmware-cpuid-freq' type='boolean' value='true'/>
     <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='xcrypt' type='boolean' value='false'/>
+    <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='cid' type='boolean' value='false'/>
-    <property name='ds' type='boolean' value='false'/>
+    <property name='hv-relaxed' type='boolean' value='false'/>
     <property name='fxsr' type='boolean' value='true'/>
+    <property name='ds' type='boolean' value='false'/>
+    <property name='hv-crash' type='boolean' value='false'/>
     <property name='xsaveopt' type='boolean' value='true'/>
     <property name='xtpr' type='boolean' value='false'/>
-    <property name='avx512vl' 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='cr8legacy' type='boolean' value='false'/>
+    <property name='cpuid-0xb' type='boolean' value='true'/>
     <property name='xcrypt-en' type='boolean' value='false'/>
+    <property name='kvm_pv_eoi' type='boolean' value='true'/>
+    <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='GenuineIntel'/>
     <property name='pku' type='boolean' value='false'/>
     <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='hle' type='boolean' value='true'/>
+    <property name='vmcb_clean' type='boolean' value='false'/>
     <property name='3dnowext' type='boolean' value='false'/>
+    <property name='hle' type='boolean' value='true'/>
     <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='svm_lock' type='boolean' value='false'/>
     <property name='svm-lock' type='boolean' value='false'/>
     <property name='smep' type='boolean' value='true'/>
-    <property name='smap' type='boolean' value='true'/>
     <property name='pfthreshold' type='boolean' value='false'/>
+    <property name='smap' type='boolean' value='true'/>
     <property name='x2apic' type='boolean' value='true'/>
     <property name='avx512vbmi' type='boolean' value='false'/>
+    <property name='hv-stimer' type='boolean' value='false'/>
+    <property name='i64' type='boolean' value='true'/>
     <property name='flushbyasid' type='boolean' value='false'/>
     <property name='f16c' type='boolean' value='true'/>
     <property name='ace2-en' type='boolean' value='false'/>
-    <property name='pae' type='boolean' value='true'/>
     <property name='pat' type='boolean' value='true'/>
+    <property name='pae' type='boolean' value='true'/>
     <property name='sse' type='boolean' value='true'/>
     <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='tm' type='boolean' value='false'/>
     <property name='kvmclock-stable-bit' type='boolean' value='true'/>
     <property name='hypervisor' type='boolean' value='true'/>
+    <property name='socket-id' type='number' value='-1'/>
     <property name='pcommit' type='boolean' value='false'/>
     <property name='syscall' type='boolean' value='true'/>
+    <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='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='est' type='boolean' value='false'/>
     <property name='avx512ifma' type='boolean' value='false'/>
     <property name='kvm-pv-eoi' type='boolean' value='true'/>
     <property name='cx8' type='boolean' value='true'/>
     <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='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='nrip-save' type='boolean' value='false'/>
-    <property name='ssse3' type='boolean' value='true'/>
+    <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='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='skinit' type='boolean' value='false'/>
-    <property name='tsc' type='boolean' value='true'/>
     <property name='tce' type='boolean' value='false'/>
+    <property name='tsc' type='boolean' value='true'/>
     <property name='fpu' type='boolean' value='true'/>
     <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='false'/>
     <property name='osvw' type='boolean' value='false'/>
-    <property name='apic' type='boolean' value='true'/>
+    <property name='check' type='boolean' value='true'/>
+    <property name='hv-spinlocks' type='number' value='-1'/>
     <property name='pmm' type='boolean' value='false'/>
+    <property name='apic' type='boolean' value='true'/>
+    <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='lwp' type='boolean' value='false'/>
     <property name='xop' type='boolean' value='false'/>
     <property name='avx' type='boolean' value='true'/>
     <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='ace2' type='boolean' value='false'/>
+    <property name='hv-vapic' type='boolean' value='false'/>
     <property name='fsgsbase' type='boolean' value='true'/>
     <property name='ht' type='boolean' value='false'/>
     <property name='nx' type='boolean' value='true'/>
     <property name='xsaves' type='boolean' value='true'/>
     <property name='lm' type='boolean' value='true'/>
     <property name='umip' type='boolean' value='false'/>
-    <property name='pse' type='boolean' value='true'/>
     <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='nodeid-msr' type='boolean' value='false'/>
+    <property name='kvm' type='boolean' value='true'/>
     <property name='misalignsse' type='boolean' value='false'/>
     <property name='min-xlevel' type='number' value='2147483656'/>
-    <property name='bmi1' type='boolean' value='true'/>
     <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='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='monitor' type='boolean' value='false'/>
     <property name='avx512er' type='boolean' value='false'/>
     <property name='3dnow' type='boolean' value='false'/>
     <property name='erms' type='boolean' value='true'/>
     <property name='lahf-lm' type='boolean' value='true'/>
-    <property name='fxsr-opt' type='boolean' value='false'/>
+    <property name='lahf_lm' type='boolean' value='true'/>
     <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='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='avx512-4vnniw' type='boolean' value='false'/>
     <property name='pse36' type='boolean' value='true'/>
     <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='xstore-en' type='boolean' value='false'/>
   </hostCPU>
   <hostCPU type='tcg' model='base'>
+    <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='ia64' type='boolean' value='false'/>
     <property name='aes' type='boolean' value='true'/>
     <property name='mmx' type='boolean' value='true'/>
-    <property name='rdpid' type='boolean' value='false'/>
     <property name='arat' type='boolean' value='true'/>
+    <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='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='pbe' type='boolean' value='false'/>
     <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='family' type='number' value='6'/>
+    <property name='vmware-cpuid-freq' type='boolean' value='true'/>
     <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='xcrypt' type='boolean' value='false'/>
+    <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='cid' type='boolean' value='false'/>
-    <property name='ds' type='boolean' value='false'/>
+    <property name='hv-relaxed' type='boolean' value='false'/>
     <property name='fxsr' type='boolean' value='true'/>
+    <property name='ds' type='boolean' value='false'/>
+    <property name='hv-crash' type='boolean' value='false'/>
     <property name='xsaveopt' type='boolean' value='true'/>
     <property name='xtpr' type='boolean' value='false'/>
-    <property name='avx512vl' 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='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='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='hle' type='boolean' value='false'/>
+    <property name='vmcb_clean' type='boolean' value='false'/>
     <property name='3dnowext' type='boolean' value='true'/>
+    <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='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='svm_lock' type='boolean' value='false'/>
     <property name='svm-lock' type='boolean' value='false'/>
     <property name='smep' type='boolean' value='true'/>
-    <property name='smap' type='boolean' value='true'/>
     <property name='pfthreshold' type='boolean' value='false'/>
+    <property name='smap' type='boolean' value='true'/>
     <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='flushbyasid' type='boolean' value='false'/>
     <property name='f16c' type='boolean' value='false'/>
     <property name='ace2-en' type='boolean' value='false'/>
-    <property name='pae' type='boolean' value='true'/>
     <property name='pat' type='boolean' value='true'/>
+    <property name='pae' type='boolean' value='true'/>
     <property name='sse' type='boolean' value='true'/>
     <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='socket-id' type='number' value='-1'/>
     <property name='pcommit' type='boolean' value='true'/>
     <property name='syscall' type='boolean' value='true'/>
+    <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='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='est' type='boolean' value='false'/>
     <property name='avx512ifma' type='boolean' value='false'/>
     <property name='kvm-pv-eoi' type='boolean' value='false'/>
     <property name='cx8' type='boolean' value='true'/>
     <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='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='nrip-save' type='boolean' value='false'/>
-    <property name='ssse3' type='boolean' value='true'/>
+    <property name='nrip_save' type='boolean' value='false'/>
     <property name='sse4a' type='boolean' value='true'/>
+    <property name='ssse3' type='boolean' value='true'/>
+    <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='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='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='skinit' type='boolean' value='false'/>
-    <property name='tsc' type='boolean' value='true'/>
     <property name='tce' type='boolean' value='false'/>
+    <property name='tsc' type='boolean' value='true'/>
     <property name='fpu' type='boolean' value='true'/>
     <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='osvw' type='boolean' value='false'/>
-    <property name='apic' type='boolean' value='true'/>
+    <property name='check' type='boolean' value='true'/>
+    <property name='hv-spinlocks' type='number' value='-1'/>
     <property name='pmm' type='boolean' value='false'/>
+    <property name='apic' type='boolean' value='true'/>
+    <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='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='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='ace2' type='boolean' value='false'/>
     <property name='acpi' type='boolean' value='true'/>
     <property name='avx512bw' type='boolean' value='false'/>
-    <property name='ace2' type='boolean' value='false'/>
+    <property name='hv-vapic' type='boolean' value='false'/>
     <property name='fsgsbase' type='boolean' value='true'/>
     <property name='ht' type='boolean' value='false'/>
     <property name='nx' type='boolean' value='true'/>
     <property name='xsaves' type='boolean' value='false'/>
     <property name='lm' type='boolean' value='true'/>
     <property name='umip' type='boolean' value='false'/>
-    <property name='pse' type='boolean' value='true'/>
     <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='nodeid-msr' type='boolean' value='false'/>
+    <property name='kvm' type='boolean' value='true'/>
     <property name='misalignsse' type='boolean' value='false'/>
     <property name='min-xlevel' type='number' value='2147483658'/>
-    <property name='bmi1' type='boolean' value='true'/>
     <property name='bmi2' type='boolean' value='true'/>
+    <property name='bmi1' type='boolean' value='true'/>
     <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='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='monitor' type='boolean' value='true'/>
     <property name='avx512er' 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='fxsr-opt' type='boolean' value='false'/>
+    <property name='lahf_lm' type='boolean' value='true'/>
     <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='false'/>
     <property name='lmce' type='boolean' value='false'/>
+    <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='false'/>
     <property name='rdseed' type='boolean' value='false'/>
     <property name='avx512-4vnniw' type='boolean' value='false'/>
     <property name='pse36' type='boolean' value='true'/>
     <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'/>