Without the fix in the previous patch the JSON data from QEMU would be
interpreted as Haswell-noTSX because x86DataFilterTSX would filter rtm
and hle features as a result of

    family == 6 && model == 63 && stepping < 4

test even though this CPU has stepping == 4.

Signed-off-by: Jiri Denemark <jdene...@redhat.com>
---
 tests/cputest.c                                    |   2 +-
 .../x86_64-cpuid-Xeon-E7-8890-disabled.xml         |   6 +
 .../x86_64-cpuid-Xeon-E7-8890-enabled.xml          |   9 +
 .../cputestdata/x86_64-cpuid-Xeon-E7-8890-json.xml |  14 ++
 tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.json   | 235 +++++++++++++++++++++
 tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.xml    |   6 +-
 6 files changed, 268 insertions(+), 4 deletions(-)
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-disabled.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-enabled.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-json.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.json

diff --git a/tests/cputest.c b/tests/cputest.c
index 6b48956c4d..ff54182696 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -1150,7 +1150,7 @@ mymain(void)
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2650", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4820", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4830", JSON_MODELS);
-    DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-8890", JSON_NONE);
+    DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-8890", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-Gold-6148", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-W3520", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-X5460", JSON_NONE);
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-disabled.xml 
b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-disabled.xml
new file mode 100644
index 0000000000..aacc7a2b14
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-disabled.xml
@@ -0,0 +1,6 @@
+<!-- Features disabled by QEMU -->
+<cpudata arch='x86'>
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' 
ecx='0x0804c1fc' edx='0xb0600000'/>
+  <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x00001000' 
ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000100'/>
+</cpudata>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-enabled.xml 
b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-enabled.xml
new file mode 100644
index 0000000000..026a049f77
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-enabled.xml
@@ -0,0 +1,9 @@
+<!-- Features enabled by QEMU -->
+<cpudata arch='x86'>
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' 
ecx='0xf7fa3203' edx='0x0f8bfbff'/>
+  <cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000004' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000fbb' 
ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000001' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x40000001' ecx_in='0x00' eax='0x010000fa' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' 
ecx='0x00000021' edx='0x2c100800'/>
+</cpudata>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-json.xml 
b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-json.xml
new file mode 100644
index 0000000000..e542456c8b
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890-json.xml
@@ -0,0 +1,14 @@
+<cpu mode='custom' match='exact'>
+  <model fallback='forbid'>Haswell</model>
+  <vendor>Intel</vendor>
+  <feature policy='require' name='vme'/>
+  <feature policy='require' name='ss'/>
+  <feature policy='require' name='f16c'/>
+  <feature policy='require' name='rdrand'/>
+  <feature policy='require' name='hypervisor'/>
+  <feature policy='require' name='arat'/>
+  <feature policy='require' name='tsc_adjust'/>
+  <feature policy='require' name='xsaveopt'/>
+  <feature policy='require' name='pdpe1gb'/>
+  <feature policy='require' name='abm'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.json 
b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.json
new file mode 100644
index 0000000000..d227a7af61
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.json
@@ -0,0 +1,235 @@
+{
+  "return": {
+    "model": {
+      "name": "base",
+      "props": {
+        "pfthreshold": false,
+        "pku": false,
+        "rtm": true,
+        "tsc_adjust": true,
+        "tsc-deadline": true,
+        "xstore-en": false,
+        "cpuid-0xb": true,
+        "abm": true,
+        "ia64": false,
+        "kvm-mmu": false,
+        "xsaveopt": true,
+        "hv-spinlocks": -1,
+        "tce": false,
+        "realized": false,
+        "kvm_steal_time": true,
+        "smep": true,
+        "fpu": true,
+        "xcrypt": false,
+        "sse4_2": true,
+        "clflush": true,
+        "sse4_1": true,
+        "flushbyasid": false,
+        "kvm-steal-time": true,
+        "lm": true,
+        "tsc": true,
+        "adx": false,
+        "fxsr": true,
+        "sha-ni": false,
+        "decodeassists": false,
+        "hv-relaxed": false,
+        "pclmuldq": true,
+        "xgetbv1": false,
+        "xstore": false,
+        "vmcb_clean": false,
+        "tsc-adjust": true,
+        "vme": true,
+        "vendor": "GenuineIntel",
+        "arat": true,
+        "ffxsr": false,
+        "de": true,
+        "aes": true,
+        "pse": true,
+        "ds-cpl": false,
+        "fxsr_opt": false,
+        "tbm": false,
+        "sse": true,
+        "phe-en": false,
+        "f16c": true,
+        "ds": false,
+        "mpx": false,
+        "vmware-cpuid-freq": true,
+        "avx512f": false,
+        "avx2": true,
+        "level": 13,
+        "pbe": false,
+        "cx16": true,
+        "ds_cpl": false,
+        "movbe": true,
+        "perfctr-nb": false,
+        "nrip_save": false,
+        "kvm_mmu": false,
+        "ospke": false,
+        "pmu": false,
+        "avx512ifma": false,
+        "stepping": 4,
+        "sep": true,
+        "sse4a": false,
+        "avx512dq": false,
+        "core-id": -1,
+        "i64": true,
+        "avx512-4vnniw": false,
+        "xsave": true,
+        "pmm": false,
+        "hle": true,
+        "nodeid_msr": false,
+        "hv-crash": false,
+        "est": false,
+        "osxsave": false,
+        "xop": false,
+        "smx": false,
+        "tsc-scale": false,
+        "monitor": false,
+        "avx512er": false,
+        "apic": true,
+        "sse4.1": true,
+        "sse4.2": true,
+        "hv-vapic": false,
+        "pause-filter": false,
+        "lahf-lm": true,
+        "kvm-nopiodelay": true,
+        "cmp_legacy": false,
+        "acpi": false,
+        "fma4": false,
+        "mmx": true,
+        "svm_lock": false,
+        "pcommit": false,
+        "mtrr": true,
+        "clwb": false,
+        "dca": false,
+        "pdcm": false,
+        "xcrypt-en": false,
+        "3dnow": false,
+        "invtsc": false,
+        "tm2": false,
+        "hv-time": false,
+        "hypervisor": true,
+        "kvmclock-stable-bit": true,
+        "xlevel": 2147483656,
+        "lahf_lm": true,
+        "enforce": false,
+        "pcid": true,
+        "sse4-1": true,
+        "lbrv": false,
+        "avx512-vpopcntdq": false,
+        "avx512-4fmaps": false,
+        "fill-mtrr-mask": true,
+        "pause_filter": false,
+        "svm-lock": false,
+        "popcnt": true,
+        "nrip-save": false,
+        "avx512vl": false,
+        "x2apic": true,
+        "kvmclock": true,
+        "smap": false,
+        "pdpe1gb": true,
+        "family": 6,
+        "min-level": 13,
+        "xlevel2": 0,
+        "dtes64": false,
+        "xd": true,
+        "kvm_pv_eoi": true,
+        "ace2": false,
+        "kvm_pv_unhalt": true,
+        "xtpr": false,
+        "perfctr_nb": false,
+        "avx512bw": false,
+        "l3-cache": true,
+        "nx": true,
+        "lwp": false,
+        "msr": true,
+        "syscall": true,
+        "tm": false,
+        "perfctr-core": false,
+        "memory": "/machine/unattached/system[0]",
+        "pge": true,
+        "pn": false,
+        "fma": true,
+        "nodeid-msr": false,
+        "xsavec": false,
+        "socket-id": -1,
+        "thread-id": -1,
+        "cx8": true,
+        "mce": true,
+        "avx512cd": false,
+        "cr8legacy": false,
+        "mca": true,
+        "avx512pf": false,
+        "pni": true,
+        "hv-vendor-id": "",
+        "rdseed": false,
+        "osvw": false,
+        "fsgsbase": true,
+        "model-id": "Intel(R) Xeon(R) CPU E7-8890 v3 @ 2.50GHz",
+        "cmp-legacy": false,
+        "kvm-pv-unhalt": true,
+        "rdtscp": true,
+        "mmxext": false,
+        "host-phys-bits": true,
+        "cid": false,
+        "vmx": false,
+        "ssse3": true,
+        "extapic": false,
+        "pse36": true,
+        "min-xlevel": 2147483656,
+        "ibs": false,
+        "la57": false,
+        "avx": true,
+        "kvm-no-smi-migration": false,
+        "ace2-en": false,
+        "umip": false,
+        "invpcid": true,
+        "bmi1": true,
+        "bmi2": true,
+        "vmcb-clean": false,
+        "erms": true,
+        "cmov": true,
+        "check": true,
+        "perfctr_core": false,
+        "misalignsse": false,
+        "clflushopt": false,
+        "pat": true,
+        "sse4-2": true,
+        "3dnowprefetch": false,
+        "rdpid": false,
+        "full-cpuid-auto-level": true,
+        "pae": true,
+        "wdt": false,
+        "tsc_scale": false,
+        "skinit": false,
+        "fxsr-opt": false,
+        "kvm_nopiodelay": true,
+        "phys-bits": 0,
+        "kvm": true,
+        "pmm-en": false,
+        "phe": false,
+        "3dnowext": false,
+        "lmce": false,
+        "ht": false,
+        "tsc-frequency": 0,
+        "kvm-pv-eoi": true,
+        "npt": false,
+        "apic-id": 4294967295,
+        "kvm_asyncpf": true,
+        "min-xlevel2": 0,
+        "pclmulqdq": true,
+        "svm": false,
+        "sse3": true,
+        "sse2": true,
+        "ss": true,
+        "topoext": false,
+        "rdrand": true,
+        "avx512vbmi": false,
+        "kvm-asyncpf": true,
+        "xsaves": false,
+        "model": 63
+      }
+    }
+  },
+  "id": "model-expansion"
+}
diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.xml 
b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.xml
index ccdb792193..c249e6ba4a 100644
--- a/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.xml
+++ b/tests/cputestdata/x86_64-cpuid-Xeon-E7-8890.xml
@@ -1,7 +1,7 @@
 <!-- Intel(R) Xeon(R) CPU E7-8890 v3 @ 2.50GHz -->
 <cpudata arch='x86'>
   <cpuid eax_in='0x00000000' ecx_in='0x00' eax='0x0000000f' ebx='0x756e6547' 
ecx='0x6c65746e' edx='0x49656e69'/>
-  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x000306f4' ebx='0x03400800' 
ecx='0x7ffefbff' edx='0xbfebfbff'/>
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x000306f4' ebx='0xc3400800' 
ecx='0x7ffefbff' edx='0xbfebfbff'/>
   <cpuid eax_in='0x00000002' ecx_in='0x00' eax='0x76036301' ebx='0x00f0b5ff' 
ecx='0x00000000' edx='0x00c10000'/>
   <cpuid eax_in='0x00000003' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000000'/>
   <cpuid eax_in='0x00000004' ecx_in='0x00' eax='0x7c004121' ebx='0x01c0003f' 
ecx='0x0000003f' edx='0x00000000'/>
@@ -14,8 +14,8 @@
   <cpuid eax_in='0x00000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000000'/>
   <cpuid eax_in='0x00000009' ecx_in='0x00' eax='0x00000001' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000000'/>
   <cpuid eax_in='0x0000000a' ecx_in='0x00' eax='0x07300403' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000603'/>
-  <cpuid eax_in='0x0000000b' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' 
ecx='0x00000100' edx='0x00000003'/>
-  <cpuid eax_in='0x0000000b' ecx_in='0x01' eax='0x00000006' ebx='0x00000024' 
ecx='0x00000201' edx='0x00000003'/>
+  <cpuid eax_in='0x0000000b' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' 
ecx='0x00000100' edx='0x000000c3'/>
+  <cpuid eax_in='0x0000000b' ecx_in='0x01' eax='0x00000006' ebx='0x00000024' 
ecx='0x00000201' edx='0x000000c3'/>
   <cpuid eax_in='0x0000000c' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000000'/>
   <cpuid eax_in='0x0000000d' ecx_in='0x00' eax='0x00000007' ebx='0x00000340' 
ecx='0x00000340' edx='0x00000000'/>
   <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000001' ebx='0x00000000' 
ecx='0x00000000' edx='0x00000000'/>
-- 
2.14.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to