From: Jiri Denemark <jdenemar@redhat.com> Signed-off-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/index.xml | 1 + src/cpu_map/meson.build | 1 + src/cpu_map/x86_EPYC-Milan-v3.xml | 109 ++++++++++++++++++ .../x86_64-cpuid-EPYC-7713-64-Core-host.xml | 12 +- .../qemu_10.1.0-q35.x86_64+inteltdx.xml | 17 +++ .../domaincapsdata/qemu_10.1.0-q35.x86_64.xml | 15 +++ .../qemu_10.1.0-tcg.x86_64+inteltdx.xml | 31 +++++ .../domaincapsdata/qemu_10.1.0-tcg.x86_64.xml | 31 +++++ .../qemu_10.1.0.x86_64+inteltdx.xml | 17 +++ tests/domaincapsdata/qemu_10.1.0.x86_64.xml | 15 +++ .../domaincapsdata/qemu_10.2.0-q35.x86_64.xml | 4 + .../domaincapsdata/qemu_10.2.0-tcg.x86_64.xml | 31 +++++ tests/domaincapsdata/qemu_10.2.0.x86_64.xml | 4 + 13 files changed, 277 insertions(+), 11 deletions(-) create mode 100644 src/cpu_map/x86_EPYC-Milan-v3.xml diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml index 00275d0196..e73e5d5ae8 100644 --- a/src/cpu_map/index.xml +++ b/src/cpu_map/index.xml @@ -169,6 +169,7 @@ <include filename='x86_EPYC-Milan.xml'/> <include filename='x86_EPYC-Milan-v1.xml'/> <include filename='x86_EPYC-Milan-v2.xml'/> + <include filename='x86_EPYC-Milan-v3.xml'/> <include filename='x86_EPYC-Genoa.xml'/> <include filename='x86_EPYC-Genoa-v1.xml'/> <include filename='x86_EPYC-Genoa-v2.xml'/> diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build index 12b50aa7f2..34b7bfac36 100644 --- a/src/cpu_map/meson.build +++ b/src/cpu_map/meson.build @@ -70,6 +70,7 @@ cpumap_data = [ 'x86_EPYC-IBPB.xml', 'x86_EPYC-Milan-v1.xml', 'x86_EPYC-Milan-v2.xml', + 'x86_EPYC-Milan-v3.xml', 'x86_EPYC-Milan.xml', 'x86_EPYC-Rome-v1.xml', 'x86_EPYC-Rome-v2.xml', diff --git a/src/cpu_map/x86_EPYC-Milan-v3.xml b/src/cpu_map/x86_EPYC-Milan-v3.xml new file mode 100644 index 0000000000..53ae589b95 --- /dev/null +++ b/src/cpu_map/x86_EPYC-Milan-v3.xml @@ -0,0 +1,109 @@ +<cpus> + <model name='EPYC-Milan-v3'> + <decode host='on' guest='off'/> + <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='flushbyasid'/> + <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='lbrv'/> + <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='overflow-recov'/> + <feature name='pae'/> + <feature name='pat'/> + <feature name='pause-filter'/> + <feature name='pcid'/> + <feature name='pclmuldq'/> + <feature name='pdpe1gb'/> + <feature name='perfctr_core'/> + <feature name='pfthreshold'/> + <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='succor'/> + <feature name='svm'/> + <feature name='svme-addr-chk'/> + <feature name='syscall'/> + <feature name='tsc'/> + <feature name='tsc-scale'/> + <feature name='umip'/> + <feature name='v-vmsave-vmload'/> + <feature name='vaes'/> + <feature name='vgif'/> + <feature name='vmcb-clean'/> + <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/tests/cputestdata/x86_64-cpuid-EPYC-7713-64-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7713-64-Core-host.xml index 5a8e9aaf07..8701cd41ba 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7713-64-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7713-64-Core-host.xml @@ -1,6 +1,6 @@ <cpu> <arch>x86_64</arch> - <model>EPYC-Milan-v2</model> + <model>EPYC-Milan-v3</model> <vendor>AMD</vendor> <signature family='25' model='1' stepping='1'/> <feature name='monitor'/> @@ -19,19 +19,9 @@ <feature name='tce'/> <feature name='topoext'/> <feature name='perfctr_nb'/> - <feature name='overflow-recov'/> - <feature name='succor'/> <feature name='invtsc'/> - <feature name='lbrv'/> <feature name='svm-lock'/> - <feature name='tsc-scale'/> - <feature name='vmcb-clean'/> - <feature name='flushbyasid'/> <feature name='decodeassists'/> - <feature name='pause-filter'/> - <feature name='pfthreshold'/> - <feature name='v-vmsave-vmload'/> - <feature name='vgif'/> <feature name='rdctl-no'/> <feature name='skip-l1dfl-vmentry'/> <feature name='mds-no'/> diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml index 578d2fe90a..ffee527ff4 100644 --- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64+inteltdx.xml @@ -298,6 +298,23 @@ <feature name='stibp-always-on'/> <feature name='xsaveerptr'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='amd-psfd'/> + <feature name='clzero'/> + <feature name='cr8legacy'/> + <feature name='fxsr_opt'/> + <feature name='lfence-always-serializing'/> + <feature name='misalignsse'/> + <feature name='mmxext'/> + <feature name='no-nested-data-bp'/> + <feature name='null-sel-clr-base'/> + <feature name='osvw'/> + <feature name='perfctr_core'/> + <feature name='sse4a'/> + <feature name='stibp-always-on'/> + <feature name='xsaveerptr'/> + </blockers> <model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <blockers model='EPYC-Rome'> <feature name='clzero'/> diff --git a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml index b71ea9ba49..b5d745c4ec 100644 --- a/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0-q35.x86_64.xml @@ -561,6 +561,21 @@ <feature name='vpclmulqdq'/> <feature name='xsaves'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='amd-psfd'/> + <feature name='erms'/> + <feature name='fsrm'/> + <feature name='ibrs'/> + <feature name='invpcid'/> + <feature name='no-nested-data-bp'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='stibp-always-on'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + <feature name='xsaves'/> + </blockers> <model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <blockers model='EPYC-Rome'> <feature name='xsaves'/> diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml index e5513ea072..2d40cf5228 100644 --- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64+inteltdx.xml @@ -650,6 +650,37 @@ <feature name='xsavec'/> <feature name='xsaves'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='amd-psfd'/> + <feature name='amd-ssbd'/> + <feature name='amd-stibp'/> + <feature name='clzero'/> + <feature name='flushbyasid'/> + <feature name='fxsr_opt'/> + <feature name='ibpb'/> + <feature name='ibrs'/> + <feature name='invpcid'/> + <feature name='lbrv'/> + <feature name='lfence-always-serializing'/> + <feature name='misalignsse'/> + <feature name='nrip-save'/> + <feature name='osvw'/> + <feature name='overflow-recov'/> + <feature name='pause-filter'/> + <feature name='pcid'/> + <feature name='perfctr_core'/> + <feature name='pfthreshold'/> + <feature name='stibp-always-on'/> + <feature name='succor'/> + <feature name='topoext'/> + <feature name='tsc-scale'/> + <feature name='v-vmsave-vmload'/> + <feature name='vmcb-clean'/> + <feature name='vpclmulqdq'/> + <feature name='xsavec'/> + <feature name='xsaves'/> + </blockers> <model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <blockers model='EPYC-Rome'> <feature name='amd-stibp'/> diff --git a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml index 5ea8c50ccd..6bb394c533 100644 --- a/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0-tcg.x86_64.xml @@ -650,6 +650,37 @@ <feature name='xsavec'/> <feature name='xsaves'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='amd-psfd'/> + <feature name='amd-ssbd'/> + <feature name='amd-stibp'/> + <feature name='clzero'/> + <feature name='flushbyasid'/> + <feature name='fxsr_opt'/> + <feature name='ibpb'/> + <feature name='ibrs'/> + <feature name='invpcid'/> + <feature name='lbrv'/> + <feature name='lfence-always-serializing'/> + <feature name='misalignsse'/> + <feature name='nrip-save'/> + <feature name='osvw'/> + <feature name='overflow-recov'/> + <feature name='pause-filter'/> + <feature name='pcid'/> + <feature name='perfctr_core'/> + <feature name='pfthreshold'/> + <feature name='stibp-always-on'/> + <feature name='succor'/> + <feature name='topoext'/> + <feature name='tsc-scale'/> + <feature name='v-vmsave-vmload'/> + <feature name='vmcb-clean'/> + <feature name='vpclmulqdq'/> + <feature name='xsavec'/> + <feature name='xsaves'/> + </blockers> <model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <blockers model='EPYC-Rome'> <feature name='amd-stibp'/> diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml index 7efd7b9338..7e1ec7e590 100644 --- a/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml +++ b/tests/domaincapsdata/qemu_10.1.0.x86_64+inteltdx.xml @@ -297,6 +297,23 @@ <feature name='stibp-always-on'/> <feature name='xsaveerptr'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='amd-psfd'/> + <feature name='clzero'/> + <feature name='cr8legacy'/> + <feature name='fxsr_opt'/> + <feature name='lfence-always-serializing'/> + <feature name='misalignsse'/> + <feature name='mmxext'/> + <feature name='no-nested-data-bp'/> + <feature name='null-sel-clr-base'/> + <feature name='osvw'/> + <feature name='perfctr_core'/> + <feature name='sse4a'/> + <feature name='stibp-always-on'/> + <feature name='xsaveerptr'/> + </blockers> <model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <blockers model='EPYC-Rome'> <feature name='clzero'/> diff --git a/tests/domaincapsdata/qemu_10.1.0.x86_64.xml b/tests/domaincapsdata/qemu_10.1.0.x86_64.xml index 01aeb7318b..af75d3fd36 100644 --- a/tests/domaincapsdata/qemu_10.1.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.1.0.x86_64.xml @@ -560,6 +560,21 @@ <feature name='vpclmulqdq'/> <feature name='xsaves'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='amd-psfd'/> + <feature name='erms'/> + <feature name='fsrm'/> + <feature name='ibrs'/> + <feature name='invpcid'/> + <feature name='no-nested-data-bp'/> + <feature name='pcid'/> + <feature name='pku'/> + <feature name='stibp-always-on'/> + <feature name='vaes'/> + <feature name='vpclmulqdq'/> + <feature name='xsaves'/> + </blockers> <model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <blockers model='EPYC-Rome'> <feature name='xsaves'/> diff --git a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml index 7c1fd24169..39c65c061b 100644 --- a/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0-q35.x86_64.xml @@ -292,6 +292,10 @@ <blockers model='EPYC-Milan-v2'> <feature name='pcid'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='pcid'/> + </blockers> <model usable='yes' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <model usable='yes' vendor='AMD'>EPYC-Rome-v1</model> <model usable='yes' vendor='AMD'>EPYC-Rome-v2</model> diff --git a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml index 4f860aab23..4cb64e95df 100644 --- a/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0-tcg.x86_64.xml @@ -650,6 +650,37 @@ <feature name='xsavec'/> <feature name='xsaves'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='amd-psfd'/> + <feature name='amd-ssbd'/> + <feature name='amd-stibp'/> + <feature name='clzero'/> + <feature name='flushbyasid'/> + <feature name='fxsr_opt'/> + <feature name='ibpb'/> + <feature name='ibrs'/> + <feature name='invpcid'/> + <feature name='lbrv'/> + <feature name='lfence-always-serializing'/> + <feature name='misalignsse'/> + <feature name='nrip-save'/> + <feature name='osvw'/> + <feature name='overflow-recov'/> + <feature name='pause-filter'/> + <feature name='pcid'/> + <feature name='perfctr_core'/> + <feature name='pfthreshold'/> + <feature name='stibp-always-on'/> + <feature name='succor'/> + <feature name='topoext'/> + <feature name='tsc-scale'/> + <feature name='v-vmsave-vmload'/> + <feature name='vmcb-clean'/> + <feature name='vpclmulqdq'/> + <feature name='xsavec'/> + <feature name='xsaves'/> + </blockers> <model usable='no' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <blockers model='EPYC-Rome'> <feature name='amd-stibp'/> diff --git a/tests/domaincapsdata/qemu_10.2.0.x86_64.xml b/tests/domaincapsdata/qemu_10.2.0.x86_64.xml index 0b3d87039d..71c1767f1b 100644 --- a/tests/domaincapsdata/qemu_10.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_10.2.0.x86_64.xml @@ -291,6 +291,10 @@ <blockers model='EPYC-Milan-v2'> <feature name='pcid'/> </blockers> + <model usable='no' vendor='AMD'>EPYC-Milan-v3</model> + <blockers model='EPYC-Milan-v3'> + <feature name='pcid'/> + </blockers> <model usable='yes' vendor='AMD' canonical='EPYC-Rome-v1'>EPYC-Rome</model> <model usable='yes' vendor='AMD'>EPYC-Rome-v1</model> <model usable='yes' vendor='AMD'>EPYC-Rome-v2</model> -- 2.51.0