a41c76
From 1c8af21807f2cdaaa24651808f6dfeebfbcf75bb Mon Sep 17 00:00:00 2001
a41c76
Message-Id: <1c8af21807f2cdaaa24651808f6dfeebfbcf75bb@dist-git>
a41c76
From: Jiri Denemark <jdenemar@redhat.com>
a41c76
Date: Tue, 26 May 2020 10:59:40 +0200
a41c76
Subject: [PATCH] cpu_map: Add Cooperlake x86 CPU model
a41c76
MIME-Version: 1.0
a41c76
Content-Type: text/plain; charset=UTF-8
a41c76
Content-Transfer-Encoding: 8bit
a41c76
a41c76
The stepping range (10-11) is likely incomplete. QEMU uses 10 and the
a41c76
CPUID data for Cooperlake show 11. We will update the range if needed
a41c76
once more details about he CPU are available.
a41c76
a41c76
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a41c76
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
a41c76
(cherry picked from commit 3944f6855b9d4df73754bb6e5c8023d77399879b)
a41c76
a41c76
https://bugzilla.redhat.com/show_bug.cgi?id=1781878
a41c76
a41c76
Conflicts:
a41c76
	tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
a41c76
	tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
a41c76
	tests/domaincapsdata/qemu_5.1.0.x86_64.xml
a41c76
            - test data files do not exist downstream
a41c76
a41c76
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
a41c76
Message-Id: <62f2fa3e2ecab2026c41e93430b4e2b695c674f0.1590483392.git.jdenemar@redhat.com>
a41c76
Reviewed-by: Ján Tomko <jtomko@redhat.com>
a41c76
---
a41c76
 src/cpu_map/index.xml                         |  1 +
a41c76
 src/cpu_map/x86_Cooperlake.xml                | 90 +++++++++++++++++++
a41c76
 .../x86_64-cpuid-Cooperlake-guest.xml         | 13 +--
a41c76
 .../x86_64-cpuid-Cooperlake-host.xml          | 13 +--
a41c76
 .../x86_64-cpuid-Cooperlake-json.xml          | 13 +--
a41c76
 .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml  |  1 +
a41c76
 .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml  |  1 +
a41c76
 tests/domaincapsdata/qemu_5.0.0.x86_64.xml    |  1 +
a41c76
 8 files changed, 100 insertions(+), 33 deletions(-)
a41c76
 create mode 100644 src/cpu_map/x86_Cooperlake.xml
a41c76
a41c76
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
a41c76
index 50b030de29..ff1da2e677 100644
a41c76
--- a/src/cpu_map/index.xml
a41c76
+++ b/src/cpu_map/index.xml
a41c76
@@ -54,6 +54,7 @@
a41c76
     <include filename="x86_Icelake-Client-noTSX.xml"/>
a41c76
     <include filename="x86_Icelake-Server.xml"/>
a41c76
     <include filename="x86_Icelake-Server-noTSX.xml"/>
a41c76
+    <include filename="x86_Cooperlake.xml"/>
a41c76
 
a41c76
     
a41c76
     <include filename="x86_athlon.xml"/>
a41c76
diff --git a/src/cpu_map/x86_Cooperlake.xml b/src/cpu_map/x86_Cooperlake.xml
a41c76
new file mode 100644
a41c76
index 0000000000..41bd210638
a41c76
--- /dev/null
a41c76
+++ b/src/cpu_map/x86_Cooperlake.xml
a41c76
@@ -0,0 +1,90 @@
a41c76
+<cpus>
a41c76
+  <model name='Cooperlake'>
a41c76
+    <decode host='on' guest='on'/>
a41c76
+    <signature family='6' model='85' stepping='10-11'/> 
a41c76
+    <vendor name='Intel'/>
a41c76
+    <feature name="3dnowprefetch"/>
a41c76
+    <feature name="abm"/>
a41c76
+    <feature name="adx"/>
a41c76
+    <feature name="aes"/>
a41c76
+    <feature name="apic"/>
a41c76
+    <feature name="arat"/>
a41c76
+    <feature name="arch-capabilities"/>
a41c76
+    <feature name="avx"/>
a41c76
+    <feature name="avx2"/>
a41c76
+    <feature name="avx512-bf16"/>
a41c76
+    <feature name="avx512bw"/>
a41c76
+    <feature name="avx512cd"/>
a41c76
+    <feature name="avx512dq"/>
a41c76
+    <feature name="avx512f"/>
a41c76
+    <feature name="avx512vl"/>
a41c76
+    <feature name="avx512vnni"/>
a41c76
+    <feature name="bmi1"/>
a41c76
+    <feature name="bmi2"/>
a41c76
+    <feature name="clflush"/>
a41c76
+    <feature name="clflushopt"/>
a41c76
+    <feature name="clwb"/>
a41c76
+    <feature name="cmov"/>
a41c76
+    <feature name="cx16"/>
a41c76
+    <feature name="cx8"/>
a41c76
+    <feature name="de"/>
a41c76
+    <feature name="erms"/>
a41c76
+    <feature name="f16c"/>
a41c76
+    <feature name="fma"/>
a41c76
+    <feature name="fpu"/>
a41c76
+    <feature name="fsgsbase"/>
a41c76
+    <feature name="fxsr"/>
a41c76
+    <feature name="hle"/>
a41c76
+    <feature name="ibrs-all"/>
a41c76
+    <feature name="invpcid"/>
a41c76
+    <feature name="lahf_lm"/>
a41c76
+    <feature name="lm"/>
a41c76
+    <feature name="mca"/>
a41c76
+    <feature name="mce"/>
a41c76
+    <feature name="mds-no"/>
a41c76
+    <feature name="mmx"/>
a41c76
+    <feature name="movbe"/>
a41c76
+    <feature name="msr"/>
a41c76
+    <feature name="mtrr"/>
a41c76
+    <feature name="nx"/>
a41c76
+    <feature name="pae"/>
a41c76
+    <feature name="pat"/>
a41c76
+    <feature name="pcid"/>
a41c76
+    <feature name="pclmuldq"/>
a41c76
+    <feature name="pdpe1gb"/>
a41c76
+    <feature name="pge"/>
a41c76
+    <feature name="pku"/>
a41c76
+    <feature name="pni"/>
a41c76
+    <feature name="popcnt"/>
a41c76
+    <feature name="pschange-mc-no"/>
a41c76
+    <feature name="pse"/>
a41c76
+    <feature name="pse36"/>
a41c76
+    <feature name="rdctl-no"/>
a41c76
+    <feature name="rdrand"/>
a41c76
+    <feature name="rdseed"/>
a41c76
+    <feature name="rdtscp"/>
a41c76
+    <feature name="rtm"/>
a41c76
+    <feature name="sep"/>
a41c76
+    <feature name="skip-l1dfl-vmentry"/>
a41c76
+    <feature name="smap"/>
a41c76
+    <feature name="smep"/>
a41c76
+    <feature name="spec-ctrl"/>
a41c76
+    <feature name="ssbd"/>
a41c76
+    <feature name="sse"/>
a41c76
+    <feature name="sse2"/>
a41c76
+    <feature name="sse4.1"/>
a41c76
+    <feature name="sse4.2"/>
a41c76
+    <feature name="ssse3"/>
a41c76
+    <feature name="stibp"/>
a41c76
+    <feature name="syscall"/>
a41c76
+    <feature name="taa-no"/>
a41c76
+    <feature name="tsc"/>
a41c76
+    <feature name="tsc-deadline"/>
a41c76
+    <feature name="vme"/>
a41c76
+    <feature name="x2apic"/>
a41c76
+    <feature name="xgetbv1"/>
a41c76
+    <feature name="xsave"/>
a41c76
+    <feature name="xsavec"/>
a41c76
+    <feature name="xsaveopt"/>
a41c76
+  </model>
a41c76
+</cpus>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
index db5598740c..f169458399 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-guest.xml
a41c76
@@ -1,5 +1,5 @@
a41c76
 <cpu mode='custom' match='exact'>
a41c76
-  <model fallback='forbid'>Cascadelake-Server</model>
a41c76
+  <model fallback='forbid'>Cooperlake</model>
a41c76
   <vendor>Intel</vendor>
a41c76
   <feature policy='require' name='ds'/>
a41c76
   <feature policy='require' name='acpi'/>
a41c76
@@ -20,22 +20,13 @@
a41c76
   <feature policy='require' name='osxsave'/>
a41c76
   <feature policy='require' name='tsc_adjust'/>
a41c76
   <feature policy='require' name='cmt'/>
a41c76
+  <feature policy='require' name='mpx'/>
a41c76
   <feature policy='require' name='intel-pt'/>
a41c76
-  <feature policy='require' name='pku'/>
a41c76
   <feature policy='require' name='ospke'/>
a41c76
   <feature policy='require' name='md-clear'/>
a41c76
-  <feature policy='require' name='stibp'/>
a41c76
-  <feature policy='require' name='arch-capabilities'/>
a41c76
-  <feature policy='require' name='avx512-bf16'/>
a41c76
   <feature policy='require' name='xsaves'/>
a41c76
   <feature policy='require' name='mbm_total'/>
a41c76
   <feature policy='require' name='mbm_local'/>
a41c76
   <feature policy='require' name='invtsc'/>
a41c76
-  <feature policy='require' name='rdctl-no'/>
a41c76
-  <feature policy='require' name='ibrs-all'/>
a41c76
-  <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
-  <feature policy='require' name='mds-no'/>
a41c76
-  <feature policy='require' name='pschange-mc-no'/>
a41c76
   <feature policy='require' name='tsx-ctrl'/>
a41c76
-  <feature policy='require' name='taa-no'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
index 6926b7c975..b0777181bb 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-host.xml
a41c76
@@ -1,6 +1,6 @@
a41c76
 <cpu>
a41c76
   <arch>x86_64</arch>
a41c76
-  <model>Cascadelake-Server</model>
a41c76
+  <model>Cooperlake</model>
a41c76
   <vendor>Intel</vendor>
a41c76
   <feature name='ds'/>
a41c76
   <feature name='acpi'/>
a41c76
@@ -21,22 +21,13 @@
a41c76
   <feature name='osxsave'/>
a41c76
   <feature name='tsc_adjust'/>
a41c76
   <feature name='cmt'/>
a41c76
+  <feature name='mpx'/>
a41c76
   <feature name='intel-pt'/>
a41c76
-  <feature name='pku'/>
a41c76
   <feature name='ospke'/>
a41c76
   <feature name='md-clear'/>
a41c76
-  <feature name='stibp'/>
a41c76
-  <feature name='arch-capabilities'/>
a41c76
-  <feature name='avx512-bf16'/>
a41c76
   <feature name='xsaves'/>
a41c76
   <feature name='mbm_total'/>
a41c76
   <feature name='mbm_local'/>
a41c76
   <feature name='invtsc'/>
a41c76
-  <feature name='rdctl-no'/>
a41c76
-  <feature name='ibrs-all'/>
a41c76
-  <feature name='skip-l1dfl-vmentry'/>
a41c76
-  <feature name='mds-no'/>
a41c76
-  <feature name='pschange-mc-no'/>
a41c76
   <feature name='tsx-ctrl'/>
a41c76
-  <feature name='taa-no'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
index fc52805b2f..fb319d547c 100644
a41c76
--- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
+++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml
a41c76
@@ -1,24 +1,15 @@
a41c76
 <cpu mode='custom' match='exact'>
a41c76
-  <model fallback='forbid'>Cascadelake-Server</model>
a41c76
+  <model fallback='forbid'>Cooperlake</model>
a41c76
   <vendor>Intel</vendor>
a41c76
   <feature policy='require' name='ss'/>
a41c76
   <feature policy='require' name='vmx'/>
a41c76
   <feature policy='require' name='hypervisor'/>
a41c76
   <feature policy='require' name='tsc_adjust'/>
a41c76
+  <feature policy='require' name='mpx'/>
a41c76
   <feature policy='require' name='umip'/>
a41c76
-  <feature policy='require' name='pku'/>
a41c76
   <feature policy='require' name='md-clear'/>
a41c76
-  <feature policy='require' name='stibp'/>
a41c76
-  <feature policy='require' name='arch-capabilities'/>
a41c76
-  <feature policy='require' name='avx512-bf16'/>
a41c76
   <feature policy='require' name='xsaves'/>
a41c76
   <feature policy='require' name='ibpb'/>
a41c76
   <feature policy='require' name='amd-ssbd'/>
a41c76
-  <feature policy='require' name='rdctl-no'/>
a41c76
-  <feature policy='require' name='ibrs-all'/>
a41c76
-  <feature policy='require' name='skip-l1dfl-vmentry'/>
a41c76
-  <feature policy='require' name='mds-no'/>
a41c76
-  <feature policy='require' name='pschange-mc-no'/>
a41c76
   <feature policy='require' name='tsx-ctrl'/>
a41c76
-  <feature policy='require' name='taa-no'/>
a41c76
 </cpu>
a41c76
diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
a41c76
index b7e2c8a4fe..7bfd786ff6 100644
a41c76
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
a41c76
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
a41c76
@@ -93,6 +93,7 @@
a41c76
       <model usable='no'>EPYC-IBPB</model>
a41c76
       <model usable='no'>EPYC</model>
a41c76
       <model usable='no'>Dhyana</model>
a41c76
+      <model usable='no'>Cooperlake</model>
a41c76
       <model usable='yes'>Conroe</model>
a41c76
       <model usable='no'>Cascadelake-Server-noTSX</model>
a41c76
       <model usable='no'>Cascadelake-Server</model>
a41c76
diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
a41c76
index d634803b29..0a4bb16a89 100644
a41c76
--- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
a41c76
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
a41c76
@@ -101,6 +101,7 @@
a41c76
       <model usable='no'>EPYC-IBPB</model>
a41c76
       <model usable='no'>EPYC</model>
a41c76
       <model usable='no'>Dhyana</model>
a41c76
+      <model usable='no'>Cooperlake</model>
a41c76
       <model usable='yes'>Conroe</model>
a41c76
       <model usable='no'>Cascadelake-Server-noTSX</model>
a41c76
       <model usable='no'>Cascadelake-Server</model>
a41c76
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
a41c76
index d2741375b4..d6ee66ab60 100644
a41c76
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
a41c76
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
a41c76
@@ -92,6 +92,7 @@
a41c76
       <model usable='no'>EPYC-IBPB</model>
a41c76
       <model usable='no'>EPYC</model>
a41c76
       <model usable='no'>Dhyana</model>
a41c76
+      <model usable='no'>Cooperlake</model>
a41c76
       <model usable='yes'>Conroe</model>
a41c76
       <model usable='no'>Cascadelake-Server-noTSX</model>
a41c76
       <model usable='no'>Cascadelake-Server</model>
a41c76
-- 
a41c76
2.26.2
a41c76