[libvirt] [PATCH 0/3] cpu: Add new Skylake-Server CPU model

Jiri Denemark (3): tests: Add CPUID data for Intel(R) Xeon(R) Gold 6148 CPU cpu: Add clwb/pcommit CPU features cpu: Add new Skylake-Server CPU model src/cpu/cpu_map.xml | 81 +++++++ tests/cputest.c | 1 + .../x86_64-cpuid-Xeon-Gold-6148-disabled.xml | 7 + .../x86_64-cpuid-Xeon-Gold-6148-enabled.xml | 9 + .../x86_64-cpuid-Xeon-Gold-6148-guest.xml | 29 +++ .../x86_64-cpuid-Xeon-Gold-6148-host.xml | 30 +++ .../x86_64-cpuid-Xeon-Gold-6148-json.xml | 8 + tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json | 235 +++++++++++++++++++++ tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml | 54 +++++ .../domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml | 2 + 10 files changed, 456 insertions(+) create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-disabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-enabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml -- 2.14.1

Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- tests/cputest.c | 1 + .../x86_64-cpuid-Xeon-Gold-6148-disabled.xml | 7 + .../x86_64-cpuid-Xeon-Gold-6148-enabled.xml | 9 + .../x86_64-cpuid-Xeon-Gold-6148-guest.xml | 35 +++ .../x86_64-cpuid-Xeon-Gold-6148-host.xml | 36 ++++ .../x86_64-cpuid-Xeon-Gold-6148-json.xml | 14 ++ tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json | 235 +++++++++++++++++++++ tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml | 54 +++++ 8 files changed, 391 insertions(+) create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-disabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-enabled.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json create mode 100644 tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml diff --git a/tests/cputest.c b/tests/cputest.c index 69621ace2a..d325b5315c 100644 --- a/tests/cputest.c +++ b/tests/cputest.c @@ -1009,6 +1009,7 @@ mymain(void) DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E5-2650", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-4820", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E7-8890", false); + DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-Gold-6148", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-W3520", true); DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-X5460", false); diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-disabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-disabled.xml new file mode 100644 index 0000000000..f11079772b --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-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='0x0804c1fc' edx='0xb0600000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x00001000' ecx='0x00000008' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' 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-Gold-6148-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-enabled.xml new file mode 100644 index 0000000000..431e4ed563 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-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='0xd19f4fbb' 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='0x00000121' edx='0x2c100800'/> +</cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml new file mode 100644 index 0000000000..705caf6030 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml @@ -0,0 +1,35 @@ +<cpu mode='custom' match='exact'> + <model fallback='forbid'>Skylake-Client</model> + <vendor>Intel</vendor> + <feature policy='require' name='ds'/> + <feature policy='require' name='acpi'/> + <feature policy='require' name='ss'/> + <feature policy='require' name='ht'/> + <feature policy='require' name='tm'/> + <feature policy='require' name='pbe'/> + <feature policy='require' name='dtes64'/> + <feature policy='require' name='monitor'/> + <feature policy='require' name='ds_cpl'/> + <feature policy='require' name='vmx'/> + <feature policy='require' name='smx'/> + <feature policy='require' name='est'/> + <feature policy='require' name='tm2'/> + <feature policy='require' name='xtpr'/> + <feature policy='require' name='pdcm'/> + <feature policy='require' name='dca'/> + <feature policy='require' name='osxsave'/> + <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='cmt'/> + <feature policy='require' name='avx512f'/> + <feature policy='require' name='avx512dq'/> + <feature policy='require' name='clflushopt'/> + <feature policy='require' name='avx512cd'/> + <feature policy='require' name='avx512bw'/> + <feature policy='require' name='avx512vl'/> + <feature policy='require' name='pku'/> + <feature policy='require' name='xsaves'/> + <feature policy='require' name='mbm_total'/> + <feature policy='require' name='mbm_local'/> + <feature policy='require' name='pdpe1gb'/> + <feature policy='require' name='invtsc'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml new file mode 100644 index 0000000000..114b03e0e1 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml @@ -0,0 +1,36 @@ +<cpu> + <arch>x86_64</arch> + <model>Skylake-Client</model> + <vendor>Intel</vendor> + <feature name='ds'/> + <feature name='acpi'/> + <feature name='ss'/> + <feature name='ht'/> + <feature name='tm'/> + <feature name='pbe'/> + <feature name='dtes64'/> + <feature name='monitor'/> + <feature name='ds_cpl'/> + <feature name='vmx'/> + <feature name='smx'/> + <feature name='est'/> + <feature name='tm2'/> + <feature name='xtpr'/> + <feature name='pdcm'/> + <feature name='dca'/> + <feature name='osxsave'/> + <feature name='tsc_adjust'/> + <feature name='cmt'/> + <feature name='avx512f'/> + <feature name='avx512dq'/> + <feature name='clflushopt'/> + <feature name='avx512cd'/> + <feature name='avx512bw'/> + <feature name='avx512vl'/> + <feature name='pku'/> + <feature name='xsaves'/> + <feature name='mbm_total'/> + <feature name='mbm_local'/> + <feature name='pdpe1gb'/> + <feature name='invtsc'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml new file mode 100644 index 0000000000..c5ff67af96 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml @@ -0,0 +1,14 @@ +<cpu mode='custom' match='exact'> + <model fallback='forbid'>Skylake-Client</model> + <vendor>Intel</vendor> + <feature policy='require' name='ss'/> + <feature policy='require' name='hypervisor'/> + <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='avx512f'/> + <feature policy='require' name='avx512dq'/> + <feature policy='require' name='clflushopt'/> + <feature policy='require' name='avx512cd'/> + <feature policy='require' name='avx512bw'/> + <feature policy='require' name='avx512vl'/> + <feature policy='require' name='pdpe1gb'/> +</cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json new file mode 100644 index 0000000000..b0ce491bf5 --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.json @@ -0,0 +1,235 @@ +{ + "return": { + "model": { + "name": "base", + "props": { + "phys-bits": 0, + "core-id": -1, + "xlevel": 2147483656, + "cmov": true, + "ia64": false, + "aes": true, + "mmx": true, + "arat": true, + "rdpid": false, + "pause-filter": false, + "xsavec": true, + "osxsave": false, + "tsc-frequency": 0, + "xd": true, + "hv-vendor-id": "", + "kvm-asyncpf": true, + "kvm_asyncpf": true, + "perfctr_core": false, + "perfctr-core": false, + "mpx": true, + "avx512cd": true, + "decodeassists": false, + "pbe": false, + "sse4_1": true, + "sse4.1": true, + "sse4-1": true, + "family": 6, + "vmware-cpuid-freq": true, + "avx512f": true, + "xcrypt": 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": true, + "extapic": false, + "3dnowprefetch": true, + "cr8legacy": false, + "cpuid-0xb": true, + "xcrypt-en": false, + "kvm_pv_eoi": true, + "apic-id": 4294967295, + "pn": false, + "dca": false, + "vendor": "GenuineIntel", + "pku": false, + "smx": false, + "cmp-legacy": false, + "cmp_legacy": false, + "avx512-4fmaps": false, + "vmcb-clean": false, + "vmcb_clean": false, + "3dnowext": false, + "hle": true, + "npt": false, + "memory": "/machine/unattached/system[0]", + "clwb": true, + "lbrv": false, + "adx": true, + "ss": true, + "pni": true, + "svm_lock": false, + "svm-lock": false, + "smep": true, + "pfthreshold": false, + "smap": true, + "x2apic": true, + "avx512vbmi": 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": true, + "svm": false, + "full-cpuid-auto-level": true, + "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": 85, + "movbe": true, + "nrip-save": false, + "nrip_save": false, + "sse4a": false, + "ssse3": true, + "kvm_pv_unhalt": true, + "invpcid": true, + "pdpe1gb": true, + "tsc-deadline": true, + "fma": true, + "cx16": true, + "de": true, + "enforce": false, + "stepping": 4, + "xsave": true, + "clflush": true, + "skinit": false, + "tce": false, + "tsc": true, + "fpu": true, + "ds-cpl": false, + "ds_cpl": false, + "ibs": false, + "host-phys-bits": true, + "fma4": false, + "la57": false, + "osvw": false, + "check": true, + "hv-spinlocks": -1, + "pmm": false, + "apic": true, + "pmu": false, + "min-xlevel2": 0, + "tsc-adjust": true, + "tsc_adjust": true, + "kvm-steal-time": true, + "kvm_steal_time": true, + "kvmclock": true, + "l3-cache": true, + "lwp": false, + "xop": false, + "avx": true, + "ospke": false, + "ace2": false, + "acpi": false, + "avx512bw": true, + "hv-vapic": false, + "fsgsbase": true, + "ht": false, + "nx": true, + "pclmulqdq": true, + "mmxext": false, + "popcnt": true, + "xsaves": false, + "lm": true, + "umip": false, + "avx2": true, + "pse": true, + "sep": true, + "pclmuldq": true, + "nodeid-msr": false, + "kvm": true, + "misalignsse": false, + "min-xlevel": 2147483656, + "bmi2": true, + "bmi1": true, + "kvm-pv-unhalt": true, + "realized": false, + "tsc-scale": false, + "tsc_scale": false, + "topoext": false, + "xlevel2": 0, + "clflushopt": true, + "kvm-no-smi-migration": false, + "monitor": false, + "avx512er": false, + "pmm-en": false, + "pcid": true, + "3dnow": false, + "erms": true, + "lahf-lm": true, + "lahf_lm": true, + "xstore": false, + "fxsr-opt": false, + "fxsr_opt": false, + "rtm": true, + "lmce": false, + "hv-time": false, + "perfctr-nb": false, + "perfctr_nb": false, + "ffxsr": false, + "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": "Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz", + "sha-ni": false, + "abm": true, + "avx512pf": false, + "xstore-en": false + } + } + }, + "id": "model-expansion" +} diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml new file mode 100644 index 0000000000..6e2844ad0d --- /dev/null +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148.xml @@ -0,0 +1,54 @@ +<!-- Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz --> +<cpudata arch='x86'> + <cpuid eax_in='0x00000000' ecx_in='0x00' eax='0x00000016' ebx='0x756e6547' ecx='0x6c65746e' edx='0x49656e69'/> + <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00050654' ebx='0x45400800' ecx='0x7ffefbff' edx='0xbfebfbff'/> + <cpuid eax_in='0x00000002' ecx_in='0x00' eax='0x76036301' ebx='0x00f0b5ff' ecx='0x00000000' edx='0x00c30000'/> + <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'/> + <cpuid eax_in='0x00000004' ecx_in='0x01' eax='0x7c004122' ebx='0x01c0003f' ecx='0x0000003f' edx='0x00000000'/> + <cpuid eax_in='0x00000004' ecx_in='0x02' eax='0x7c004143' ebx='0x03c0003f' ecx='0x000003ff' edx='0x00000000'/> + <cpuid eax_in='0x00000004' ecx_in='0x03' eax='0x7c0fc163' ebx='0x0280003f' ecx='0x00009fff' edx='0x00000004'/> + <cpuid eax_in='0x00000005' ecx_in='0x00' eax='0x00000040' ebx='0x00000040' ecx='0x00000003' edx='0x00002020'/> + <cpuid eax_in='0x00000006' ecx_in='0x00' eax='0x00000af7' ebx='0x00000002' ecx='0x00000009' edx='0x00000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0xd39ffffb' ecx='0x00000008' 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='0x07300404' ebx='0x00000000' ecx='0x00000000' edx='0x00000603'/> + <cpuid eax_in='0x0000000b' ecx_in='0x00' eax='0x00000001' ebx='0x00000002' ecx='0x00000100' edx='0x00000045'/> + <cpuid eax_in='0x0000000b' ecx_in='0x01' eax='0x00000006' ebx='0x00000028' ecx='0x00000201' edx='0x00000045'/> + <cpuid eax_in='0x0000000c' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x00' eax='0x000002ff' ebx='0x00000a80' ecx='0x00000a88' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000a00' ecx='0x00000100' 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='0x00000040' ebx='0x000003c0' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x04' eax='0x00000040' ebx='0x00000400' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x05' eax='0x00000040' ebx='0x00000440' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x06' eax='0x00000200' ebx='0x00000480' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x07' eax='0x00000400' ebx='0x00000680' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x08' eax='0x00000080' ebx='0x00000000' ecx='0x00000001' edx='0x00000000'/> + <cpuid eax_in='0x0000000d' ecx_in='0x09' eax='0x00000008' ebx='0x00000a80' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000e' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x0000000f' ecx_in='0x00' eax='0x00000000' ebx='0x0000009f' ecx='0x00000000' edx='0x00000002'/> + <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00014000' ecx='0x0000009f' edx='0x00000007'/> + <cpuid eax_in='0x00000010' ecx_in='0x00' eax='0x00000000' ebx='0x0000000a' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000010' ecx_in='0x01' eax='0x0000000a' ebx='0x00000600' ecx='0x00000004' edx='0x0000000f'/> + <cpuid eax_in='0x00000010' ecx_in='0x03' eax='0x00000059' ebx='0x00000000' ecx='0x00000004' edx='0x00000007'/> + <cpuid eax_in='0x00000011' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000012' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000013' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000014' ecx_in='0x00' eax='0x00000001' ebx='0x0000000f' ecx='0x00000007' edx='0x00000000'/> + <cpuid eax_in='0x00000014' ecx_in='0x01' eax='0x02490002' ebx='0x003f3fff' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000015' ecx_in='0x00' eax='0x00000002' ebx='0x000000c0' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000016' ecx_in='0x00' eax='0x00000960' ebx='0x00000e74' ecx='0x00000064' edx='0x00000000'/> + <cpuid eax_in='0x80000000' ecx_in='0x00' eax='0x80000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/> + <cpuid eax_in='0x80000002' ecx_in='0x00' eax='0x65746e49' ebx='0x2952286c' ecx='0x6f655820' edx='0x2952286e'/> + <cpuid eax_in='0x80000003' ecx_in='0x00' eax='0x6c6f4720' ebx='0x31362064' ecx='0x43203834' edx='0x40205550'/> + <cpuid eax_in='0x80000004' ecx_in='0x00' eax='0x342e3220' ebx='0x7a484730' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x80000005' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x80000006' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01006040' edx='0x00000000'/> + <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> + <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x0000302e' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x80860000' ecx_in='0x00' eax='0x00000960' ebx='0x00000e74' ecx='0x00000064' edx='0x00000000'/> + <cpuid eax_in='0xc0000000' ecx_in='0x00' eax='0x00000960' ebx='0x00000e74' ecx='0x00000064' edx='0x00000000'/> +</cpudata> -- 2.14.1

The features were added to QEMU by commit v2.4.0-1690-gf7fda28094 as Skylake Server features. Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu/cpu_map.xml | 6 ++++++ tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml | 1 + tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml | 1 + tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml | 2 ++ 5 files changed, 11 insertions(+) diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml index 6243fbe902..c1aee0abc9 100644 --- a/src/cpu/cpu_map.xml +++ b/src/cpu/cpu_map.xml @@ -248,9 +248,15 @@ <feature name='avx512ifma'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00200000'/> </feature> + <feature name='pcommit'> + <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00400000'/> + </feature> <feature name='clflushopt'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00800000'/> </feature> + <feature name='clwb'> + <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x01000000'/> + </feature> <feature name='avx512pf'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x04000000'/> </feature> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml index 705caf6030..874f77105d 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml @@ -23,6 +23,7 @@ <feature policy='require' name='avx512f'/> <feature policy='require' name='avx512dq'/> <feature policy='require' name='clflushopt'/> + <feature policy='require' name='clwb'/> <feature policy='require' name='avx512cd'/> <feature policy='require' name='avx512bw'/> <feature policy='require' name='avx512vl'/> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml index 114b03e0e1..0d14e88891 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml @@ -24,6 +24,7 @@ <feature name='avx512f'/> <feature name='avx512dq'/> <feature name='clflushopt'/> + <feature name='clwb'/> <feature name='avx512cd'/> <feature name='avx512bw'/> <feature name='avx512vl'/> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml index c5ff67af96..f10a7dec20 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml @@ -7,6 +7,7 @@ <feature policy='require' name='avx512f'/> <feature policy='require' name='avx512dq'/> <feature policy='require' name='clflushopt'/> + <feature policy='require' name='clwb'/> <feature policy='require' name='avx512cd'/> <feature policy='require' name='avx512bw'/> <feature policy='require' name='avx512vl'/> diff --git a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml index af606493aa..7ff998907d 100644 --- a/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml +++ b/tests/domaincapsschemadata/qemu_2.9.0-tcg.x86_64.xml @@ -38,7 +38,9 @@ <feature policy='require' name='mpx'/> <feature policy='require' name='adx'/> <feature policy='require' name='smap'/> + <feature policy='require' name='pcommit'/> <feature policy='require' name='clflushopt'/> + <feature policy='require' name='clwb'/> <feature policy='require' name='pku'/> <feature policy='require' name='ospke'/> <feature policy='require' name='xsaveopt'/> -- 2.14.1

Available since QEMU 2.10.0 (specifically commit v2.9.0-2233-g53f9a6f45f). Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu/cpu_map.xml | 75 ++++++++++++++++++++++ .../x86_64-cpuid-Xeon-Gold-6148-guest.xml | 9 +-- .../x86_64-cpuid-Xeon-Gold-6148-host.xml | 9 +-- .../x86_64-cpuid-Xeon-Gold-6148-json.xml | 9 +-- 4 files changed, 78 insertions(+), 24 deletions(-) diff --git a/src/cpu/cpu_map.xml b/src/cpu/cpu_map.xml index c1aee0abc9..96f4ce60dd 100644 --- a/src/cpu/cpu_map.xml +++ b/src/cpu/cpu_map.xml @@ -1288,6 +1288,81 @@ <feature name='xsaveopt'/> </model> + <model name='Skylake-Server'> + <signature family='6' model='85'/> + <vendor name='Intel'/> + <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='avx512bw'/> + <feature name='avx512cd'/> + <feature name='avx512dq'/> + <feature name='avx512f'/> + <feature name='avx512vl'/> + <feature name='bmi1'/> + <feature name='bmi2'/> + <feature name='clflush'/> + <feature name='clwb'/> + <feature name='cmov'/> + <feature name='cx16'/> + <feature name='cx8'/> + <feature name='de'/> + <feature name='erms'/> + <feature name='f16c'/> + <feature name='fma'/> + <feature name='fpu'/> + <feature name='fsgsbase'/> + <feature name='fxsr'/> + <feature name='hle'/> + <feature name='invpcid'/> + <feature name='lahf_lm'/> + <feature name='lm'/> + <feature name='mca'/> + <feature name='mce'/> + <feature name='mmx'/> + <feature name='movbe'/> + <feature name='mpx'/> + <feature name='msr'/> + <feature name='mtrr'/> + <feature name='nx'/> + <feature name='pae'/> + <feature name='pat'/> + <feature name='pcid'/> + <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='rtm'/> + <feature name='sep'/> + <feature name='smap'/> + <feature name='smep'/> + <feature name='sse'/> + <feature name='sse2'/> + <feature name='sse4.1'/> + <feature name='sse4.2'/> + <feature name='ssse3'/> + <feature name='syscall'/> + <feature name='tsc'/> + <feature name='tsc-deadline'/> + <feature name='vme'/> + <feature name='x2apic'/> + <feature name='xgetbv1'/> + <feature name='xsave'/> + <feature name='xsavec'/> + <feature name='xsaveopt'/> + </model> + <!-- AMD CPUs --> <model name='athlon'> <vendor name='AMD'/> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml index 874f77105d..f72bcea68b 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-guest.xml @@ -1,5 +1,5 @@ <cpu mode='custom' match='exact'> - <model fallback='forbid'>Skylake-Client</model> + <model fallback='forbid'>Skylake-Server</model> <vendor>Intel</vendor> <feature policy='require' name='ds'/> <feature policy='require' name='acpi'/> @@ -20,17 +20,10 @@ <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> <feature policy='require' name='cmt'/> - <feature policy='require' name='avx512f'/> - <feature policy='require' name='avx512dq'/> <feature policy='require' name='clflushopt'/> - <feature policy='require' name='clwb'/> - <feature policy='require' name='avx512cd'/> - <feature policy='require' name='avx512bw'/> - <feature policy='require' name='avx512vl'/> <feature policy='require' name='pku'/> <feature policy='require' name='xsaves'/> <feature policy='require' name='mbm_total'/> <feature policy='require' name='mbm_local'/> - <feature policy='require' name='pdpe1gb'/> <feature policy='require' name='invtsc'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml index 0d14e88891..1a68e35c19 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-host.xml @@ -1,6 +1,6 @@ <cpu> <arch>x86_64</arch> - <model>Skylake-Client</model> + <model>Skylake-Server</model> <vendor>Intel</vendor> <feature name='ds'/> <feature name='acpi'/> @@ -21,17 +21,10 @@ <feature name='osxsave'/> <feature name='tsc_adjust'/> <feature name='cmt'/> - <feature name='avx512f'/> - <feature name='avx512dq'/> <feature name='clflushopt'/> - <feature name='clwb'/> - <feature name='avx512cd'/> - <feature name='avx512bw'/> - <feature name='avx512vl'/> <feature name='pku'/> <feature name='xsaves'/> <feature name='mbm_total'/> <feature name='mbm_local'/> - <feature name='pdpe1gb'/> <feature name='invtsc'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml index f10a7dec20..1dfad4a0cb 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Gold-6148-json.xml @@ -1,15 +1,8 @@ <cpu mode='custom' match='exact'> - <model fallback='forbid'>Skylake-Client</model> + <model fallback='forbid'>Skylake-Server</model> <vendor>Intel</vendor> <feature policy='require' name='ss'/> <feature policy='require' name='hypervisor'/> <feature policy='require' name='tsc_adjust'/> - <feature policy='require' name='avx512f'/> - <feature policy='require' name='avx512dq'/> <feature policy='require' name='clflushopt'/> - <feature policy='require' name='clwb'/> - <feature policy='require' name='avx512cd'/> - <feature policy='require' name='avx512bw'/> - <feature policy='require' name='avx512vl'/> - <feature policy='require' name='pdpe1gb'/> </cpu> -- 2.14.1
participants (2)
-
Jiri Denemark
-
Pavel Hrdina