[libvirt] [PATCH 05/17] cputest: Add data for updated AMD EPYC 7601 32-Core Processor

Jiri Denemark jdenemar at redhat.com
Tue Jan 9 22:45:18 UTC 2018


The CPU contains the updated microcode for CVE-2017-5715.

Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
---
 tests/cputest.c                                    |   1 +
 ...86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml |   7 +
 ...x86_64-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml |   9 +
 .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml  |  18 +
 .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml   |  18 +
 .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml   |  13 +
 .../x86_64-cpuid-EPYC-7601-32-Core-ibpb.json       | 722 +++++++++++++++++++++
 .../x86_64-cpuid-EPYC-7601-32-Core-ibpb.xml        |  54 ++
 8 files changed, 842 insertions(+)
 create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml
 create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json
 create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.xml

diff --git a/tests/cputest.c b/tests/cputest.c
index 037f23a9b0..46bcd32b75 100644
--- a/tests/cputest.c
+++ b/tests/cputest.c
@@ -1178,6 +1178,7 @@ mymain(void)
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core2-E6850", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Core2-Q9500", JSON_NONE);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "EPYC-7601-32-Core", JSON_HOST);
+    DO_TEST_CPUID(VIR_ARCH_X86_64, "EPYC-7601-32-Core-ibpb", JSON_MODELS_REQUIRED);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "FX-8150", JSON_NONE);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Opteron-1352", JSON_NONE);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Opteron-2350", JSON_HOST);
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
new file mode 100644
index 0000000000..af43fca98d
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml
@@ -0,0 +1,7 @@
+<!-- Features disabled by QEMU -->
+<cpudata arch='x86'>
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x08000008' edx='0x10000000'/>
+  <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x08000000'/>
+  <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/>
+</cpudata>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-enabled.xml
new file mode 100644
index 0000000000..772456f947
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-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='0xf7f83203' edx='0x078bfbff'/>
+  <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='0x209c01ab' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000007' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x000003f3' edx='0x26500800'/>
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00001000' ecx='0x00000000' edx='0x00000000'/>
+</cpudata>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml
new file mode 100644
index 0000000000..33eb8bd1f5
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml
@@ -0,0 +1,18 @@
+<cpu mode='custom' match='exact'>
+  <model fallback='forbid'>EPYC</model>
+  <vendor>AMD</vendor>
+  <feature policy='require' name='ht'/>
+  <feature policy='require' name='osxsave'/>
+  <feature policy='require' name='xsaves'/>
+  <feature policy='require' name='cmp_legacy'/>
+  <feature policy='require' name='extapic'/>
+  <feature policy='require' name='skinit'/>
+  <feature policy='require' name='wdt'/>
+  <feature policy='require' name='tce'/>
+  <feature policy='require' name='topoext'/>
+  <feature policy='require' name='perfctr_core'/>
+  <feature policy='require' name='perfctr_nb'/>
+  <feature policy='require' name='invtsc'/>
+  <feature policy='require' name='ibpb'/>
+  <feature policy='disable' name='rdtscp'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
new file mode 100644
index 0000000000..fa66113c68
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
@@ -0,0 +1,18 @@
+<cpu>
+  <arch>x86_64</arch>
+  <model>EPYC</model>
+  <vendor>AMD</vendor>
+  <feature name='ht'/>
+  <feature name='osxsave'/>
+  <feature name='xsaves'/>
+  <feature name='cmp_legacy'/>
+  <feature name='extapic'/>
+  <feature name='skinit'/>
+  <feature name='wdt'/>
+  <feature name='tce'/>
+  <feature name='topoext'/>
+  <feature name='perfctr_core'/>
+  <feature name='perfctr_nb'/>
+  <feature name='invtsc'/>
+  <feature name='ibpb'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml
new file mode 100644
index 0000000000..81c09c32a7
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-json.xml
@@ -0,0 +1,13 @@
+<cpu mode='custom' match='exact'>
+  <model fallback='forbid'>EPYC</model>
+  <vendor>AMD</vendor>
+  <feature policy='require' name='x2apic'/>
+  <feature policy='require' name='tsc-deadline'/>
+  <feature policy='require' name='hypervisor'/>
+  <feature policy='require' name='tsc_adjust'/>
+  <feature policy='require' name='cmp_legacy'/>
+  <feature policy='require' name='ibpb'/>
+  <feature policy='disable' name='monitor'/>
+  <feature policy='disable' name='rdtscp'/>
+  <feature policy='disable' name='svm'/>
+</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json
new file mode 100644
index 0000000000..94a60fcc8f
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.json
@@ -0,0 +1,722 @@
+{
+  "return": {
+    "model": {
+      "name": "base",
+      "props": {
+        "pfthreshold": false,
+        "pku": false,
+        "rtm": false,
+        "tsc_adjust": true,
+        "tsc-deadline": true,
+        "xstore-en": false,
+        "cpuid-0xb": true,
+        "abm": true,
+        "sse": true,
+        "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": true,
+        "fxsr": true,
+        "sha-ni": true,
+        "decodeassists": false,
+        "hv-relaxed": false,
+        "pclmuldq": true,
+        "xgetbv1": true,
+        "xstore": false,
+        "vmcb_clean": false,
+        "tsc-adjust": true,
+        "vme": true,
+        "vendor": "AuthenticAMD",
+        "arat": true,
+        "ffxsr": true,
+        "de": true,
+        "aes": true,
+        "pse": true,
+        "ds-cpl": false,
+        "fxsr_opt": true,
+        "tbm": false,
+        "ia64": false,
+        "phe-en": false,
+        "f16c": true,
+        "ds": false,
+        "mpx": false,
+        "vmware-cpuid-freq": true,
+        "avx512f": false,
+        "avx2": true,
+        "misalignsse": true,
+        "level": 13,
+        "pbe": false,
+        "cx16": true,
+        "ds_cpl": false,
+        "movbe": true,
+        "perfctr-nb": false,
+        "nrip_save": true,
+        "kvm_mmu": false,
+        "ospke": false,
+        "pmu": false,
+        "avx512ifma": false,
+        "stepping": 2,
+        "sep": true,
+        "sse4a": true,
+        "avx512dq": false,
+        "stibp": false,
+        "core-id": -1,
+        "i64": true,
+        "avx512-4vnniw": false,
+        "xsave": true,
+        "pmm": false,
+        "hle": false,
+        "nodeid_msr": false,
+        "hv-crash": false,
+        "est": false,
+        "x-hv-max-vps": -1,
+        "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": true,
+        "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": 2147483674,
+        "lahf_lm": true,
+        "enforce": false,
+        "pcid": false,
+        "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": true,
+        "avx512vl": false,
+        "x2apic": true,
+        "kvmclock": true,
+        "smap": true,
+        "pdpe1gb": true,
+        "family": 23,
+        "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,
+        "ibpb": true,
+        "syscall": true,
+        "tm": false,
+        "perfctr-core": false,
+        "memory": "/machine/unattached/system[0]",
+        "pge": true,
+        "pn": false,
+        "fma": true,
+        "nodeid-msr": false,
+        "xsavec": true,
+        "socket-id": -1,
+        "thread-id": -1,
+        "cx8": true,
+        "mce": true,
+        "avx512cd": false,
+        "cr8legacy": true,
+        "mca": true,
+        "avx512pf": false,
+        "pni": true,
+        "hv-vendor-id": "",
+        "rdseed": true,
+        "osvw": true,
+        "fsgsbase": true,
+        "model-id": "AMD EPYC 7601 32-Core Processor                ",
+        "cmp-legacy": true,
+        "kvm-pv-unhalt": true,
+        "rdtscp": false,
+        "mmxext": true,
+        "host-phys-bits": true,
+        "cid": false,
+        "vmx": false,
+        "ssse3": true,
+        "extapic": false,
+        "pse36": true,
+        "min-xlevel": 2147483674,
+        "ibs": false,
+        "la57": false,
+        "avx": true,
+        "kvm-no-smi-migration": false,
+        "tcg-cpuid": true,
+        "ace2-en": false,
+        "umip": false,
+        "invpcid": false,
+        "bmi1": true,
+        "bmi2": true,
+        "vmcb-clean": false,
+        "erms": false,
+        "cmov": true,
+        "check": true,
+        "perfctr_core": false,
+        "xsaves": false,
+        "clflushopt": true,
+        "pat": true,
+        "sse4-2": true,
+        "3dnowprefetch": true,
+        "rdpid": false,
+        "full-cpuid-auto-level": true,
+        "pae": true,
+        "wdt": false,
+        "tsc_scale": false,
+        "skinit": false,
+        "fxsr-opt": true,
+        "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": true,
+        "apic-id": 4294967295,
+        "kvm_asyncpf": true,
+        "min-xlevel2": 0,
+        "pclmulqdq": true,
+        "svm": false,
+        "sse3": true,
+        "sse2": true,
+        "ss": false,
+        "topoext": false,
+        "rdrand": true,
+        "avx512vbmi": false,
+        "kvm-asyncpf": true,
+        "spec-ctrl": false,
+        "arch-facilities": false,
+        "model": 1,
+        "node-id": -1
+      }
+    }
+  },
+  "id": "model-expansion"
+}
+
+{
+  "return": [
+    {
+      "typename": "max-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": false,
+      "static": false,
+      "name": "max"
+    },
+    {
+      "typename": "host-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": false,
+      "static": false,
+      "name": "host"
+    },
+    {
+      "typename": "base-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": true,
+      "name": "base"
+    },
+    {
+      "typename": "qemu64-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "qemu64"
+    },
+    {
+      "typename": "qemu32-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "qemu32"
+    },
+    {
+      "typename": "phenom-x86_64-cpu",
+      "unavailable-features": [
+        "rdtscp",
+        "3dnowext",
+        "3dnow"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "phenom"
+    },
+    {
+      "typename": "pentium3-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "pentium3"
+    },
+    {
+      "typename": "pentium2-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "pentium2"
+    },
+    {
+      "typename": "pentium-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "pentium"
+    },
+    {
+      "typename": "n270-x86_64-cpu",
+      "unavailable-features": [
+        "ss"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "n270"
+    },
+    {
+      "typename": "kvm64-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "kvm64"
+    },
+    {
+      "typename": "kvm32-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "kvm32"
+    },
+    {
+      "typename": "cpu64-rhel6-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "cpu64-rhel6"
+    },
+    {
+      "typename": "coreduo-x86_64-cpu",
+      "unavailable-features": [
+        "ss"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "coreduo"
+    },
+    {
+      "typename": "core2duo-x86_64-cpu",
+      "unavailable-features": [
+        "ss"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "core2duo"
+    },
+    {
+      "typename": "athlon-x86_64-cpu",
+      "unavailable-features": [
+        "3dnowext",
+        "3dnow"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "athlon"
+    },
+    {
+      "typename": "Westmere-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Westmere"
+    },
+    {
+      "typename": "Westmere-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "spec-ctrl"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Westmere-IBRS"
+    },
+    {
+      "typename": "Skylake-Server-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "hle",
+        "erms",
+        "invpcid",
+        "rtm",
+        "mpx",
+        "avx512f",
+        "avx512dq",
+        "clwb",
+        "avx512cd",
+        "avx512bw",
+        "avx512vl",
+        "rdtscp",
+        "mpx",
+        "mpx",
+        "avx512f",
+        "avx512f",
+        "avx512f"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Skylake-Server"
+    },
+    {
+      "typename": "Skylake-Server-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "hle",
+        "erms",
+        "invpcid",
+        "rtm",
+        "mpx",
+        "avx512f",
+        "avx512dq",
+        "clwb",
+        "avx512cd",
+        "avx512bw",
+        "avx512vl",
+        "spec-ctrl",
+        "rdtscp",
+        "mpx",
+        "mpx",
+        "avx512f",
+        "avx512f",
+        "avx512f"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Skylake-Server-IBRS"
+    },
+    {
+      "typename": "Skylake-Client-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "hle",
+        "erms",
+        "invpcid",
+        "rtm",
+        "mpx",
+        "rdtscp",
+        "mpx",
+        "mpx"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Skylake-Client"
+    },
+    {
+      "typename": "Skylake-Client-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "hle",
+        "erms",
+        "invpcid",
+        "rtm",
+        "mpx",
+        "spec-ctrl",
+        "rdtscp",
+        "mpx",
+        "mpx"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Skylake-Client-IBRS"
+    },
+    {
+      "typename": "SandyBridge-x86_64-cpu",
+      "unavailable-features": [
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "SandyBridge"
+    },
+    {
+      "typename": "SandyBridge-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "spec-ctrl",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "SandyBridge-IBRS"
+    },
+    {
+      "typename": "Penryn-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Penryn"
+    },
+    {
+      "typename": "Opteron_G5-x86_64-cpu",
+      "unavailable-features": [
+        "xop",
+        "fma4",
+        "tbm"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G5"
+    },
+    {
+      "typename": "Opteron_G4-x86_64-cpu",
+      "unavailable-features": [
+        "xop",
+        "fma4"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G4"
+    },
+    {
+      "typename": "Opteron_G3-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G3"
+    },
+    {
+      "typename": "Opteron_G2-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G2"
+    },
+    {
+      "typename": "Opteron_G1-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Opteron_G1"
+    },
+    {
+      "typename": "Nehalem-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Nehalem"
+    },
+    {
+      "typename": "Nehalem-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "spec-ctrl"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Nehalem-IBRS"
+    },
+    {
+      "typename": "IvyBridge-x86_64-cpu",
+      "unavailable-features": [
+        "erms",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "IvyBridge"
+    },
+    {
+      "typename": "IvyBridge-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "erms",
+        "spec-ctrl",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "IvyBridge-IBRS"
+    },
+    {
+      "typename": "Haswell-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "hle",
+        "erms",
+        "invpcid",
+        "rtm",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Haswell"
+    },
+    {
+      "typename": "Haswell-noTSX-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "erms",
+        "invpcid",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Haswell-noTSX"
+    },
+    {
+      "typename": "Haswell-noTSX-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "erms",
+        "invpcid",
+        "spec-ctrl",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Haswell-noTSX-IBRS"
+    },
+    {
+      "typename": "Haswell-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "hle",
+        "erms",
+        "invpcid",
+        "rtm",
+        "spec-ctrl",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Haswell-IBRS"
+    },
+    {
+      "typename": "EPYC-x86_64-cpu",
+      "unavailable-features": [
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "EPYC"
+    },
+    {
+      "typename": "EPYC-IBPB-x86_64-cpu",
+      "unavailable-features": [
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "EPYC-IBPB"
+    },
+    {
+      "typename": "Conroe-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "Conroe"
+    },
+    {
+      "typename": "Broadwell-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "hle",
+        "erms",
+        "invpcid",
+        "rtm",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Broadwell"
+    },
+    {
+      "typename": "Broadwell-noTSX-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "erms",
+        "invpcid",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Broadwell-noTSX"
+    },
+    {
+      "typename": "Broadwell-noTSX-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "erms",
+        "invpcid",
+        "spec-ctrl",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Broadwell-noTSX-IBRS"
+    },
+    {
+      "typename": "Broadwell-IBRS-x86_64-cpu",
+      "unavailable-features": [
+        "pcid",
+        "hle",
+        "erms",
+        "invpcid",
+        "rtm",
+        "spec-ctrl",
+        "rdtscp"
+      ],
+      "migration-safe": true,
+      "static": false,
+      "name": "Broadwell-IBRS"
+    },
+    {
+      "typename": "486-x86_64-cpu",
+      "unavailable-features": [],
+      "migration-safe": true,
+      "static": false,
+      "name": "486"
+    }
+  ],
+  "id": "definitions"
+}
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.xml
new file mode 100644
index 0000000000..0e1e910e34
--- /dev/null
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb.xml
@@ -0,0 +1,54 @@
+<!-- AMD EPYC 7601 32-Core Processor -->
+<cpudata arch='x86'>
+  <cpuid eax_in='0x00000000' ecx_in='0x00' eax='0x0000000d' ebx='0x68747541' ecx='0x444d4163' edx='0x69746e65'/>
+  <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00800f12' ebx='0x13400800' ecx='0x7ed8320b' edx='0x178bfbff'/>
+  <cpuid eax_in='0x00000002' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x00000003' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x00000005' ecx_in='0x00' eax='0x00000040' ebx='0x00000040' ecx='0x00000003' edx='0x00000011'/>
+  <cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000004' ebx='0x00000000' ecx='0x00000001' edx='0x00000000'/>
+  <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x209c01a9' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x00000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x00000009' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x0000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <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='0x0000000f' ebx='0x00000340' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x0000000d' ecx_in='0x02' eax='0x00000100' ebx='0x00000240' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000000' ecx_in='0x00' eax='0x8000001f' ebx='0x68747541' ecx='0x444d4163' edx='0x69746e65'/>
+  <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00800f12' ebx='0x40000000' ecx='0x35c233ff' edx='0x2fd3fbff'/>
+  <cpuid eax_in='0x80000002' ecx_in='0x00' eax='0x20444d41' ebx='0x43595045' ecx='0x30363720' edx='0x32332031'/>
+  <cpuid eax_in='0x80000003' ecx_in='0x00' eax='0x726f432d' ebx='0x72502065' ecx='0x7365636f' edx='0x20726f73'/>
+  <cpuid eax_in='0x80000004' ecx_in='0x00' eax='0x20202020' ebx='0x20202020' ecx='0x20202020' edx='0x00202020'/>
+  <cpuid eax_in='0x80000005' ecx_in='0x00' eax='0xff40ff40' ebx='0xff40ff40' ecx='0x20080140' edx='0x40040140'/>
+  <cpuid eax_in='0x80000006' ecx_in='0x00' eax='0x36006400' ebx='0x56006400' ecx='0x02006140' edx='0x0200c140'/>
+  <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x0000001b' ecx='0x00000000' edx='0x00006799'/>
+  <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00003030' ebx='0x00001007' ecx='0x0000603f' edx='0x00000000'/>
+  <cpuid eax_in='0x80000009' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000001' ebx='0x00008000' ecx='0x00000000' edx='0x0001bcff'/>
+  <cpuid eax_in='0x8000000b' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000000c' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000000d' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000000e' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000000f' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000010' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000011' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000012' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000013' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000014' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000015' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000016' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000017' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000018' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x80000019' ecx_in='0x00' eax='0xf040f040' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000001a' ecx_in='0x00' eax='0x00000003' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000001b' ecx_in='0x00' eax='0x000003ff' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000001c' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0x8000001d' ecx_in='0x00' eax='0x00004121' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/>
+  <cpuid eax_in='0x8000001d' ecx_in='0x01' eax='0x00004122' ebx='0x00c0003f' ecx='0x000000ff' edx='0x00000000'/>
+  <cpuid eax_in='0x8000001d' ecx_in='0x02' eax='0x00004143' ebx='0x01c0003f' ecx='0x000003ff' edx='0x00000002'/>
+  <cpuid eax_in='0x8000001d' ecx_in='0x03' eax='0x0001c163' ebx='0x03c0003f' ecx='0x00001fff' edx='0x00000001'/>
+  <cpuid eax_in='0x8000001e' ecx_in='0x00' eax='0x00000013' ebx='0x00000109' ecx='0x00000301' edx='0x00000000'/>
+  <cpuid eax_in='0x8000001f' ecx_in='0x00' eax='0x0000000f' ebx='0x0000016f' ecx='0x0000000f' edx='0x00000001'/>
+  <cpuid eax_in='0x80860000' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+  <cpuid eax_in='0xc0000000' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/>
+</cpudata>
-- 
2.15.1




More information about the libvir-list mailing list