On 12/15/23 15:12, Jonathon Jongsma wrote:
Signed-off-by: Jonathon Jongsma <jjongsma(a)redhat.com>
---
src/cpu_map/index.xml | 6 +
src/cpu_map/meson.build | 6 +
src/cpu_map/x86_EPYC-Milan-v2.xml | 108 ++++++++++++++++++
src/cpu_map/x86_EPYC-Rome-v2.xml | 93 +++++++++++++++
src/cpu_map/x86_EPYC-Rome-v3.xml | 95 +++++++++++++++
src/cpu_map/x86_EPYC-Rome-v4.xml | 94 +++++++++++++++
src/cpu_map/x86_EPYC-v3.xml | 87 ++++++++++++++
src/cpu_map/x86_EPYC-v4.xml | 88 ++++++++++++++
.../x86_64-cpuid-EPYC-7502-32-Core-host.xml | 5 +-
.../x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 9 +-
...6_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml | 8 +-
...4-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 9 +-
.../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 +
.../domaincapsdata/qemu_5.2.0-q35.x86_64.xml | 1 +
.../domaincapsdata/qemu_5.2.0-tcg.x86_64.xml | 1 +
tests/domaincapsdata/qemu_5.2.0.x86_64.xml | 1 +
.../domaincapsdata/qemu_6.0.0-q35.x86_64.xml | 2 +
.../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 2 +
tests/domaincapsdata/qemu_6.0.0.x86_64.xml | 2 +
.../domaincapsdata/qemu_6.1.0-q35.x86_64.xml | 2 +
.../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 2 +
tests/domaincapsdata/qemu_6.1.0.x86_64.xml | 2 +
.../domaincapsdata/qemu_6.2.0-q35.x86_64.xml | 2 +
.../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 2 +
tests/domaincapsdata/qemu_6.2.0.x86_64.xml | 2 +
.../domaincapsdata/qemu_7.0.0-q35.x86_64.xml | 2 +
.../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 2 +
tests/domaincapsdata/qemu_7.0.0.x86_64.xml | 2 +
.../domaincapsdata/qemu_7.1.0-q35.x86_64.xml | 2 +
.../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 2 +
tests/domaincapsdata/qemu_7.1.0.x86_64.xml | 2 +
.../domaincapsdata/qemu_7.2.0-q35.x86_64.xml | 2 +
.../qemu_7.2.0-tcg.x86_64+hvf.xml | 2 +
.../domaincapsdata/qemu_7.2.0-tcg.x86_64.xml | 2 +
tests/domaincapsdata/qemu_7.2.0.x86_64.xml | 2 +
.../domaincapsdata/qemu_8.0.0-q35.x86_64.xml | 2 +
.../domaincapsdata/qemu_8.0.0-tcg.x86_64.xml | 2 +
tests/domaincapsdata/qemu_8.0.0.x86_64.xml | 2 +
.../domaincapsdata/qemu_8.1.0-q35.x86_64.xml | 11 +-
.../domaincapsdata/qemu_8.1.0-tcg.x86_64.xml | 6 +
tests/domaincapsdata/qemu_8.1.0.x86_64.xml | 11 +-
.../domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 11 +-
.../domaincapsdata/qemu_8.2.0-tcg.x86_64.xml | 6 +
tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 11 +-
...-host-model-fallback-kvm.x86_64-8.1.0.args | 2 +-
...host-model-fallback-kvm.x86_64-latest.args | 2 +-
.../cpu-host-model-kvm.x86_64-8.1.0.args | 2 +-
.../cpu-host-model-kvm.x86_64-latest.args | 2 +-
...ost-model-nofallback-kvm.x86_64-8.1.0.args | 2 +-
...st-model-nofallback-kvm.x86_64-latest.args | 2 +-
55 files changed, 686 insertions(+), 43 deletions(-)
create mode 100644 src/cpu_map/x86_EPYC-Milan-v2.xml
create mode 100644 src/cpu_map/x86_EPYC-Rome-v2.xml
create mode 100644 src/cpu_map/x86_EPYC-Rome-v3.xml
create mode 100644 src/cpu_map/x86_EPYC-Rome-v4.xml
create mode 100644 src/cpu_map/x86_EPYC-v3.xml
create mode 100644 src/cpu_map/x86_EPYC-v4.xml
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index d2c5af5797..861edc3bb7 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -67,9 +67,15 @@
<include filename='x86_Opteron_G4.xml'/>
<include filename='x86_Opteron_G5.xml'/>
<include filename='x86_EPYC.xml'/>
+ <include filename='x86_EPYC-v3.xml'/>
+ <include filename='x86_EPYC-v4.xml'/>
<include filename='x86_EPYC-IBPB.xml'/>
<include filename='x86_EPYC-Rome.xml'/>
+ <include filename='x86_EPYC-Rome-v2.xml'/>
+ <include filename='x86_EPYC-Rome-v3.xml'/>
+ <include filename='x86_EPYC-Rome-v4.xml'/>
<include filename='x86_EPYC-Milan.xml'/>
+ <include filename='x86_EPYC-Milan-v2.xml'/>
<include filename='x86_EPYC-Genoa.xml'/>
<!-- Hygon CPU models -->
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index ae5293e85f..68e093e041 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -39,8 +39,14 @@ cpumap_data = [
'x86_Dhyana.xml',
'x86_EPYC-IBPB.xml',
'x86_EPYC.xml',
+ 'x86_EPYC-v3.xml',
+ 'x86_EPYC-v4.xml',
'x86_EPYC-Genoa.xml',
+ 'x86_EPYC-Milan-v2.xml',
'x86_EPYC-Milan.xml',
+ 'x86_EPYC-Rome-v2.xml',
+ 'x86_EPYC-Rome-v3.xml',
+ 'x86_EPYC-Rome-v4.xml',
'x86_EPYC-Rome.xml',
'x86_features.xml',
'x86_Haswell-IBRS.xml',
diff --git a/src/cpu_map/x86_EPYC-Milan-v2.xml b/src/cpu_map/x86_EPYC-Milan-v2.xml
new file mode 100644
index 0000000000..4cadba2325
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-Milan-v2.xml
@@ -0,0 +1,108 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '1'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC-Milan Processor'
+ 'model.cache_info': '&epyc_milan_cache_info'
+ 'property.model-id': 'AMD EPYC-Milan-v2 Processor'
+ 'version.cache_info': '&epyc_milan_v2_cache_info'
+-->
None of the existing files include this comment.
+<cpus>
+ <model name='EPYC-Milan-v2'>
+ <decode host='on' guest='on'/>
+ <signature family='25' model='1'/>
+ <vendor name='AMD'/>
+ <feature name='3dnowprefetch'/>
+ <feature name='abm'/>
+ <feature name='adx'/>
+ <feature name='aes'/>
+ <feature name='amd-psfd'/>
+ <feature name='amd-ssbd'/>
+ <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='erms'/>
+ <feature name='f16c'/>
+ <feature name='fma'/>
+ <feature name='fpu'/>
+ <feature name='fsgsbase'/>
+ <feature name='fsrm'/>
+ <feature name='fxsr'/>
+ <feature name='fxsr_opt'/>
+ <feature name='ibpb'/>
+ <feature name='ibrs'/>
+ <feature name='invpcid'/>
+ <feature name='lahf_lm'/>
+ <feature name='lfence-always-serializing'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mce'/>
+ <feature name='misalignsse'/>
+ <feature name='mmx'/>
+ <feature name='mmxext'/>
+ <feature name='movbe'/>
+ <feature name='msr'/>
+ <feature name='mtrr'/>
+ <feature name='no-nested-data-bp'/>
+ <feature name='npt'/>
+ <feature name='nrip-save'/>
+ <feature name='null-sel-clr-base'/>
+ <feature name='nx'/>
+ <feature name='osvw'/>
+ <feature name='pae'/>
+ <feature name='pat'/>
+ <feature name='pcid'/>
+ <feature name='pclmuldq'/>
+ <feature name='pdpe1gb'/>
+ <feature name='perfctr_core'/>
+ <feature name='pge'/>
+ <feature name='pku'/>
+ <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='stibp-always-on'/>
+ <feature name='svm'/>
+ <feature name='svme-addr-chk'/>
+ <feature name='syscall'/>
+ <feature name='tsc'/>
+ <feature name='umip'/>
+ <feature name='vaes'/>
+ <feature name='vme'/>
+ <feature name='vpclmulqdq'/>
+ <feature name='wbnoinvd'/>
+ <feature name='xgetbv1'/>
+ <feature name='xsave'/>
+ <feature name='xsavec'/>
+ <feature name='xsaveerptr'/>
+ <feature name='xsaveopt'/>
+ <feature name='xsaves'/>
+ </model>
+</cpus>
diff --git a/src/cpu_map/x86_EPYC-Rome-v2.xml b/src/cpu_map/x86_EPYC-Rome-v2.xml
new file mode 100644
index 0000000000..0cade90cdc
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-Rome-v2.xml
@@ -0,0 +1,93 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC-Rome Processor'
+ 'model.cache_info': '&epyc_rome_cache_info'
+-->
+<cpus>
+ <model name='EPYC-Rome-v2'>
+ <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-ssbd'/>
+ <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='ibrs'/>
+ <feature name='lahf_lm'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mce'/>
+ <feature name='misalignsse'/>
+ <feature name='mmx'/>
+ <feature name='mmxext'/>
+ <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'/>
+ <feature name='xsaves'/>
sync_qemu_models_i386.py also includes the xsaves feature in the
x86_EPYC-Rome.xml file it produces, yet we don't include xsaves in the file
commited to git. How do we determine which features to filter from the
script-produced file? E.g. should xsaves be dropped from this file?
Regards,
Jim
+ </model>
+</cpus>
diff --git a/src/cpu_map/x86_EPYC-Rome-v3.xml b/src/cpu_map/x86_EPYC-Rome-v3.xml
new file mode 100644
index 0000000000..6b8f07c7f2
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-Rome-v3.xml
@@ -0,0 +1,95 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC-Rome Processor'
+ 'model.cache_info': '&epyc_rome_cache_info'
+ 'property.model-id': 'AMD EPYC-Rome-v3 Processor'
+ 'version.cache_info': '&epyc_rome_v3_cache_info'
+-->
+<cpus>
+ <model name='EPYC-Rome-v3'>
+ <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-ssbd'/>
+ <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='ibrs'/>
+ <feature name='lahf_lm'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mce'/>
+ <feature name='misalignsse'/>
+ <feature name='mmx'/>
+ <feature name='mmxext'/>
+ <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'/>
+ <feature name='xsaves'/>
+ </model>
+</cpus>
diff --git a/src/cpu_map/x86_EPYC-Rome-v4.xml b/src/cpu_map/x86_EPYC-Rome-v4.xml
new file mode 100644
index 0000000000..e69f910e56
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-Rome-v4.xml
@@ -0,0 +1,94 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '0'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC-Rome Processor'
+ 'model.cache_info': '&epyc_rome_cache_info'
+ 'property.model-id': 'AMD EPYC-Rome-v4 Processor (no XSAVES)'
+ 'version.cache_info': '&epyc_rome_v3_cache_info'
+-->
+<cpus>
+ <model name='EPYC-Rome-v4'>
+ <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-ssbd'/>
+ <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='ibrs'/>
+ <feature name='lahf_lm'/>
+ <feature name='lm'/>
+ <feature name='mca'/>
+ <feature name='mce'/>
+ <feature name='misalignsse'/>
+ <feature name='mmx'/>
+ <feature name='mmxext'/>
+ <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>
diff --git a/src/cpu_map/x86_EPYC-v3.xml b/src/cpu_map/x86_EPYC-v3.xml
new file mode 100644
index 0000000000..fb587218c7
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-v3.xml
@@ -0,0 +1,87 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC Processor'
+ 'model.cache_info': '&epyc_cache_info'
+ 'property.model-id': 'AMD EPYC Processor'
+-->
+<cpus>
+ <model name='EPYC-v3'>
+ <decode host='on' guest='on'/>
+ <signature family='23' model='1'/>
+ <vendor name='AMD'/>
+ <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='bmi1'/>
+ <feature name='bmi2'/>
+ <feature name='clflush'/>
+ <feature name='clflushopt'/>
+ <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='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='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='vme'/>
+ <feature name='xgetbv1'/>
+ <feature name='xsave'/>
+ <feature name='xsavec'/>
+ <feature name='xsaveerptr'/>
+ <feature name='xsaveopt'/>
+ <feature name='xsaves'/>
+ </model>
+</cpus>
diff --git a/src/cpu_map/x86_EPYC-v4.xml b/src/cpu_map/x86_EPYC-v4.xml
new file mode 100644
index 0000000000..e714d9e622
--- /dev/null
+++ b/src/cpu_map/x86_EPYC-v4.xml
@@ -0,0 +1,88 @@
+<!-- extra info from qemu:
+ 'model.level': '0xd'
+ 'model.stepping': '2'
+ 'model.xlevel': '0x8000001E'
+ 'model.model_id': 'AMD EPYC Processor'
+ 'model.cache_info': '&epyc_cache_info'
+ 'property.model-id': 'AMD EPYC-v4 Processor'
+ 'version.cache_info': '&epyc_v4_cache_info'
+-->
+<cpus>
+ <model name='EPYC-v4'>
+ <decode host='on' guest='on'/>
+ <signature family='23' model='1'/>
+ <vendor name='AMD'/>
+ <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='bmi1'/>
+ <feature name='bmi2'/>
+ <feature name='clflush'/>
+ <feature name='clflushopt'/>
+ <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='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='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='vme'/>
+ <feature name='xgetbv1'/>
+ <feature name='xsave'/>
+ <feature name='xsavec'/>
+ <feature name='xsaveerptr'/>
+ <feature name='xsaveopt'/>
+ <feature name='xsaves'/>
+ </model>
+</cpus>
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
index e348e0f6f6..c9ad653497 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml
@@ -1,13 +1,12 @@
<cpu>
<arch>x86_64</arch>
- <model>EPYC-Rome</model>
+ <model>EPYC-Rome-v3</model>
<vendor>AMD</vendor>
<signature family='23' model='49' stepping='0'/>
<feature name='ht'/>
<feature name='monitor'/>
<feature name='osxsave'/>
<feature name='cmt'/>
- <feature name='xsaves'/>
<feature name='mbm_total'/>
<feature name='mbm_local'/>
<feature name='cmp_legacy'/>
@@ -19,8 +18,6 @@
<feature name='topoext'/>
<feature name='perfctr_nb'/>
<feature name='invtsc'/>
- <feature name='ibrs'/>
- <feature name='amd-ssbd'/>
<feature name='lbrv'/>
<feature name='svm-lock'/>
<feature name='tsc-scale'/>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
index 486b41815d..f3e5164efc 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml
@@ -1,25 +1,19 @@
<cpu mode='custom' match='exact'>
- <model fallback='forbid'>EPYC</model>
+ <model fallback='forbid'>EPYC-v4</model>
<vendor>AMD</vendor>
<feature policy='require' name='ht'/>
<feature policy='require' name='monitor'/>
<feature policy='require' name='osxsave'/>
- <feature policy='require' name='xsaves'/>
<feature policy='require' name='cmp_legacy'/>
<feature policy='require' name='extapic'/>
<feature policy='require' name='skinit'/>
<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='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'/>
@@ -29,4 +23,5 @@
<feature policy='require' name='avic'/>
<feature policy='require' name='v-vmsave-vmload'/>
<feature policy='require' name='vgif'/>
+ <feature policy='disable' name='ibpb'/>
</cpu>
diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
index 42b8b5f986..1a6ecf839e 100644
--- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
+++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml
@@ -1,27 +1,21 @@
<cpu>
<arch>x86_64</arch>
- <model>EPYC-IBPB</model>
+ <model>EPYC-v4</model>
<vendor>AMD</vendor>
<signature family='23' model='1' stepping='2'/>
<feature name='ht'/>
<feature name='monitor'/>
<feature name='osxsave'/>
- <feature name='xsaves'/>
<feature name='cmp_legacy'/>
<feature name='extapic'/>
<feature name='skinit'/>
<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='npt'/>
<feature name='lbrv'/>
<feature name='svm-lock'/>
- <feature name='nrip-save'/>
<feature name='tsc-scale'/>
<feature name='vmcb-clean'/>
<feature name='flushbyasid'/>
diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
index 486b41815d..f3e5164efc 100644
--- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
+++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml
@@ -1,25 +1,19 @@
<cpu mode='custom' match='exact'>
- <model fallback='forbid'>EPYC</model>
+ <model fallback='forbid'>EPYC-v4</model>
<vendor>AMD</vendor>
<feature policy='require' name='ht'/>
<feature policy='require' name='monitor'/>
<feature policy='require' name='osxsave'/>
- <feature policy='require' name='xsaves'/>
<feature policy='require' name='cmp_legacy'/>
<feature policy='require' name='extapic'/>
<feature policy='require' name='skinit'/>
<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='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'/>
@@ -29,4 +23,5 @@
<feature policy='require' name='avic'/>
<feature policy='require' name='v-vmsave-vmload'/>
<feature policy='require' name='vgif'/>
+ <feature policy='disable' name='ibpb'/>
</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 1d29a40f74..60f65fdffe 100644
--- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml
@@ -170,6 +170,7 @@
<model usable='yes'
vendor='Intel'>Haswell-noTSX</model>
<model usable='yes'
vendor='Intel'>Haswell-IBRS</model>
<model usable='yes' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC</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 7b7420ff8e..01906a6277 100644
--- a/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0-tcg.x86_64.xml
@@ -115,6 +115,7 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC</model>
diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
index f3b3adb19e..12a5d8f66e 100644
--- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml
@@ -169,6 +169,7 @@
<model usable='yes'
vendor='Intel'>Haswell-noTSX</model>
<model usable='yes'
vendor='Intel'>Haswell-IBRS</model>
<model usable='yes' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC</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 2a8a784813..88291c60de 100644
--- a/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-q35.x86_64.xml
@@ -103,6 +103,7 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
<model usable='yes' vendor='AMD'>EPYC</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 272d9bed08..a2bce1003a 100644
--- a/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0-tcg.x86_64.xml
@@ -115,6 +115,7 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC</model>
diff --git a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
index 735cd42466..954025cb33 100644
--- a/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.1.0.x86_64.xml
@@ -102,6 +102,7 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
<model usable='yes' vendor='AMD'>EPYC</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
index 968cfe68e8..66753cef10 100644
--- a/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-q35.x86_64.xml
@@ -103,6 +103,7 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
<model usable='yes' vendor='AMD'>EPYC</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
index 526f39254e..af223af1b8 100644
--- a/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0-tcg.x86_64.xml
@@ -115,6 +115,7 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC</model>
diff --git a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
index 9bbb22b0d8..195d523fa7 100644
--- a/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_5.2.0.x86_64.xml
@@ -102,6 +102,7 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
<model usable='yes' vendor='AMD'>EPYC</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
index 66da296d8e..a96f1e23fd 100644
--- a/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-q35.x86_64.xml
@@ -103,6 +103,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
index 0ffd95aee6..1a00383168 100644
--- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml
@@ -116,6 +116,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
index 0af8b9d064..e21b8dc2df 100644
--- a/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.0.0.x86_64.xml
@@ -102,6 +102,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
index cc2081955d..bfecc6ffe0 100644
--- a/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-q35.x86_64.xml
@@ -104,6 +104,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
index a80c86df4f..5762bc0b90 100644
--- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml
@@ -116,6 +116,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
index 22f8c8a397..ef3ab32795 100644
--- a/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.1.0.x86_64.xml
@@ -103,6 +103,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
index 782aa792a9..850762a81b 100644
--- a/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-q35.x86_64.xml
@@ -104,6 +104,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
index 7ed62fb522..f90c826e27 100644
--- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml
@@ -118,6 +118,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
index e6283ff153..77feb230c9 100644
--- a/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_6.2.0.x86_64.xml
@@ -103,6 +103,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
index 50b2ee2ffe..587843dc95 100644
--- a/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-q35.x86_64.xml
@@ -105,6 +105,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
index 3a71b54847..7ef5615473 100644
--- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml
@@ -119,6 +119,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
index fa4b912168..1fbfdc229d 100644
--- a/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.0.0.x86_64.xml
@@ -104,6 +104,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
index 2eec2e3162..8247daf1da 100644
--- a/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-q35.x86_64.xml
@@ -104,6 +104,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
index 1ae2a7c342..df0d5c1b86 100644
--- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml
@@ -117,6 +117,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
index 449e1b51d1..197e088d32 100644
--- a/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.1.0.x86_64.xml
@@ -103,6 +103,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
index e48a07da28..0e06734522 100644
--- a/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-q35.x86_64.xml
@@ -109,6 +109,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
index 69b6be7616..841b640c15 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64+hvf.xml
@@ -106,6 +106,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
index 69b6be7616..841b640c15 100644
--- a/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0-tcg.x86_64.xml
@@ -106,6 +106,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
index d116cf2e48..9cafaf2f0f 100644
--- a/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_7.2.0.x86_64.xml
@@ -108,6 +108,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
index 2815064abc..564546cf41 100644
--- a/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-q35.x86_64.xml
@@ -110,6 +110,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
index efb5fcb99d..58ce3d8d69 100644
--- a/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0-tcg.x86_64.xml
@@ -111,6 +111,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
index 07d1d06115..eb5897671c 100644
--- a/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.0.0.x86_64.xml
@@ -109,6 +109,8 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='yes' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='yes' vendor='AMD'>EPYC-Rome</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
index 4d438efdf7..d865028850 100644
--- a/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-q35.x86_64.xml
@@ -41,7 +41,7 @@
</enum>
</mode>
<mode name='host-model' supported='yes'>
- <model fallback='forbid'>EPYC-Rome</model>
+ <model fallback='forbid'>EPYC-Rome-v4</model>
<vendor>AMD</vendor>
<maxphysaddr mode='passthrough' limit='64'/>
<feature policy='require' name='x2apic'/>
@@ -53,7 +53,6 @@
<feature policy='require' name='ssbd'/>
<feature policy='require' name='cmp_legacy'/>
<feature policy='require' name='invtsc'/>
- <feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='virt-ssbd'/>
<feature policy='require' name='lbrv'/>
<feature policy='require' name='tsc-scale'/>
@@ -69,7 +68,7 @@
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
- <feature policy='disable' name='xsaves'/>
+ <feature policy='disable' name='ibrs'/>
</mode>
<mode name='custom' supported='yes'>
<model usable='yes' vendor='unknown'>qemu64</model>
@@ -112,7 +111,13 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v2</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC-Genoa</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
index e32cd80c17..192fa20c72 100644
--- a/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0-tcg.x86_64.xml
@@ -112,7 +112,13 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v2</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC-Genoa</model>
diff --git a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
index 919357e577..51cba16a35 100644
--- a/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.1.0.x86_64.xml
@@ -40,7 +40,7 @@
</enum>
</mode>
<mode name='host-model' supported='yes'>
- <model fallback='forbid'>EPYC-Rome</model>
+ <model fallback='forbid'>EPYC-Rome-v4</model>
<vendor>AMD</vendor>
<maxphysaddr mode='passthrough' limit='64'/>
<feature policy='require' name='x2apic'/>
@@ -52,7 +52,6 @@
<feature policy='require' name='ssbd'/>
<feature policy='require' name='cmp_legacy'/>
<feature policy='require' name='invtsc'/>
- <feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='virt-ssbd'/>
<feature policy='require' name='lbrv'/>
<feature policy='require' name='tsc-scale'/>
@@ -68,7 +67,7 @@
<feature policy='require' name='skip-l1dfl-vmentry'/>
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
- <feature policy='disable' name='xsaves'/>
+ <feature policy='disable' name='ibrs'/>
</mode>
<mode name='custom' supported='yes'>
<model usable='yes' vendor='unknown'>qemu64</model>
@@ -111,7 +110,13 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v2</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC-Genoa</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
index f711a51044..f24fe4789e 100644
--- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml
@@ -41,7 +41,7 @@
</enum>
</mode>
<mode name='host-model' supported='yes'>
- <model fallback='forbid'>EPYC-Rome</model>
+ <model fallback='forbid'>EPYC-Rome-v4</model>
<vendor>AMD</vendor>
<maxphysaddr mode='passthrough' limit='64'/>
<feature policy='require' name='x2apic'/>
@@ -53,7 +53,6 @@
<feature policy='require' name='ssbd'/>
<feature policy='require' name='cmp_legacy'/>
<feature policy='require' name='invtsc'/>
- <feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='virt-ssbd'/>
<feature policy='require' name='lbrv'/>
<feature policy='require' name='tsc-scale'/>
@@ -70,7 +69,7 @@
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
<feature policy='require' name='gds-no'/>
- <feature policy='disable' name='xsaves'/>
+ <feature policy='disable' name='ibrs'/>
</mode>
<mode name='custom' supported='yes'>
<model usable='yes' vendor='unknown'>qemu64</model>
@@ -113,7 +112,13 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v2</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC-Genoa</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
index 784a29acd9..1945ec6561 100644
--- a/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0-tcg.x86_64.xml
@@ -111,7 +111,13 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v2</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='no' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC-Genoa</model>
diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
index bc060e21b6..2252f8f05e 100644
--- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
+++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml
@@ -40,7 +40,7 @@
</enum>
</mode>
<mode name='host-model' supported='yes'>
- <model fallback='forbid'>EPYC-Rome</model>
+ <model fallback='forbid'>EPYC-Rome-v4</model>
<vendor>AMD</vendor>
<maxphysaddr mode='passthrough' limit='64'/>
<feature policy='require' name='x2apic'/>
@@ -52,7 +52,6 @@
<feature policy='require' name='ssbd'/>
<feature policy='require' name='cmp_legacy'/>
<feature policy='require' name='invtsc'/>
- <feature policy='require' name='amd-ssbd'/>
<feature policy='require' name='virt-ssbd'/>
<feature policy='require' name='lbrv'/>
<feature policy='require' name='tsc-scale'/>
@@ -69,7 +68,7 @@
<feature policy='require' name='mds-no'/>
<feature policy='require' name='pschange-mc-no'/>
<feature policy='require' name='gds-no'/>
- <feature policy='disable' name='xsaves'/>
+ <feature policy='disable' name='ibrs'/>
</mode>
<mode name='custom' supported='yes'>
<model usable='yes' vendor='unknown'>qemu64</model>
@@ -112,7 +111,13 @@
<model usable='no'
vendor='Intel'>Haswell-noTSX</model>
<model usable='no'
vendor='Intel'>Haswell-IBRS</model>
<model usable='no' vendor='Intel'>Haswell</model>
+ <model usable='no' vendor='AMD'>EPYC-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v4</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v3</model>
+ <model usable='no' vendor='AMD'>EPYC-Rome-v2</model>
<model usable='no' vendor='AMD'>EPYC-Rome</model>
+ <model usable='no' vendor='AMD'>EPYC-Milan-v2</model>
<model usable='no' vendor='AMD'>EPYC-Milan</model>
<model usable='yes' vendor='AMD'>EPYC-IBPB</model>
<model usable='no' vendor='AMD'>EPYC-Genoa</model>
diff --git a/tests/qemuxml2argvdata/cpu-host-model-fallback-kvm.x86_64-8.1.0.args
b/tests/qemuxml2argvdata/cpu-host-model-fallback-kvm.x86_64-8.1.0.args
index 45ff38ebef..ebc6ca5403 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-fallback-kvm.x86_64-8.1.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-fallback-kvm.x86_64-8.1.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object
'{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}'
\
-machine pc-i440fx-8.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu
EPYC-Rome-v1,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off
\
+-cpu
EPYC-Rome-v4,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,ibrs=off
\
-m size=219136k \
-object
'{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'
\
-overcommit mem-lock=off \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-fallback-kvm.x86_64-latest.args
b/tests/qemuxml2argvdata/cpu-host-model-fallback-kvm.x86_64-latest.args
index 30cb821759..38badeabe8 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-fallback-kvm.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-fallback-kvm.x86_64-latest.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object
'{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}'
\
-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu
EPYC-Rome-v1,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off
\
+-cpu
EPYC-Rome-v4,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,ibrs=off
\
-m size=219136k \
-object
'{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'
\
-overcommit mem-lock=off \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-kvm.x86_64-8.1.0.args
b/tests/qemuxml2argvdata/cpu-host-model-kvm.x86_64-8.1.0.args
index df2987a98c..24d88b98de 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-kvm.x86_64-8.1.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-kvm.x86_64-8.1.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object
'{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}'
\
-machine pc-q35-8.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu
EPYC-Rome-v1,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off
\
+-cpu
EPYC-Rome-v4,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,ibrs=off
\
-m size=219136k \
-object
'{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'
\
-overcommit mem-lock=off \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-kvm.x86_64-latest.args
b/tests/qemuxml2argvdata/cpu-host-model-kvm.x86_64-latest.args
index 3fc229d8ae..2a114a28d5 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-kvm.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-kvm.x86_64-latest.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object
'{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}'
\
-machine q35,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu
EPYC-Rome-v1,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off
\
+-cpu
EPYC-Rome-v4,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,ibrs=off
\
-m size=219136k \
-object
'{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'
\
-overcommit mem-lock=off \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-nofallback-kvm.x86_64-8.1.0.args
b/tests/qemuxml2argvdata/cpu-host-model-nofallback-kvm.x86_64-8.1.0.args
index 45ff38ebef..ebc6ca5403 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-nofallback-kvm.x86_64-8.1.0.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-nofallback-kvm.x86_64-8.1.0.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object
'{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}'
\
-machine pc-i440fx-8.1,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu
EPYC-Rome-v1,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off
\
+-cpu
EPYC-Rome-v4,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,ibrs=off
\
-m size=219136k \
-object
'{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'
\
-overcommit mem-lock=off \
diff --git a/tests/qemuxml2argvdata/cpu-host-model-nofallback-kvm.x86_64-latest.args
b/tests/qemuxml2argvdata/cpu-host-model-nofallback-kvm.x86_64-latest.args
index 30cb821759..38badeabe8 100644
--- a/tests/qemuxml2argvdata/cpu-host-model-nofallback-kvm.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/cpu-host-model-nofallback-kvm.x86_64-latest.args
@@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \
-object
'{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}'
\
-machine pc,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \
-accel kvm \
--cpu
EPYC-Rome-v1,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off
\
+-cpu
EPYC-Rome-v4,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,ibrs=off
\
-m size=219136k \
-object
'{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}'
\
-overcommit mem-lock=off \