On 2/20/24 6:28 PM, Jim Fehlig wrote:
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.
Yeah, I debated whether to leave them in or not. But I decided to
include them and see what other people think. In general I find it nicer
to not manually modify generated files if possible.
> +<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?
I have to admit that I don't know why it does not exist in the base
EPYC-Rome definition. The sync_qemu_models_i386.py script was not around
when these CPU models were originally added to libvirt, perhaps it just
got missed? But I obviously did not want to change any existing cpu
model definitions. I chose to include it in the newly-added models since
that seemed to be a more accurate reflection of the qemu CPU model
definition. If somebody has insight into why it doesn't exist in the
base EPYC-Rome definition, I'd also like to know.
Thanks,
Jonathon
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 \