The stepping range (10-11) is likely incomplete. QEMU uses 10 and the CPUID data for Cooperlake show 11. We will update the range if needed once more details about he CPU are available. Signed-off-by: Jiri Denemark <jdenemar@xxxxxxxxxx> --- src/cpu_map/index.xml | 1 + src/cpu_map/x86_Cooperlake.xml | 90 +++++++++++++++++++ .../x86_64-cpuid-Cooperlake-guest.xml | 13 +-- .../x86_64-cpuid-Cooperlake-host.xml | 13 +-- .../x86_64-cpuid-Cooperlake-json.xml | 13 +-- .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 1 + .../domaincapsdata/qemu_5.1.0-q35.x86_64.xml | 1 + .../domaincapsdata/qemu_5.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.1.0.x86_64.xml | 1 + 11 files changed, 103 insertions(+), 33 deletions(-) create mode 100644 src/cpu_map/x86_Cooperlake.xml diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml index 20646a031c..1486a29c65 100644 --- a/src/cpu_map/index.xml +++ b/src/cpu_map/index.xml @@ -54,6 +54,7 @@ <include filename="x86_Icelake-Client-noTSX.xml"/> <include filename="x86_Icelake-Server.xml"/> <include filename="x86_Icelake-Server-noTSX.xml"/> + <include filename="x86_Cooperlake.xml"/> <!-- AMD CPUs --> <include filename="x86_athlon.xml"/> diff --git a/src/cpu_map/x86_Cooperlake.xml b/src/cpu_map/x86_Cooperlake.xml new file mode 100644 index 0000000000..41bd210638 --- /dev/null +++ b/src/cpu_map/x86_Cooperlake.xml @@ -0,0 +1,90 @@ +<cpus> + <model name='Cooperlake'> + <decode host='on' guest='on'/> + <signature family='6' model='85' stepping='10-11'/> <!-- 05065b --> + <vendor name='Intel'/> + <feature name="3dnowprefetch"/> + <feature name="abm"/> + <feature name="adx"/> + <feature name="aes"/> + <feature name="apic"/> + <feature name="arat"/> + <feature name="arch-capabilities"/> + <feature name="avx"/> + <feature name="avx2"/> + <feature name="avx512-bf16"/> + <feature name="avx512bw"/> + <feature name="avx512cd"/> + <feature name="avx512dq"/> + <feature name="avx512f"/> + <feature name="avx512vl"/> + <feature name="avx512vnni"/> + <feature name="bmi1"/> + <feature name="bmi2"/> + <feature name="clflush"/> + <feature name="clflushopt"/> + <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="ibrs-all"/> + <feature name="invpcid"/> + <feature name="lahf_lm"/> + <feature name="lm"/> + <feature name="mca"/> + <feature name="mce"/> + <feature name="mds-no"/> + <feature name="mmx"/> + <feature name="movbe"/> + <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="pku"/> + <feature name="pni"/> + <feature name="popcnt"/> + <feature name="pschange-mc-no"/> + <feature name="pse"/> + <feature name="pse36"/> + <feature name="rdctl-no"/> + <feature name="rdrand"/> + <feature name="rdseed"/> + <feature name="rdtscp"/> + <feature name="rtm"/> + <feature name="sep"/> + <feature name="skip-l1dfl-vmentry"/> + <feature name="smap"/> + <feature name="smep"/> + <feature name="spec-ctrl"/> + <feature name="ssbd"/> + <feature name="sse"/> + <feature name="sse2"/> + <feature name="sse4.1"/> + <feature name="sse4.2"/> + <feature name="ssse3"/> + <feature name="stibp"/> + <feature name="syscall"/> + <feature name="taa-no"/> + <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> +</cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml index db5598740c..f169458399 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml @@ -1,5 +1,5 @@ <cpu mode='custom' match='exact'> - <model fallback='forbid'>Cascadelake-Server</model> + <model fallback='forbid'>Cooperlake</model> <vendor>Intel</vendor> <feature policy='require' name='ds'/> <feature policy='require' name='acpi'/> @@ -20,22 +20,13 @@ <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> <feature policy='require' name='cmt'/> + <feature policy='require' name='mpx'/> <feature policy='require' name='intel-pt'/> - <feature policy='require' name='pku'/> <feature policy='require' name='ospke'/> <feature policy='require' name='md-clear'/> - <feature policy='require' name='stibp'/> - <feature policy='require' name='arch-capabilities'/> - <feature policy='require' name='avx512-bf16'/> <feature policy='require' name='xsaves'/> <feature policy='require' name='mbm_total'/> <feature policy='require' name='mbm_local'/> <feature policy='require' name='invtsc'/> - <feature policy='require' name='rdctl-no'/> - <feature policy='require' name='ibrs-all'/> - <feature policy='require' name='skip-l1dfl-vmentry'/> - <feature policy='require' name='mds-no'/> - <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='tsx-ctrl'/> - <feature policy='require' name='taa-no'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml index 6926b7c975..b0777181bb 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml @@ -1,6 +1,6 @@ <cpu> <arch>x86_64</arch> - <model>Cascadelake-Server</model> + <model>Cooperlake</model> <vendor>Intel</vendor> <feature name='ds'/> <feature name='acpi'/> @@ -21,22 +21,13 @@ <feature name='osxsave'/> <feature name='tsc_adjust'/> <feature name='cmt'/> + <feature name='mpx'/> <feature name='intel-pt'/> - <feature name='pku'/> <feature name='ospke'/> <feature name='md-clear'/> - <feature name='stibp'/> - <feature name='arch-capabilities'/> - <feature name='avx512-bf16'/> <feature name='xsaves'/> <feature name='mbm_total'/> <feature name='mbm_local'/> <feature name='invtsc'/> - <feature name='rdctl-no'/> - <feature name='ibrs-all'/> - <feature name='skip-l1dfl-vmentry'/> - <feature name='mds-no'/> - <feature name='pschange-mc-no'/> <feature name='tsx-ctrl'/> - <feature name='taa-no'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index fc52805b2f..fb319d547c 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -1,24 +1,15 @@ <cpu mode='custom' match='exact'> - <model fallback='forbid'>Cascadelake-Server</model> + <model fallback='forbid'>Cooperlake</model> <vendor>Intel</vendor> <feature policy='require' name='ss'/> <feature policy='require' name='vmx'/> <feature policy='require' name='hypervisor'/> <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='mpx'/> <feature policy='require' name='umip'/> - <feature policy='require' name='pku'/> <feature policy='require' name='md-clear'/> - <feature policy='require' name='stibp'/> - <feature policy='require' name='arch-capabilities'/> - <feature policy='require' name='avx512-bf16'/> <feature policy='require' name='xsaves'/> <feature policy='require' name='ibpb'/> <feature policy='require' name='amd-ssbd'/> - <feature policy='require' name='rdctl-no'/> - <feature policy='require' name='ibrs-all'/> - <feature policy='require' name='skip-l1dfl-vmentry'/> - <feature policy='require' name='mds-no'/> - <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='tsx-ctrl'/> - <feature policy='require' name='taa-no'/> </cpu> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index ff721530cd..fa945fc002 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -93,6 +93,7 @@ <model usable='no'>EPYC-IBPB</model> <model usable='no'>EPYC</model> <model usable='no'>Dhyana</model> + <model usable='no'>Cooperlake</model> <model usable='yes'>Conroe</model> <model usable='no'>Cascadelake-Server-noTSX</model> <model usable='no'>Cascadelake-Server</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml index d567863f49..a0eeed7c2d 100644 --- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml @@ -101,6 +101,7 @@ <model usable='no'>EPYC-IBPB</model> <model usable='no'>EPYC</model> <model usable='no'>Dhyana</model> + <model usable='no'>Cooperlake</model> <model usable='yes'>Conroe</model> <model usable='no'>Cascadelake-Server-noTSX</model> <model usable='no'>Cascadelake-Server</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index 2c6066003d..fbde7a6ba2 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -92,6 +92,7 @@ <model usable='no'>EPYC-IBPB</model> <model usable='no'>EPYC</model> <model usable='no'>Dhyana</model> + <model usable='no'>Cooperlake</model> <model usable='yes'>Conroe</model> <model usable='no'>Cascadelake-Server-noTSX</model> <model usable='no'>Cascadelake-Server</model> diff --git a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml index 9e484ccfd0..e152f7dec5 100644 --- a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml @@ -100,6 +100,7 @@ <model usable='yes'>EPYC-IBPB</model> <model usable='yes'>EPYC</model> <model usable='yes'>Dhyana</model> + <model usable='no'>Cooperlake</model> <model usable='yes'>Conroe</model> <model usable='no'>Cascadelake-Server-noTSX</model> <model usable='no'>Cascadelake-Server</model> diff --git a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml index d567863f49..a0eeed7c2d 100644 --- a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml @@ -101,6 +101,7 @@ <model usable='no'>EPYC-IBPB</model> <model usable='no'>EPYC</model> <model usable='no'>Dhyana</model> + <model usable='no'>Cooperlake</model> <model usable='yes'>Conroe</model> <model usable='no'>Cascadelake-Server-noTSX</model> <model usable='no'>Cascadelake-Server</model> diff --git a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml index b48cb45412..bc842730a0 100644 --- a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml @@ -99,6 +99,7 @@ <model usable='yes'>EPYC-IBPB</model> <model usable='yes'>EPYC</model> <model usable='yes'>Dhyana</model> + <model usable='no'>Cooperlake</model> <model usable='yes'>Conroe</model> <model usable='no'>Cascadelake-Server-noTSX</model> <model usable='no'>Cascadelake-Server</model> -- 2.26.2