]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
cpu_map: Defined and enable EPYC-Rome model
authorMarkus Schade <markus.schade@hetzner.com>
Thu, 1 Oct 2020 10:22:02 +0000 (12:22 +0200)
committerJiri Denemark <jdenemar@redhat.com>
Wed, 7 Oct 2020 15:30:54 +0000 (17:30 +0200)
Signed-off-by: Markus Schade <markus.schade@hetzner.com>
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
17 files changed:
src/cpu_map/index.xml
src/cpu_map/meson.build
src/cpu_map/x86_EPYC-Rome.xml [new file with mode: 0644]
tests/cputest.c
tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml
tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-json.xml
tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml
tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.0.0.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.1.0.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
tests/domaincapsdata/qemu_5.2.0.x86_64.xml

index 1486a29c65ecca9cf8d622f7b2c4a1c5601ab53b..fec01f324c4891389463d8fa8368f0f7488ce7b2 100644 (file)
@@ -66,6 +66,7 @@
     <include filename="x86_Opteron_G5.xml"/>
     <include filename="x86_EPYC.xml"/>
     <include filename="x86_EPYC-IBPB.xml"/>
+    <include filename="x86_EPYC-Rome.xml"/>
 
     <!-- Hygon CPU models -->
     <include filename="x86_Dhyana.xml"/>
index 19daa7157bbff0f0daa0b328d97a6c0205c2fbf6..b86612b6e0b43074dd4d5caebce14857aa89ad79 100644 (file)
@@ -32,6 +32,7 @@ cpumap_data = [
   'x86_Dhyana.xml',
   'x86_EPYC-IBPB.xml',
   'x86_EPYC.xml',
+  'x86_EPYC-Rome.xml',
   'x86_features.xml',
   'x86_Haswell-IBRS.xml',
   'x86_Haswell-noTSX-IBRS.xml',
diff --git a/src/cpu_map/x86_EPYC-Rome.xml b/src/cpu_map/x86_EPYC-Rome.xml
new file mode 100644 (file)
index 0000000..99fc015
--- /dev/null
@@ -0,0 +1,84 @@
+<cpus>
+  <model name='EPYC-Rome'>
+    <decode host='on' guest='on'/>
+    <signature family='23' model='49'/>
+    <vendor name='AMD'/>
+    <feature name='3dnowprefetch'/>
+    <feature name='abm'/>
+    <feature name='adx'/>
+    <feature name='aes'/>
+    <feature name='amd-stibp'/>
+    <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='clwb'/>
+    <feature name='clzero'/>
+    <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='ibpb'/>
+    <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='npt'/>
+    <feature name='nrip-save'/>
+    <feature name='nx'/>
+    <feature name='osvw'/>
+    <feature name='pae'/>
+    <feature name='pat'/>
+    <feature name='pclmuldq'/>
+    <feature name='pdpe1gb'/>
+    <feature name='perfctr_core'/>
+    <feature name='pge'/>
+    <feature name='pni'/>
+    <feature name='popcnt'/>
+    <feature name='pse'/>
+    <feature name='pse36'/>
+    <feature name='rdpid'/>
+    <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='umip'/>
+    <feature name='vme'/>
+    <feature name='wbnoinvd'/>
+    <feature name='xgetbv1'/>
+    <feature name='xsave'/>
+    <feature name='xsavec'/>
+    <feature name='xsaveerptr'/>
+    <feature name='xsaveopt'/>
+  </model>
+</cpus>
index bf5ce84aa71c07bfd709ebf0506b29790ba082b8..b3b143cbf1b8fe2312d305a84613991e5e33601f 100644 (file)
@@ -1254,7 +1254,7 @@ mymain(void)
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Pentium-P6100", JSON_NONE);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Phenom-B95", JSON_HOST);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-7-1800X-Eight-Core", JSON_HOST);
-    DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-9-3900X-12-Core", JSON_MODELS);
+    DO_TEST_CPUID(VIR_ARCH_X86_64, "Ryzen-9-3900X-12-Core", JSON_MODELS_REQUIRED);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-5110", JSON_NONE);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E3-1225-v5", JSON_MODELS);
     DO_TEST_CPUID(VIR_ARCH_X86_64, "Xeon-E3-1245-v5", JSON_MODELS);
index 1320f65a585349abb2cf894defa85f50225e8a28..cb2caab6f57ba143d65e65fb47af40941878cf34 100644 (file)
@@ -1,12 +1,9 @@
 <cpu mode='custom' match='exact'>
-  <model fallback='forbid'>EPYC-IBPB</model>
+  <model fallback='forbid'>EPYC-Rome</model>
   <vendor>AMD</vendor>
   <feature policy='require' name='ht'/>
   <feature policy='require' name='osxsave'/>
   <feature policy='require' name='cmt'/>
-  <feature policy='require' name='clwb'/>
-  <feature policy='require' name='umip'/>
-  <feature policy='require' name='rdpid'/>
   <feature policy='require' name='xsaves'/>
   <feature policy='require' name='mbm_total'/>
   <feature policy='require' name='mbm_local'/>
   <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='require' name='clzero'/>
-  <feature policy='require' name='xsaveerptr'/>
-  <feature policy='require' name='wbnoinvd'/>
-  <feature policy='require' name='amd-stibp'/>
   <feature policy='require' name='amd-ssbd'/>
-  <feature policy='require' name='npt'/>
   <feature policy='require' name='lbrv'/>
   <feature policy='require' name='svm-lock'/>
-  <feature policy='require' name='nrip-save'/>
   <feature policy='require' name='tsc-scale'/>
   <feature policy='require' name='vmcb-clean'/>
   <feature policy='require' name='flushbyasid'/>
index 37905ec812d070aa3ba77084dee84d8b91702470..b6784f9ebac886fd94dc8ecfb8fd74cd1cb6680b 100644 (file)
@@ -1,13 +1,10 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>EPYC-IBPB</model>
+  <model>EPYC-Rome</model>
   <vendor>AMD</vendor>
   <feature name='ht'/>
   <feature name='osxsave'/>
   <feature name='cmt'/>
-  <feature name='clwb'/>
-  <feature name='umip'/>
-  <feature name='rdpid'/>
   <feature name='xsaves'/>
   <feature name='mbm_total'/>
   <feature name='mbm_local'/>
   <feature name='wdt'/>
   <feature name='tce'/>
   <feature name='topoext'/>
-  <feature name='perfctr_core'/>
   <feature name='perfctr_nb'/>
   <feature name='invtsc'/>
-  <feature name='clzero'/>
-  <feature name='xsaveerptr'/>
-  <feature name='wbnoinvd'/>
-  <feature name='amd-stibp'/>
   <feature name='amd-ssbd'/>
-  <feature name='npt'/>
   <feature name='lbrv'/>
   <feature name='svm-lock'/>
-  <feature name='nrip-save'/>
   <feature name='tsc-scale'/>
   <feature name='vmcb-clean'/>
   <feature name='flushbyasid'/>
index 225cf6385289b5bb2a1874aae8147ec87bcb54a0..86466c05477ccd3e0a73d31112be144d53192b18 100644 (file)
@@ -1,28 +1,18 @@
 <cpu mode='custom' match='exact'>
-  <model fallback='forbid'>EPYC-IBPB</model>
+  <model fallback='forbid'>EPYC-Rome</model>
   <vendor>AMD</vendor>
   <feature policy='require' name='x2apic'/>
   <feature policy='require' name='tsc-deadline'/>
   <feature policy='require' name='hypervisor'/>
   <feature policy='require' name='tsc_adjust'/>
-  <feature policy='require' name='clwb'/>
-  <feature policy='require' name='umip'/>
-  <feature policy='require' name='rdpid'/>
   <feature policy='require' name='spec-ctrl'/>
   <feature policy='require' name='stibp'/>
   <feature policy='require' name='arch-capabilities'/>
   <feature policy='require' name='ssbd'/>
   <feature policy='require' name='xsaves'/>
   <feature policy='require' name='cmp_legacy'/>
-  <feature policy='require' name='perfctr_core'/>
-  <feature policy='require' name='clzero'/>
-  <feature policy='require' name='xsaveerptr'/>
-  <feature policy='require' name='wbnoinvd'/>
-  <feature policy='require' name='amd-stibp'/>
   <feature policy='require' name='amd-ssbd'/>
   <feature policy='require' name='virt-ssbd'/>
-  <feature policy='require' name='npt'/>
-  <feature policy='require' name='nrip-save'/>
   <feature policy='require' name='rdctl-no'/>
   <feature policy='require' name='skip-l1dfl-vmentry'/>
   <feature policy='require' name='mds-no'/>
index 37905ec812d070aa3ba77084dee84d8b91702470..b6784f9ebac886fd94dc8ecfb8fd74cd1cb6680b 100644 (file)
@@ -1,13 +1,10 @@
 <cpu>
   <arch>x86_64</arch>
-  <model>EPYC-IBPB</model>
+  <model>EPYC-Rome</model>
   <vendor>AMD</vendor>
   <feature name='ht'/>
   <feature name='osxsave'/>
   <feature name='cmt'/>
-  <feature name='clwb'/>
-  <feature name='umip'/>
-  <feature name='rdpid'/>
   <feature name='xsaves'/>
   <feature name='mbm_total'/>
   <feature name='mbm_local'/>
   <feature name='wdt'/>
   <feature name='tce'/>
   <feature name='topoext'/>
-  <feature name='perfctr_core'/>
   <feature name='perfctr_nb'/>
   <feature name='invtsc'/>
-  <feature name='clzero'/>
-  <feature name='xsaveerptr'/>
-  <feature name='wbnoinvd'/>
-  <feature name='amd-stibp'/>
   <feature name='amd-ssbd'/>
-  <feature name='npt'/>
   <feature name='lbrv'/>
   <feature name='svm-lock'/>
-  <feature name='nrip-save'/>
   <feature name='tsc-scale'/>
   <feature name='vmcb-clean'/>
   <feature name='flushbyasid'/>
index fc21b2ad62742d7c128d8788a5a59ef9c80d8cc7..d70c718b94a379af3b8cc5743659cef8337f325f 100644 (file)
@@ -95,6 +95,7 @@
       <model usable='yes'>Haswell-noTSX</model>
       <model usable='yes'>Haswell-IBRS</model>
       <model usable='yes'>Haswell</model>
+      <model usable='no'>EPYC-Rome</model>
       <model usable='no'>EPYC-IBPB</model>
       <model usable='no'>EPYC</model>
       <model usable='no'>Dhyana</model>
index 110a79dd348f26fc47b85a0c1fbcfba011599b92..58f8547d3d190e6b4b07fa1acf457e89035d9dcc 100644 (file)
       <model usable='no'>Haswell-noTSX</model>
       <model usable='no'>Haswell-IBRS</model>
       <model usable='no'>Haswell</model>
+      <model usable='no'>EPYC-Rome</model>
       <model usable='no'>EPYC-IBPB</model>
       <model usable='no'>EPYC</model>
       <model usable='no'>Dhyana</model>
index aceca34c4300a22bb61c06e2fc2da5217edd0c76..587b49f55ca3f4881d7a8c533c694283f5e7fb10 100644 (file)
@@ -94,6 +94,7 @@
       <model usable='yes'>Haswell-noTSX</model>
       <model usable='yes'>Haswell-IBRS</model>
       <model usable='yes'>Haswell</model>
+      <model usable='no'>EPYC-Rome</model>
       <model usable='no'>EPYC-IBPB</model>
       <model usable='no'>EPYC</model>
       <model usable='no'>Dhyana</model>
index e1762611c5ee232e19012d169fd5662f2c4c0a2b..716adab95bd15657be28ef47093b3d30f7ddb273 100644 (file)
       </enum>
     </mode>
     <mode name='host-model' supported='yes'>
-      <model fallback='forbid'>EPYC-IBPB</model>
+      <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
       <feature policy='require' name='tsc_adjust'/>
-      <feature policy='require' name='clwb'/>
-      <feature policy='require' name='umip'/>
-      <feature policy='require' name='rdpid'/>
       <feature policy='require' name='stibp'/>
       <feature policy='require' name='arch-capabilities'/>
       <feature policy='require' name='ssbd'/>
       <feature policy='require' name='xsaves'/>
       <feature policy='require' name='cmp_legacy'/>
-      <feature policy='require' name='perfctr_core'/>
       <feature policy='require' name='invtsc'/>
-      <feature policy='require' name='clzero'/>
-      <feature policy='require' name='xsaveerptr'/>
-      <feature policy='require' name='wbnoinvd'/>
-      <feature policy='require' name='amd-stibp'/>
       <feature policy='require' name='amd-ssbd'/>
       <feature policy='require' name='virt-ssbd'/>
-      <feature policy='require' name='npt'/>
-      <feature policy='require' name='nrip-save'/>
       <feature policy='require' name='rdctl-no'/>
       <feature policy='require' name='skip-l1dfl-vmentry'/>
       <feature policy='require' name='mds-no'/>
       <model usable='no'>Haswell-noTSX</model>
       <model usable='no'>Haswell-IBRS</model>
       <model usable='no'>Haswell</model>
+      <model usable='yes'>EPYC-Rome</model>
       <model usable='yes'>EPYC-IBPB</model>
       <model usable='yes'>EPYC</model>
       <model usable='yes'>Dhyana</model>
index 86f091d2388d549d3ea26e52ba640c72f3ac2996..669afdbec8a6470acc57703fb19f9a6368d9e2b9 100644 (file)
       <model usable='no'>Haswell-noTSX</model>
       <model usable='no'>Haswell-IBRS</model>
       <model usable='no'>Haswell</model>
+      <model usable='no'>EPYC-Rome</model>
       <model usable='no'>EPYC-IBPB</model>
       <model usable='no'>EPYC</model>
       <model usable='no'>Dhyana</model>
index 117f316b6a49d610e0d457ecf168daa0f441488e..dbb828c36829a3ccf43402e83015666ea10c04c2 100644 (file)
       </enum>
     </mode>
     <mode name='host-model' supported='yes'>
-      <model fallback='forbid'>EPYC-IBPB</model>
+      <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
       <feature policy='require' name='tsc_adjust'/>
-      <feature policy='require' name='clwb'/>
-      <feature policy='require' name='umip'/>
-      <feature policy='require' name='rdpid'/>
       <feature policy='require' name='stibp'/>
       <feature policy='require' name='arch-capabilities'/>
       <feature policy='require' name='ssbd'/>
       <feature policy='require' name='xsaves'/>
       <feature policy='require' name='cmp_legacy'/>
-      <feature policy='require' name='perfctr_core'/>
       <feature policy='require' name='invtsc'/>
-      <feature policy='require' name='clzero'/>
-      <feature policy='require' name='xsaveerptr'/>
-      <feature policy='require' name='wbnoinvd'/>
-      <feature policy='require' name='amd-stibp'/>
       <feature policy='require' name='amd-ssbd'/>
       <feature policy='require' name='virt-ssbd'/>
-      <feature policy='require' name='npt'/>
-      <feature policy='require' name='nrip-save'/>
       <feature policy='require' name='rdctl-no'/>
       <feature policy='require' name='skip-l1dfl-vmentry'/>
       <feature policy='require' name='mds-no'/>
       <model usable='no'>Haswell-noTSX</model>
       <model usable='no'>Haswell-IBRS</model>
       <model usable='no'>Haswell</model>
+      <model usable='yes'>EPYC-Rome</model>
       <model usable='yes'>EPYC-IBPB</model>
       <model usable='yes'>EPYC</model>
       <model usable='yes'>Dhyana</model>
index fdbf29fcdf9c256d31d3f2422047df29f34ae1d2..71b655dd10f694aac958350c25f530ff4531c7c9 100644 (file)
       </enum>
     </mode>
     <mode name='host-model' supported='yes'>
-      <model fallback='forbid'>EPYC-IBPB</model>
+      <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
       <feature policy='require' name='tsc_adjust'/>
-      <feature policy='require' name='clwb'/>
-      <feature policy='require' name='umip'/>
-      <feature policy='require' name='rdpid'/>
       <feature policy='require' name='stibp'/>
       <feature policy='require' name='arch-capabilities'/>
       <feature policy='require' name='ssbd'/>
       <feature policy='require' name='xsaves'/>
       <feature policy='require' name='cmp_legacy'/>
-      <feature policy='require' name='perfctr_core'/>
       <feature policy='require' name='invtsc'/>
-      <feature policy='require' name='clzero'/>
-      <feature policy='require' name='xsaveerptr'/>
-      <feature policy='require' name='wbnoinvd'/>
-      <feature policy='require' name='amd-stibp'/>
       <feature policy='require' name='amd-ssbd'/>
       <feature policy='require' name='virt-ssbd'/>
-      <feature policy='require' name='npt'/>
-      <feature policy='require' name='nrip-save'/>
       <feature policy='require' name='rdctl-no'/>
       <feature policy='require' name='skip-l1dfl-vmentry'/>
       <feature policy='require' name='mds-no'/>
       <model usable='no'>Haswell-noTSX</model>
       <model usable='no'>Haswell-IBRS</model>
       <model usable='no'>Haswell</model>
+      <model usable='yes'>EPYC-Rome</model>
       <model usable='yes'>EPYC-IBPB</model>
       <model usable='yes'>EPYC</model>
       <model usable='yes'>Dhyana</model>
index d33b8585a02d63d7cfabacd0b3245af9744e0303..b5c9b31da7b254a2b9c31d293b4a968c3026bcd2 100644 (file)
       <model usable='no'>Haswell-noTSX</model>
       <model usable='no'>Haswell-IBRS</model>
       <model usable='no'>Haswell</model>
+      <model usable='no'>EPYC-Rome</model>
       <model usable='no'>EPYC-IBPB</model>
       <model usable='no'>EPYC</model>
       <model usable='no'>Dhyana</model>
index 6e2da6508fcd07c31e47a4246babd21782147c83..b28dc590c198cb79fd3778dbb4b4d464e96046d5 100644 (file)
       </enum>
     </mode>
     <mode name='host-model' supported='yes'>
-      <model fallback='forbid'>EPYC-IBPB</model>
+      <model fallback='forbid'>EPYC-Rome</model>
       <vendor>AMD</vendor>
       <feature policy='require' name='x2apic'/>
       <feature policy='require' name='tsc-deadline'/>
       <feature policy='require' name='hypervisor'/>
       <feature policy='require' name='tsc_adjust'/>
-      <feature policy='require' name='clwb'/>
-      <feature policy='require' name='umip'/>
-      <feature policy='require' name='rdpid'/>
       <feature policy='require' name='stibp'/>
       <feature policy='require' name='arch-capabilities'/>
       <feature policy='require' name='ssbd'/>
       <feature policy='require' name='xsaves'/>
       <feature policy='require' name='cmp_legacy'/>
-      <feature policy='require' name='perfctr_core'/>
       <feature policy='require' name='invtsc'/>
-      <feature policy='require' name='clzero'/>
-      <feature policy='require' name='xsaveerptr'/>
-      <feature policy='require' name='wbnoinvd'/>
-      <feature policy='require' name='amd-stibp'/>
       <feature policy='require' name='amd-ssbd'/>
       <feature policy='require' name='virt-ssbd'/>
-      <feature policy='require' name='npt'/>
-      <feature policy='require' name='nrip-save'/>
       <feature policy='require' name='rdctl-no'/>
       <feature policy='require' name='skip-l1dfl-vmentry'/>
       <feature policy='require' name='mds-no'/>
       <model usable='no'>Haswell-noTSX</model>
       <model usable='no'>Haswell-IBRS</model>
       <model usable='no'>Haswell</model>
+      <model usable='yes'>EPYC-Rome</model>
       <model usable='yes'>EPYC-IBPB</model>
       <model usable='yes'>EPYC</model>
       <model usable='yes'>Dhyana</model>