[libvirt] [PATCH v2 0/3] Add new EPYC CPU model

Brijesh Singh (1): cpu: Add new EPYC CPU model Jiri Denemark (2): tests: Add CPUID data for AMD Ryzen 7 1800X Eight-Core Processor tests: Add CPUID data for AMD EPYC 7601 32-Core Processor src/cpu/cpu_map.xml | 74 +++++++ tests/cputest.c | 2 + .../x86_64-cpuid-EPYC-7601-32-Core-disabled.xml | 8 + .../x86_64-cpuid-EPYC-7601-32-Core-enabled.xml | 10 + .../x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 16 ++ .../x86_64-cpuid-EPYC-7601-32-Core-host.xml | 17 ++ .../x86_64-cpuid-EPYC-7601-32-Core-json.xml | 11 + .../x86_64-cpuid-EPYC-7601-32-Core.json | 241 +++++++++++++++++++++ .../cputestdata/x86_64-cpuid-EPYC-7601-32-Core.xml | 54 +++++ ..._64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml | 9 + ...6_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml | 10 + ...x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 16 ++ .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 17 ++ .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml | 11 + .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json | 203 +++++++++++++++++ .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml | 52 +++++ 16 files changed, 751 insertions(+) create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.json create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml -- 2.14.1

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/cputest.c | 1 + ..._64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml | 9 + ...6_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml | 10 + ...x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 40 ++++ .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 48 +++++ .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml | 32 ++++ .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json | 203 +++++++++++++++++++++ .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml | 52 ++++++ 8 files changed, 395 insertions(+) create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json create mode 100644 tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml diff --git a/tests/cputest.c b/tests/cputest.c index ebcade6bed..6e00e6ba4e 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -1001,6 +1001,7 @@ mymain(void) DO_TEST_CPUID(VIR_ARCH_X86_64, "Opteron-6282", false); DO_TEST_CPUID(VIR_ARCH_X86_64, "Pentium-P6100", false); DO_TEST_CPUID(VIR_ARCH_X86_64, "Phenom-B95", true); + DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-7-1800X-Eight-Core", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-5110", false); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E3-1245", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2630", true); diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml new file mode 100644 index 0000000000..9ee1e78244 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml @@ -0,0 +1,9 @@ +<!-- 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='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x20000000' ecx='0x00000000' edx='0x00000000'/> + <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='0x01c23008' edx='0x00000000'/> + <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/> +</cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml new file mode 100644 index 0000000000..9c85bb63a2 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-enabled.xml @@ -0,0 +1,10 @@ +<!-- 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='0x009c01ab' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000007' 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='0x000003f7' edx='0x2e500800'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/> +</cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml new file mode 100644 index 0000000000..fcad36e34e --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml @@ -0,0 +1,40 @@ +<cpu mode='custom' match='exact'> + <model fallback='forbid'>Opteron_G5</model> + <vendor>AMD</vendor> + <feature policy='require' name='vme'/> + <feature policy='require' name='ht'/> + <feature policy='require' name='monitor'/> + <feature policy='require' name='movbe'/> + <feature policy='require' name='osxsave'/> + <feature policy='require' name='rdrand'/> + <feature policy='require' name='arat'/> + <feature policy='require' name='fsgsbase'/> + <feature policy='require' name='bmi1'/> + <feature policy='require' name='avx2'/> + <feature policy='require' name='smep'/> + <feature policy='require' name='bmi2'/> + <feature policy='require' name='rdseed'/> + <feature policy='require' name='adx'/> + <feature policy='require' name='smap'/> + <feature policy='require' name='clflushopt'/> + <feature policy='require' name='xsaveopt'/> + <feature policy='require' name='xsavec'/> + <feature policy='require' name='xgetbv1'/> + <feature policy='require' name='xsaves'/> + <feature policy='require' name='mmxext'/> + <feature policy='require' name='fxsr_opt'/> + <feature policy='require' name='cmp_legacy'/> + <feature policy='require' name='extapic'/> + <feature policy='require' name='cr8legacy'/> + <feature policy='require' name='osvw'/> + <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='disable' name='xop'/> + <feature policy='disable' name='fma4'/> + <feature policy='disable' name='tbm'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml new file mode 100644 index 0000000000..19f6b1d4df --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml @@ -0,0 +1,48 @@ +<cpu> + <arch>x86_64</arch> + <model>Opteron_G3</model> + <vendor>AMD</vendor> + <feature name='vme'/> + <feature name='ht'/> + <feature name='pclmuldq'/> + <feature name='ssse3'/> + <feature name='fma'/> + <feature name='sse4.1'/> + <feature name='sse4.2'/> + <feature name='movbe'/> + <feature name='aes'/> + <feature name='xsave'/> + <feature name='osxsave'/> + <feature name='avx'/> + <feature name='f16c'/> + <feature name='rdrand'/> + <feature name='arat'/> + <feature name='fsgsbase'/> + <feature name='bmi1'/> + <feature name='avx2'/> + <feature name='smep'/> + <feature name='bmi2'/> + <feature name='rdseed'/> + <feature name='adx'/> + <feature name='smap'/> + <feature name='clflushopt'/> + <feature name='xsaveopt'/> + <feature name='xsavec'/> + <feature name='xgetbv1'/> + <feature name='xsaves'/> + <feature name='mmxext'/> + <feature name='fxsr_opt'/> + <feature name='pdpe1gb'/> + <feature name='cmp_legacy'/> + <feature name='extapic'/> + <feature name='cr8legacy'/> + <feature name='3dnowprefetch'/> + <feature name='osvw'/> + <feature name='skinit'/> + <feature name='wdt'/> + <feature name='tce'/> + <feature name='topoext'/> + <feature name='perfctr_core'/> + <feature name='perfctr_nb'/> + <feature name='invtsc'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml new file mode 100644 index 0000000000..2773147da6 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml @@ -0,0 +1,32 @@ +<cpu mode='custom' match='exact'> + <model fallback='forbid'>Opteron_G5</model> + <vendor>AMD</vendor> + <feature policy='require' name='vme'/> + <feature policy='require' name='x2apic'/> + <feature policy='require' name='movbe'/> + <feature policy='require' name='tsc-deadline'/> + <feature policy='require' name='rdrand'/> + <feature policy='require' name='hypervisor'/> + <feature policy='require' name='arat'/> + <feature policy='require' name='fsgsbase'/> + <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='bmi1'/> + <feature policy='require' name='avx2'/> + <feature policy='require' name='smep'/> + <feature policy='require' name='bmi2'/> + <feature policy='require' name='rdseed'/> + <feature policy='require' name='adx'/> + <feature policy='require' name='smap'/> + <feature policy='require' name='clflushopt'/> + <feature policy='require' name='xsaveopt'/> + <feature policy='require' name='xsavec'/> + <feature policy='require' name='xgetbv1'/> + <feature policy='require' name='mmxext'/> + <feature policy='require' name='fxsr_opt'/> + <feature policy='require' name='cmp_legacy'/> + <feature policy='require' name='cr8legacy'/> + <feature policy='require' name='osvw'/> + <feature policy='disable' name='xop'/> + <feature policy='disable' name='fma4'/> + <feature policy='disable' name='tbm'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json new file mode 100644 index 0000000000..7bb003d786 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.json @@ -0,0 +1,203 @@ +{ + "return": { + "model": { + "name": "base", + "props": { + "pfthreshold": false, + "pku": false, + "rtm": false, + "tsc_adjust": true, + "tsc-deadline": true, + "xstore-en": false, + "tsc-scale": false, + "sse": true, + "smap": true, + "stepping": 1, + "tce": false, + "kvm_steal_time": true, + "smep": true, + "rdpid": false, + "xcrypt": false, + "sse4_2": true, + "monitor": false, + "sse4_1": true, + "kvm-mmu": false, + "flushbyasid": false, + "kvm-steal-time": true, + "lm": true, + "tsc": true, + "adx": true, + "fxsr": true, + "sha-ni": false, + "tm": false, + "pclmuldq": true, + "xgetbv1": true, + "xstore": false, + "vmcb_clean": false, + "vme": true, + "vendor": "AuthenticAMD", + "arat": true, + "ffxsr": true, + "de": true, + "avx512f": false, + "pse": true, + "ds-cpl": false, + "tbm": false, + "ia64": false, + "phe-en": false, + "f16c": true, + "ds": false, + "mpx": false, + "tsc-adjust": true, + "aes": true, + "avx2": true, + "pbe": false, + "cx16": true, + "ds_cpl": false, + "movbe": true, + "perfctr-nb": false, + "nrip_save": true, + "kvm_mmu": false, + "ospke": false, + "avx512ifma": false, + "vmx": false, + "sep": true, + "xsaveopt": true, + "sse4a": true, + "avx512dq": false, + "i64": true, + "avx512-4vnniw": false, + "xsave": true, + "erms": false, + "hle": false, + "nodeid_msr": false, + "est": false, + "svm_lock": false, + "xop": false, + "model-id": "AMD Ryzen 7 1800X Eight-Core Processor ", + "abm": true, + "avx512er": false, + "sse4.1": true, + "sse4.2": true, + "pause-filter": false, + "lahf-lm": true, + "kvm-nopiodelay": true, + "cmp_legacy": true, + "acpi": false, + "fma4": false, + "popcnt": true, + "mmx": true, + "osxsave": false, + "pcommit": false, + "avx512pf": false, + "clwb": false, + "dca": false, + "pdcm": false, + "xcrypt-en": false, + "3dnow": false, + "invtsc": false, + "tm2": false, + "hypervisor": true, + "kvmclock-stable-bit": true, + "fxsr-opt": true, + "pcid": false, + "sse4-1": true, + "sse4-2": true, + "avx512-vpopcntdq": false, + "avx512-4fmaps": false, + "pause_filter": false, + "svm-lock": false, + "rdrand": true, + "nrip-save": true, + "avx512vl": false, + "x2apic": true, + "kvmclock": true, + "pge": true, + "family": 23, + "dtes64": false, + "xd": true, + "kvm_pv_eoi": true, + "ace2": false, + "kvm_pv_unhalt": true, + "xtpr": false, + "perfctr_nb": false, + "avx512bw": false, + "nx": true, + "lwp": false, + "msr": true, + "ace2-en": false, + "decodeassists": false, + "perfctr-core": false, + "pn": false, + "fma": true, + "nodeid-msr": false, + "kvm_asyncpf": true, + "clflush": true, + "cx8": true, + "mce": true, + "avx512cd": false, + "cr8legacy": true, + "mca": true, + "pni": true, + "rdseed": true, + "apic": true, + "fsgsbase": true, + "cmp-legacy": true, + "kvm-pv-unhalt": true, + "rdtscp": true, + "mmxext": true, + "cid": false, + "ssse3": true, + "extapic": false, + "pse36": true, + "mtrr": true, + "ibs": false, + "la57": false, + "avx": true, + "syscall": true, + "umip": false, + "invpcid": false, + "avx512vbmi": false, + "kvm-asyncpf": true, + "vmcb-clean": false, + "pmm": false, + "cmov": true, + "perfctr_core": false, + "misalignsse": true, + "clflushopt": true, + "pat": true, + "lbrv": false, + "3dnowprefetch": true, + "fpu": true, + "pae": true, + "wdt": false, + "tsc_scale": false, + "skinit": false, + "fxsr_opt": true, + "kvm_nopiodelay": true, + "pmm-en": false, + "phe": false, + "3dnowext": false, + "osvw": true, + "ht": false, + "pdpe1gb": true, + "kvm-pv-eoi": true, + "npt": true, + "xsavec": true, + "lahf_lm": true, + "pclmulqdq": true, + "svm": true, + "sse3": true, + "sse2": true, + "ss": false, + "topoext": false, + "smx": false, + "bmi1": true, + "bmi2": true, + "xsaves": false, + "model": 1 + } + } + }, + "id": "model-expansion" +} diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml new file mode 100644 index 0000000000..66d99642fc --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core.xml @@ -0,0 +1,52 @@ +<!-- AMD Ryzen 7 1800X Eight-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='0x00800f11' ebx='0x09100800' 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='0x00000000'/> + <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='0x0000000d' ecx_in='0x03' eax='0x00000000' ebx='0x00000000' 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='0x00800f11' ebx='0x20000000' ecx='0x35c233ff' edx='0x2fd3fbff'/> + <cpuid eax_in='0x80000002' ecx_in='0x00' eax='0x20444d41' ebx='0x657a7952' ecx='0x2037206e' edx='0x30303831'/> + <cpuid eax_in='0x80000003' ecx_in='0x00' eax='0x69452058' ebx='0x2d746867' ecx='0x65726f43' edx='0x6f725020'/> + <cpuid eax_in='0x80000004' ecx_in='0x00' eax='0x73736563' ebx='0x2020726f' 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='0x26006400' ebx='0x66006400' ecx='0x02006140' edx='0x00808140'/> + <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x0000001b' ecx='0x00000000' edx='0x00006599'/> + <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00003030' ebx='0x00000007' ecx='0x0000400f' 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='0x8000001e' ecx_in='0x00' eax='0x00000009' ebx='0x00000104' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x8000001f' ecx_in='0x00' eax='0x00000007' ebx='0x0000016f' ecx='0x0000000f' edx='0x00000000'/> + <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.14.1

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/cputest.c | 1 + .../x86_64-cpuid-EPYC-7601-32-Core-disabled.xml | 8 + .../x86_64-cpuid-EPYC-7601-32-Core-enabled.xml | 10 + .../x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 40 ++++ .../x86_64-cpuid-EPYC-7601-32-Core-host.xml | 48 ++++ .../x86_64-cpuid-EPYC-7601-32-Core-json.xml | 33 +++ .../x86_64-cpuid-EPYC-7601-32-Core.json | 241 +++++++++++++++++++++ .../cputestdata/x86_64-cpuid-EPYC-7601-32-Core.xml | 54 +++++ 8 files changed, 435 insertions(+) create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.json create mode 100644 tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.xml diff --git a/tests/cputest.c b/tests/cputest.c index 6e00e6ba4e..69621ace2a 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -994,6 +994,7 @@ mymain(void) DO_TEST_CPUID(VIR_ARCH_X86_64, "Core-i7-5600U-arat", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "Core2-E6850", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "Core2-Q9500", false); + DO_TEST_CPUID(VIR_ARCH_X86_64, "EPYC-7601-32-Core", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "FX-8150", false); DO_TEST_CPUID(VIR_ARCH_X86_64, "Opteron-1352", false); DO_TEST_CPUID(VIR_ARCH_X86_64, "Opteron-2350", true); diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml new file mode 100644 index 0000000000..d3070d4147 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml @@ -0,0 +1,8 @@ +<!-- 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='0x00000000'/> + <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/> +</cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml new file mode 100644 index 0000000000..6e47d40066 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-enabled.xml @@ -0,0 +1,10 @@ +<!-- 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='0x40000001' ecx_in='0x00' eax='0x010000fa' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x000003f3' edx='0x2e500800'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000009'/> +</cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml new file mode 100644 index 0000000000..fcad36e34e --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml @@ -0,0 +1,40 @@ +<cpu mode='custom' match='exact'> + <model fallback='forbid'>Opteron_G5</model> + <vendor>AMD</vendor> + <feature policy='require' name='vme'/> + <feature policy='require' name='ht'/> + <feature policy='require' name='monitor'/> + <feature policy='require' name='movbe'/> + <feature policy='require' name='osxsave'/> + <feature policy='require' name='rdrand'/> + <feature policy='require' name='arat'/> + <feature policy='require' name='fsgsbase'/> + <feature policy='require' name='bmi1'/> + <feature policy='require' name='avx2'/> + <feature policy='require' name='smep'/> + <feature policy='require' name='bmi2'/> + <feature policy='require' name='rdseed'/> + <feature policy='require' name='adx'/> + <feature policy='require' name='smap'/> + <feature policy='require' name='clflushopt'/> + <feature policy='require' name='xsaveopt'/> + <feature policy='require' name='xsavec'/> + <feature policy='require' name='xgetbv1'/> + <feature policy='require' name='xsaves'/> + <feature policy='require' name='mmxext'/> + <feature policy='require' name='fxsr_opt'/> + <feature policy='require' name='cmp_legacy'/> + <feature policy='require' name='extapic'/> + <feature policy='require' name='cr8legacy'/> + <feature policy='require' name='osvw'/> + <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='disable' name='xop'/> + <feature policy='disable' name='fma4'/> + <feature policy='disable' name='tbm'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml new file mode 100644 index 0000000000..19f6b1d4df --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml @@ -0,0 +1,48 @@ +<cpu> + <arch>x86_64</arch> + <model>Opteron_G3</model> + <vendor>AMD</vendor> + <feature name='vme'/> + <feature name='ht'/> + <feature name='pclmuldq'/> + <feature name='ssse3'/> + <feature name='fma'/> + <feature name='sse4.1'/> + <feature name='sse4.2'/> + <feature name='movbe'/> + <feature name='aes'/> + <feature name='xsave'/> + <feature name='osxsave'/> + <feature name='avx'/> + <feature name='f16c'/> + <feature name='rdrand'/> + <feature name='arat'/> + <feature name='fsgsbase'/> + <feature name='bmi1'/> + <feature name='avx2'/> + <feature name='smep'/> + <feature name='bmi2'/> + <feature name='rdseed'/> + <feature name='adx'/> + <feature name='smap'/> + <feature name='clflushopt'/> + <feature name='xsaveopt'/> + <feature name='xsavec'/> + <feature name='xgetbv1'/> + <feature name='xsaves'/> + <feature name='mmxext'/> + <feature name='fxsr_opt'/> + <feature name='pdpe1gb'/> + <feature name='cmp_legacy'/> + <feature name='extapic'/> + <feature name='cr8legacy'/> + <feature name='3dnowprefetch'/> + <feature name='osvw'/> + <feature name='skinit'/> + <feature name='wdt'/> + <feature name='tce'/> + <feature name='topoext'/> + <feature name='perfctr_core'/> + <feature name='perfctr_nb'/> + <feature name='invtsc'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml new file mode 100644 index 0000000000..e8996cda66 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml @@ -0,0 +1,33 @@ +<cpu mode='custom' match='exact'> + <model fallback='forbid'>Opteron_G5</model> + <vendor>AMD</vendor> + <feature policy='require' name='vme'/> + <feature policy='require' name='x2apic'/> + <feature policy='require' name='movbe'/> + <feature policy='require' name='tsc-deadline'/> + <feature policy='require' name='rdrand'/> + <feature policy='require' name='hypervisor'/> + <feature policy='require' name='arat'/> + <feature policy='require' name='fsgsbase'/> + <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='bmi1'/> + <feature policy='require' name='avx2'/> + <feature policy='require' name='smep'/> + <feature policy='require' name='bmi2'/> + <feature policy='require' name='rdseed'/> + <feature policy='require' name='adx'/> + <feature policy='require' name='smap'/> + <feature policy='require' name='clflushopt'/> + <feature policy='require' name='xsaveopt'/> + <feature policy='require' name='xsavec'/> + <feature policy='require' name='xgetbv1'/> + <feature policy='require' name='mmxext'/> + <feature policy='require' name='fxsr_opt'/> + <feature policy='require' name='cmp_legacy'/> + <feature policy='require' name='cr8legacy'/> + <feature policy='require' name='osvw'/> + <feature policy='disable' name='svm'/> + <feature policy='disable' name='xop'/> + <feature policy='disable' name='fma4'/> + <feature policy='disable' name='tbm'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.json b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.json new file mode 100644 index 0000000000..e7bf987292 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.json @@ -0,0 +1,241 @@ +{ + "return": { + "model": { + "name": "base", + "props": { + "phys-bits": 0, + "core-id": -1, + "xlevel": 2147483679, + "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": false, + "avx512cd": false, + "decodeassists": false, + "pbe": false, + "sse4_1": true, + "sse4.1": true, + "sse4-1": true, + "family": 23, + "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": true, + "cpuid-0xb": true, + "xcrypt-en": false, + "kvm_pv_eoi": true, + "apic-id": 4294967295, + "pn": false, + "dca": false, + "vendor": "AuthenticAMD", + "pku": false, + "smx": false, + "cmp-legacy": true, + "cmp_legacy": true, + "node-id": -1, + "avx512-4fmaps": false, + "vmcb-clean": false, + "vmcb_clean": false, + "3dnowext": false, + "hle": false, + "npt": true, + "memory": "/machine/unattached/system[0]", + "clwb": false, + "lbrv": false, + "adx": true, + "ss": false, + "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": 1, + "movbe": true, + "nrip-save": true, + "nrip_save": true, + "sse4a": true, + "ssse3": true, + "kvm_pv_unhalt": true, + "invpcid": false, + "pdpe1gb": true, + "tsc-deadline": true, + "fma": true, + "cx16": true, + "de": true, + "enforce": false, + "stepping": 2, + "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": true, + "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": true, + "popcnt": true, + "xsaves": false, + "lm": true, + "umip": false, + "avx2": true, + "pse": true, + "sep": true, + "pclmuldq": true, + "nodeid-msr": false, + "kvm": true, + "misalignsse": true, + "min-xlevel": 2147483679, + "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": false, + "3dnow": false, + "erms": false, + "lahf-lm": true, + "lahf_lm": true, + "xstore": false, + "hv-synic": false, + "fxsr-opt": true, + "fxsr_opt": true, + "rtm": false, + "lmce": false, + "hv-time": false, + "perfctr-nb": false, + "perfctr_nb": false, + "ffxsr": true, + "rdrand": true, + "rdseed": true, + "avx512-4vnniw": false, + "vme": true, + "vmx": false, + "dtes64": false, + "mtrr": true, + "rdtscp": true, + "pse36": true, + "tbm": false, + "wdt": false, + "pause_filter": false, + "model-id": "AMD EPYC 7601 32-Core Processor ", + "sha-ni": true, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "model-expansion" +} diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.xml new file mode 100644 index 0000000000..f2df597b8a --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core.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='0x08400800' 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='0x00000007' 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='0x00000008' ebx='0x00000104' ecx='0x00000300' 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.14.1

From: Brijesh Singh <brijesh.singh@amd.com> Add a new CPU model called 'EPYC' to model processors from AMD EPYC family (which includes EPYC 76xx,75xx,74xx, 73xx and 72xx). The following features bits have been added/removed compare to Opteron_G5 Added: monitor, movbe, rdrand, mmxext, ffxsr, rdtscp, cr8legacy, osvw, fsgsbase, bmi1, avx2, smep, bmi2, rdseed, adx, smap, clfshopt, sha xsaveopt, xsavec, xgetbv1, arat Removed: xop, fma4, tbm The patch is depend on EPYC CPU model supported introduced in qemu [1] [1] https://patchwork.kernel.org/patch/9902205/ Cc: Tom Lendacky <Thomas.Lendacky@amd.com> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu/cpu_map.xml | 74 ++++++++++++++++++++++ .../x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 26 +------- .../x86_64-cpuid-EPYC-7601-32-Core-host.xml | 33 +--------- .../x86_64-cpuid-EPYC-7601-32-Core-json.xml | 26 +------- ...x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 26 +------- .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 33 +--------- .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml | 27 +------- 7 files changed, 83 insertions(+), 162 deletions(-) diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml index 8e7ac4973d..6243fbe902 100644 --- a/src/cpu/cpu_map.xml +++ b/src/cpu/cpu_map.xml @@ -260,6 +260,9 @@ <feature name='avx512cd'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x10000000'/> </feature> + <feature name='sha-ni'> + <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x20000000'/> + </feature> <feature name='avx512bw'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x40000000'/> </feature> @@ -1545,6 +1548,77 @@ <feature name='xop'/> <feature name='xsave'/> </model> + + <model name='EPYC'> + <signature family='23' model='1'/> + <vendor name='AMD'/> + <feature name='3dnowprefetch'/> + <feature name='abm'/> + <feature name='adx'/> + <feature name='aes'/> + <feature name='apic'/> + <feature name='arat'/> + <feature name='avx'/> + <feature name='avx2'/> + <feature name='bmi1'/> + <feature name='bmi2'/> + <feature name='clflush'/> + <feature name='clflushopt'/> + <feature name='cmov'/> + <feature name='cr8legacy'/> + <feature name='cx16'/> + <feature name='cx8'/> + <feature name='de'/> + <feature name='f16c'/> + <feature name='fma'/> + <feature name='fpu'/> + <feature name='fsgsbase'/> + <feature name='fxsr'/> + <feature name='fxsr_opt'/> + <feature name='lahf_lm'/> + <feature name='lm'/> + <feature name='mca'/> + <feature name='mce'/> + <feature name='misalignsse'/> + <feature name='mmx'/> + <feature name='mmxext'/> + <feature name='monitor'/> + <feature name='movbe'/> + <feature name='msr'/> + <feature name='mtrr'/> + <feature name='nx'/> + <feature name='osvw'/> + <feature name='pae'/> + <feature name='pat'/> + <feature name='pclmuldq'/> + <feature name='pdpe1gb'/> + <feature name='pge'/> + <feature name='pni'/> + <feature name='popcnt'/> + <feature name='pse'/> + <feature name='pse36'/> + <feature name='rdrand'/> + <feature name='rdseed'/> + <feature name='rdtscp'/> + <feature name='sep'/> + <feature name='sha-ni'/> + <feature name='smap'/> + <feature name='smep'/> + <feature name='sse'/> + <feature name='sse2'/> + <feature name='sse4.1'/> + <feature name='sse4.2'/> + <feature name='sse4a'/> + <feature name='ssse3'/> + <feature name='svm'/> + <feature name='syscall'/> + <feature name='tsc'/> + <feature name='vme'/> + <feature name='xgetbv1'/> + <feature name='xsave'/> + <feature name='xsavec'/> + <feature name='xsaveopt'/> + </model> </arch> <arch name='ppc64'> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml index fcad36e34e..18edb71bcd 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml @@ -1,32 +1,11 @@ <cpu mode='custom' match='exact'> - <model fallback='forbid'>Opteron_G5</model> + <model fallback='forbid'>EPYC</model> <vendor>AMD</vendor> - <feature policy='require' name='vme'/> <feature policy='require' name='ht'/> - <feature policy='require' name='monitor'/> - <feature policy='require' name='movbe'/> <feature policy='require' name='osxsave'/> - <feature policy='require' name='rdrand'/> - <feature policy='require' name='arat'/> - <feature policy='require' name='fsgsbase'/> - <feature policy='require' name='bmi1'/> - <feature policy='require' name='avx2'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='bmi2'/> - <feature policy='require' name='rdseed'/> - <feature policy='require' name='adx'/> - <feature policy='require' name='smap'/> - <feature policy='require' name='clflushopt'/> - <feature policy='require' name='xsaveopt'/> - <feature policy='require' name='xsavec'/> - <feature policy='require' name='xgetbv1'/> <feature policy='require' name='xsaves'/> - <feature policy='require' name='mmxext'/> - <feature policy='require' name='fxsr_opt'/> <feature policy='require' name='cmp_legacy'/> <feature policy='require' name='extapic'/> - <feature policy='require' name='cr8legacy'/> - <feature policy='require' name='osvw'/> <feature policy='require' name='skinit'/> <feature policy='require' name='wdt'/> <feature policy='require' name='tce'/> @@ -34,7 +13,4 @@ <feature policy='require' name='perfctr_core'/> <feature policy='require' name='perfctr_nb'/> <feature policy='require' name='invtsc'/> - <feature policy='disable' name='xop'/> - <feature policy='disable' name='fma4'/> - <feature policy='disable' name='tbm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml index 19f6b1d4df..54afdea4d4 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml @@ -1,43 +1,12 @@ <cpu> <arch>x86_64</arch> - <model>Opteron_G3</model> + <model>EPYC</model> <vendor>AMD</vendor> - <feature name='vme'/> <feature name='ht'/> - <feature name='pclmuldq'/> - <feature name='ssse3'/> - <feature name='fma'/> - <feature name='sse4.1'/> - <feature name='sse4.2'/> - <feature name='movbe'/> - <feature name='aes'/> - <feature name='xsave'/> <feature name='osxsave'/> - <feature name='avx'/> - <feature name='f16c'/> - <feature name='rdrand'/> - <feature name='arat'/> - <feature name='fsgsbase'/> - <feature name='bmi1'/> - <feature name='avx2'/> - <feature name='smep'/> - <feature name='bmi2'/> - <feature name='rdseed'/> - <feature name='adx'/> - <feature name='smap'/> - <feature name='clflushopt'/> - <feature name='xsaveopt'/> - <feature name='xsavec'/> - <feature name='xgetbv1'/> <feature name='xsaves'/> - <feature name='mmxext'/> - <feature name='fxsr_opt'/> - <feature name='pdpe1gb'/> <feature name='cmp_legacy'/> <feature name='extapic'/> - <feature name='cr8legacy'/> - <feature name='3dnowprefetch'/> - <feature name='osvw'/> <feature name='skinit'/> <feature name='wdt'/> <feature name='tce'/> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml index e8996cda66..7bf2d1b852 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-json.xml @@ -1,33 +1,11 @@ <cpu mode='custom' match='exact'> - <model fallback='forbid'>Opteron_G5</model> + <model fallback='forbid'>EPYC</model> <vendor>AMD</vendor> - <feature policy='require' name='vme'/> <feature policy='require' name='x2apic'/> - <feature policy='require' name='movbe'/> <feature policy='require' name='tsc-deadline'/> - <feature policy='require' name='rdrand'/> <feature policy='require' name='hypervisor'/> - <feature policy='require' name='arat'/> - <feature policy='require' name='fsgsbase'/> <feature policy='require' name='tsc_adjust'/> - <feature policy='require' name='bmi1'/> - <feature policy='require' name='avx2'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='bmi2'/> - <feature policy='require' name='rdseed'/> - <feature policy='require' name='adx'/> - <feature policy='require' name='smap'/> - <feature policy='require' name='clflushopt'/> - <feature policy='require' name='xsaveopt'/> - <feature policy='require' name='xsavec'/> - <feature policy='require' name='xgetbv1'/> - <feature policy='require' name='mmxext'/> - <feature policy='require' name='fxsr_opt'/> <feature policy='require' name='cmp_legacy'/> - <feature policy='require' name='cr8legacy'/> - <feature policy='require' name='osvw'/> + <feature policy='disable' name='monitor'/> <feature policy='disable' name='svm'/> - <feature policy='disable' name='xop'/> - <feature policy='disable' name='fma4'/> - <feature policy='disable' name='tbm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml index fcad36e34e..18edb71bcd 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml @@ -1,32 +1,11 @@ <cpu mode='custom' match='exact'> - <model fallback='forbid'>Opteron_G5</model> + <model fallback='forbid'>EPYC</model> <vendor>AMD</vendor> - <feature policy='require' name='vme'/> <feature policy='require' name='ht'/> - <feature policy='require' name='monitor'/> - <feature policy='require' name='movbe'/> <feature policy='require' name='osxsave'/> - <feature policy='require' name='rdrand'/> - <feature policy='require' name='arat'/> - <feature policy='require' name='fsgsbase'/> - <feature policy='require' name='bmi1'/> - <feature policy='require' name='avx2'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='bmi2'/> - <feature policy='require' name='rdseed'/> - <feature policy='require' name='adx'/> - <feature policy='require' name='smap'/> - <feature policy='require' name='clflushopt'/> - <feature policy='require' name='xsaveopt'/> - <feature policy='require' name='xsavec'/> - <feature policy='require' name='xgetbv1'/> <feature policy='require' name='xsaves'/> - <feature policy='require' name='mmxext'/> - <feature policy='require' name='fxsr_opt'/> <feature policy='require' name='cmp_legacy'/> <feature policy='require' name='extapic'/> - <feature policy='require' name='cr8legacy'/> - <feature policy='require' name='osvw'/> <feature policy='require' name='skinit'/> <feature policy='require' name='wdt'/> <feature policy='require' name='tce'/> @@ -34,7 +13,4 @@ <feature policy='require' name='perfctr_core'/> <feature policy='require' name='perfctr_nb'/> <feature policy='require' name='invtsc'/> - <feature policy='disable' name='xop'/> - <feature policy='disable' name='fma4'/> - <feature policy='disable' name='tbm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml index 19f6b1d4df..54afdea4d4 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml @@ -1,43 +1,12 @@ <cpu> <arch>x86_64</arch> - <model>Opteron_G3</model> + <model>EPYC</model> <vendor>AMD</vendor> - <feature name='vme'/> <feature name='ht'/> - <feature name='pclmuldq'/> - <feature name='ssse3'/> - <feature name='fma'/> - <feature name='sse4.1'/> - <feature name='sse4.2'/> - <feature name='movbe'/> - <feature name='aes'/> - <feature name='xsave'/> <feature name='osxsave'/> - <feature name='avx'/> - <feature name='f16c'/> - <feature name='rdrand'/> - <feature name='arat'/> - <feature name='fsgsbase'/> - <feature name='bmi1'/> - <feature name='avx2'/> - <feature name='smep'/> - <feature name='bmi2'/> - <feature name='rdseed'/> - <feature name='adx'/> - <feature name='smap'/> - <feature name='clflushopt'/> - <feature name='xsaveopt'/> - <feature name='xsavec'/> - <feature name='xgetbv1'/> <feature name='xsaves'/> - <feature name='mmxext'/> - <feature name='fxsr_opt'/> - <feature name='pdpe1gb'/> <feature name='cmp_legacy'/> <feature name='extapic'/> - <feature name='cr8legacy'/> - <feature name='3dnowprefetch'/> - <feature name='osvw'/> <feature name='skinit'/> <feature name='wdt'/> <feature name='tce'/> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml index 2773147da6..32064548c7 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-json.xml @@ -1,32 +1,11 @@ <cpu mode='custom' match='exact'> - <model fallback='forbid'>Opteron_G5</model> + <model fallback='forbid'>EPYC</model> <vendor>AMD</vendor> - <feature policy='require' name='vme'/> <feature policy='require' name='x2apic'/> - <feature policy='require' name='movbe'/> <feature policy='require' name='tsc-deadline'/> - <feature policy='require' name='rdrand'/> <feature policy='require' name='hypervisor'/> - <feature policy='require' name='arat'/> - <feature policy='require' name='fsgsbase'/> <feature policy='require' name='tsc_adjust'/> - <feature policy='require' name='bmi1'/> - <feature policy='require' name='avx2'/> - <feature policy='require' name='smep'/> - <feature policy='require' name='bmi2'/> - <feature policy='require' name='rdseed'/> - <feature policy='require' name='adx'/> - <feature policy='require' name='smap'/> - <feature policy='require' name='clflushopt'/> - <feature policy='require' name='xsaveopt'/> - <feature policy='require' name='xsavec'/> - <feature policy='require' name='xgetbv1'/> - <feature policy='require' name='mmxext'/> - <feature policy='require' name='fxsr_opt'/> <feature policy='require' name='cmp_legacy'/> - <feature policy='require' name='cr8legacy'/> - <feature policy='require' name='osvw'/> - <feature policy='disable' name='xop'/> - <feature policy='disable' name='fma4'/> - <feature policy='disable' name='tbm'/> + <feature policy='disable' name='monitor'/> + <feature policy='disable' name='sha-ni'/> </cpu> -- 2.14.1

On Thu, Sep 07, 2017 at 01:27:46PM +0200, Jiri Denemark wrote:
Brijesh Singh (1): cpu: Add new EPYC CPU model
Jiri Denemark (2): tests: Add CPUID data for AMD Ryzen 7 1800X Eight-Core Processor tests: Add CPUID data for AMD EPYC 7601 32-Core Processor
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
participants (2)
-
Jiri Denemark
-
Pavel Hrdina