7548c0
From f441299f1b589a60199156a217c5f49fc9de954d Mon Sep 17 00:00:00 2001
7548c0
Message-Id: <f441299f1b589a60199156a217c5f49fc9de954d@dist-git>
7548c0
From: Markus Schade <markus.schade@hetzner.com>
7548c0
Date: Thu, 8 Oct 2020 18:01:25 +0200
7548c0
Subject: [PATCH] cpu_map: Defined and enable EPYC-Rome model
7548c0
MIME-Version: 1.0
7548c0
Content-Type: text/plain; charset=UTF-8
7548c0
Content-Transfer-Encoding: 8bit
7548c0
7548c0
Signed-off-by: Markus Schade <markus.schade@hetzner.com>
7548c0
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
7548c0
(cherry picked from commit f941639f86f4bc66c106eb1291f1b58cf9e24680)
7548c0
7548c0
https://bugzilla.redhat.com/show_bug.cgi?id=1861506
7548c0
7548c0
Conflicts:
7548c0
	src/cpu_map/meson.build
7548c0
            - the corresponding change was applied to Makefile.inc.am as
7548c0
              downstream still uses autotools
7548c0
7548c0
	tests/cputest.c
7548c0
	tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml
7548c0
            - test data for Ryzen 9 3900X are not present downstream
7548c0
7548c0
	tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
7548c0
	tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
7548c0
	tests/domaincapsdata/qemu_5.1.0.x86_64.xml
7548c0
	tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
7548c0
	tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
7548c0
	tests/domaincapsdata/qemu_5.2.0.x86_64.xml
7548c0
            - not present downstream
7548c0
7548c0
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
7548c0
Message-Id: <bc87b8a0b0c408f380792eaf63ff07551185d3a5.1602172344.git.jdenemar@redhat.com>
7548c0
Reviewed-by: Ján Tomko <jtomko@redhat.com>
7548c0
---
7548c0
 src/cpu_map/Makefile.inc.am                   |  1 +
7548c0
 src/cpu_map/index.xml                         |  1 +
7548c0
 src/cpu_map/x86_EPYC-Rome.xml                 | 84 +++++++++++++++++++
7548c0
 .../x86_64-cpuid-EPYC-7502-32-Core-guest.xml  | 12 +--
7548c0
 .../x86_64-cpuid-EPYC-7502-32-Core-host.xml   | 12 +--
7548c0
 .../x86_64-cpuid-EPYC-7502-32-Core-json.xml   | 12 +--
7548c0
 .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml  |  1 +
7548c0
 .../domaincapsdata/qemu_5.0.0-tcg.x86_64.xml  |  1 +
7548c0
 tests/domaincapsdata/qemu_5.0.0.x86_64.xml    |  1 +
7548c0
 9 files changed, 92 insertions(+), 33 deletions(-)
7548c0
 create mode 100644 src/cpu_map/x86_EPYC-Rome.xml
7548c0
7548c0
diff --git a/src/cpu_map/Makefile.inc.am b/src/cpu_map/Makefile.inc.am
7548c0
index b949cb0bea..aad4b410f9 100644
7548c0
--- a/src/cpu_map/Makefile.inc.am
7548c0
+++ b/src/cpu_map/Makefile.inc.am
7548c0
@@ -30,6 +30,7 @@ cpumap_DATA = \
7548c0
 	cpu_map/x86_Dhyana.xml \
7548c0
 	cpu_map/x86_EPYC.xml \
7548c0
 	cpu_map/x86_EPYC-IBPB.xml \
7548c0
+	cpu_map/x86_EPYC-Rome.xml \
7548c0
 	cpu_map/x86_Haswell.xml \
7548c0
 	cpu_map/x86_Haswell-IBRS.xml \
7548c0
 	cpu_map/x86_Haswell-noTSX.xml \
7548c0
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
7548c0
index ff1da2e677..633b017a93 100644
7548c0
--- a/src/cpu_map/index.xml
7548c0
+++ b/src/cpu_map/index.xml
7548c0
@@ -66,6 +66,7 @@
7548c0
     <include filename="x86_Opteron_G5.xml"/>
7548c0
     <include filename="x86_EPYC.xml"/>
7548c0
     <include filename="x86_EPYC-IBPB.xml"/>
7548c0
+    <include filename="x86_EPYC-Rome.xml"/>
7548c0
 
7548c0
     
7548c0
     <include filename="x86_Dhyana.xml"/>
7548c0
diff --git a/src/cpu_map/x86_EPYC-Rome.xml b/src/cpu_map/x86_EPYC-Rome.xml
7548c0
new file mode 100644
7548c0
index 0000000000..99fc015fdd
7548c0
--- /dev/null
7548c0
+++ b/src/cpu_map/x86_EPYC-Rome.xml
7548c0
@@ -0,0 +1,84 @@
7548c0
+<cpus>
7548c0
+  <model name='EPYC-Rome'>
7548c0
+    <decode host='on' guest='on'/>
7548c0
+    <signature family='23' model='49'/>
7548c0
+    <vendor name='AMD'/>
7548c0
+    <feature name='3dnowprefetch'/>
7548c0
+    <feature name='abm'/>
7548c0
+    <feature name='adx'/>
7548c0
+    <feature name='aes'/>
7548c0
+    <feature name='amd-stibp'/>
7548c0
+    <feature name='apic'/>
7548c0
+    <feature name='arat'/>
7548c0
+    <feature name='avx'/>
7548c0
+    <feature name='avx2'/>
7548c0
+    <feature name='bmi1'/>
7548c0
+    <feature name='bmi2'/>
7548c0
+    <feature name='clflush'/>
7548c0
+    <feature name='clflushopt'/>
7548c0
+    <feature name='clwb'/>
7548c0
+    <feature name='clzero'/>
7548c0
+    <feature name='cmov'/>
7548c0
+    <feature name='cr8legacy'/>
7548c0
+    <feature name='cx16'/>
7548c0
+    <feature name='cx8'/>
7548c0
+    <feature name='de'/>
7548c0
+    <feature name='f16c'/>
7548c0
+    <feature name='fma'/>
7548c0
+    <feature name='fpu'/>
7548c0
+    <feature name='fsgsbase'/>
7548c0
+    <feature name='fxsr'/>
7548c0
+    <feature name='fxsr_opt'/>
7548c0
+    <feature name='ibpb'/>
7548c0
+    <feature name='lahf_lm'/>
7548c0
+    <feature name='lm'/>
7548c0
+    <feature name='mca'/>
7548c0
+    <feature name='mce'/>
7548c0
+    <feature name='misalignsse'/>
7548c0
+    <feature name='mmx'/>
7548c0
+    <feature name='mmxext'/>
7548c0
+    <feature name='monitor'/>
7548c0
+    <feature name='movbe'/>
7548c0
+    <feature name='msr'/>
7548c0
+    <feature name='mtrr'/>
7548c0
+    <feature name='npt'/>
7548c0
+    <feature name='nrip-save'/>
7548c0
+    <feature name='nx'/>
7548c0
+    <feature name='osvw'/>
7548c0
+    <feature name='pae'/>
7548c0
+    <feature name='pat'/>
7548c0
+    <feature name='pclmuldq'/>
7548c0
+    <feature name='pdpe1gb'/>
7548c0
+    <feature name='perfctr_core'/>
7548c0
+    <feature name='pge'/>
7548c0
+    <feature name='pni'/>
7548c0
+    <feature name='popcnt'/>
7548c0
+    <feature name='pse'/>
7548c0
+    <feature name='pse36'/>
7548c0
+    <feature name='rdpid'/>
7548c0
+    <feature name='rdrand'/>
7548c0
+    <feature name='rdseed'/>
7548c0
+    <feature name='rdtscp'/>
7548c0
+    <feature name='sep'/>
7548c0
+    <feature name='sha-ni'/>
7548c0
+    <feature name='smap'/>
7548c0
+    <feature name='smep'/>
7548c0
+    <feature name='sse'/>
7548c0
+    <feature name='sse2'/>
7548c0
+    <feature name='sse4.1'/>
7548c0
+    <feature name='sse4.2'/>
7548c0
+    <feature name='sse4a'/>
7548c0
+    <feature name='ssse3'/>
7548c0
+    <feature name='svm'/>
7548c0
+    <feature name='syscall'/>
7548c0
+    <feature name='tsc'/>
7548c0
+    <feature name='umip'/>
7548c0
+    <feature name='vme'/>
7548c0
+    <feature name='wbnoinvd'/>
7548c0
+    <feature name='xgetbv1'/>
7548c0
+    <feature name='xsave'/>
7548c0
+    <feature name='xsavec'/>
7548c0
+    <feature name='xsaveerptr'/>
7548c0
+    <feature name='xsaveopt'/>
7548c0
+  </model>
7548c0
+</cpus>
7548c0
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml
7548c0
index 1320f65a58..cb2caab6f5 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml
7548c0
@@ -1,12 +1,9 @@
7548c0
 <cpu mode='custom' match='exact'>
7548c0
-  <model fallback='forbid'>EPYC-IBPB</model>
7548c0
+  <model fallback='forbid'>EPYC-Rome</model>
7548c0
   <vendor>AMD</vendor>
7548c0
   <feature policy='require' name='ht'/>
7548c0
   <feature policy='require' name='osxsave'/>
7548c0
   <feature policy='require' name='cmt'/>
7548c0
-  <feature policy='require' name='clwb'/>
7548c0
-  <feature policy='require' name='umip'/>
7548c0
-  <feature policy='require' name='rdpid'/>
7548c0
   <feature policy='require' name='xsaves'/>
7548c0
   <feature policy='require' name='mbm_total'/>
7548c0
   <feature policy='require' name='mbm_local'/>
7548c0
@@ -17,18 +14,11 @@
7548c0
   <feature policy='require' name='wdt'/>
7548c0
   <feature policy='require' name='tce'/>
7548c0
   <feature policy='require' name='topoext'/>
7548c0
-  <feature policy='require' name='perfctr_core'/>
7548c0
   <feature policy='require' name='perfctr_nb'/>
7548c0
   <feature policy='require' name='invtsc'/>
7548c0
-  <feature policy='require' name='clzero'/>
7548c0
-  <feature policy='require' name='xsaveerptr'/>
7548c0
-  <feature policy='require' name='wbnoinvd'/>
7548c0
-  <feature policy='require' name='amd-stibp'/>
7548c0
   <feature policy='require' name='amd-ssbd'/>
7548c0
-  <feature policy='require' name='npt'/>
7548c0
   <feature policy='require' name='lbrv'/>
7548c0
   <feature policy='require' name='svm-lock'/>
7548c0
-  <feature policy='require' name='nrip-save'/>
7548c0
   <feature policy='require' name='tsc-scale'/>
7548c0
   <feature policy='require' name='vmcb-clean'/>
7548c0
   <feature policy='require' name='flushbyasid'/>
7548c0
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
7548c0
index 37905ec812..b6784f9eba 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
7548c0
@@ -1,13 +1,10 @@
7548c0
 <cpu>
7548c0
   <arch>x86_64</arch>
7548c0
-  <model>EPYC-IBPB</model>
7548c0
+  <model>EPYC-Rome</model>
7548c0
   <vendor>AMD</vendor>
7548c0
   <feature name='ht'/>
7548c0
   <feature name='osxsave'/>
7548c0
   <feature name='cmt'/>
7548c0
-  <feature name='clwb'/>
7548c0
-  <feature name='umip'/>
7548c0
-  <feature name='rdpid'/>
7548c0
   <feature name='xsaves'/>
7548c0
   <feature name='mbm_total'/>
7548c0
   <feature name='mbm_local'/>
7548c0
@@ -18,18 +15,11 @@
7548c0
   <feature name='wdt'/>
7548c0
   <feature name='tce'/>
7548c0
   <feature name='topoext'/>
7548c0
-  <feature name='perfctr_core'/>
7548c0
   <feature name='perfctr_nb'/>
7548c0
   <feature name='invtsc'/>
7548c0
-  <feature name='clzero'/>
7548c0
-  <feature name='xsaveerptr'/>
7548c0
-  <feature name='wbnoinvd'/>
7548c0
-  <feature name='amd-stibp'/>
7548c0
   <feature name='amd-ssbd'/>
7548c0
-  <feature name='npt'/>
7548c0
   <feature name='lbrv'/>
7548c0
   <feature name='svm-lock'/>
7548c0
-  <feature name='nrip-save'/>
7548c0
   <feature name='tsc-scale'/>
7548c0
   <feature name='vmcb-clean'/>
7548c0
   <feature name='flushbyasid'/>
7548c0
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml
7548c0
index 225cf63852..86466c0547 100644
7548c0
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml
7548c0
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml
7548c0
@@ -1,28 +1,18 @@
7548c0
 <cpu mode='custom' match='exact'>
7548c0
-  <model fallback='forbid'>EPYC-IBPB</model>
7548c0
+  <model fallback='forbid'>EPYC-Rome</model>
7548c0
   <vendor>AMD</vendor>
7548c0
   <feature policy='require' name='x2apic'/>
7548c0
   <feature policy='require' name='tsc-deadline'/>
7548c0
   <feature policy='require' name='hypervisor'/>
7548c0
   <feature policy='require' name='tsc_adjust'/>
7548c0
-  <feature policy='require' name='clwb'/>
7548c0
-  <feature policy='require' name='umip'/>
7548c0
-  <feature policy='require' name='rdpid'/>
7548c0
   <feature policy='require' name='spec-ctrl'/>
7548c0
   <feature policy='require' name='stibp'/>
7548c0
   <feature policy='require' name='arch-capabilities'/>
7548c0
   <feature policy='require' name='ssbd'/>
7548c0
   <feature policy='require' name='xsaves'/>
7548c0
   <feature policy='require' name='cmp_legacy'/>
7548c0
-  <feature policy='require' name='perfctr_core'/>
7548c0
-  <feature policy='require' name='clzero'/>
7548c0
-  <feature policy='require' name='xsaveerptr'/>
7548c0
-  <feature policy='require' name='wbnoinvd'/>
7548c0
-  <feature policy='require' name='amd-stibp'/>
7548c0
   <feature policy='require' name='amd-ssbd'/>
7548c0
   <feature policy='require' name='virt-ssbd'/>
7548c0
-  <feature policy='require' name='npt'/>
7548c0
-  <feature policy='require' name='nrip-save'/>
7548c0
   <feature policy='require' name='rdctl-no'/>
7548c0
   <feature policy='require' name='skip-l1dfl-vmentry'/>
7548c0
   <feature policy='require' name='mds-no'/>
7548c0
diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
7548c0
index 7bfd786ff6..b2a7087a0e 100644
7548c0
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
7548c0
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
7548c0
@@ -90,6 +90,7 @@
7548c0
       <model usable='yes'>Haswell-noTSX</model>
7548c0
       <model usable='yes'>Haswell-IBRS</model>
7548c0
       <model usable='yes'>Haswell</model>
7548c0
+      <model usable='no'>EPYC-Rome</model>
7548c0
       <model usable='no'>EPYC-IBPB</model>
7548c0
       <model usable='no'>EPYC</model>
7548c0
       <model usable='no'>Dhyana</model>
7548c0
diff --git a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
7548c0
index eb456dea28..39b11fb634 100644
7548c0
--- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
7548c0
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
7548c0
@@ -100,6 +100,7 @@
7548c0
       <model usable='no'>Haswell-noTSX</model>
7548c0
       <model usable='no'>Haswell-IBRS</model>
7548c0
       <model usable='no'>Haswell</model>
7548c0
+      <model usable='no'>EPYC-Rome</model>
7548c0
       <model usable='no'>EPYC-IBPB</model>
7548c0
       <model usable='no'>EPYC</model>
7548c0
       <model usable='no'>Dhyana</model>
7548c0
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
7548c0
index d6ee66ab60..3a1ee23302 100644
7548c0
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
7548c0
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
7548c0
@@ -89,6 +89,7 @@
7548c0
       <model usable='yes'>Haswell-noTSX</model>
7548c0
       <model usable='yes'>Haswell-IBRS</model>
7548c0
       <model usable='yes'>Haswell</model>
7548c0
+      <model usable='no'>EPYC-Rome</model>
7548c0
       <model usable='no'>EPYC-IBPB</model>
7548c0
       <model usable='no'>EPYC</model>
7548c0
       <model usable='no'>Dhyana</model>
7548c0
-- 
7548c0
2.29.2
7548c0