[libvirt PATCH v2 00/24] Synchronize x86 cpu features from qemu

V1: https://listman.redhat.com/archives/libvir-list/2022-October/235007.html Changes since V1: * Fixed register for features "sgx1" and "sgx2". Double checked all other features, just to be sure. * Addes missing help message in sync_qemu_i386_features.py. * Merged all eax=0x12 ecx=0x01 features (sgx-...). Thanks Jiri for the review.
I'm not sure about the "for now" part here [patch #2, "cpu_x86: Ignore alias names"]. Do you think we can do something clever with them while still not accepting them in domain XML (accepting aliases in the XML would just make such XMLs unnecessarily incompatible with older libvirt releases)?
I am planning on using this information in virQEMUCapsCPUFeatureTranslate. Would be nice if we could deduplicate the information of how to translate qemu feature names into libvirt names. I agree that we should not accept the alias names in XML. Tim Wiederhake (24): cpu-data.py: Allow for more than child in feature nodes cpu_x86: Ignore alias names cpu: make x86 feature alias names machine readable cpu_map: Add script to sync from QEMU i386 cpu features cpu_map: Rename sync_qemu_i386.py cpu_map: Add missing x86 feature alias names cpu_map: Add missing x86 feature "sgx" cpu_map: Add missing x86 feature "sgxlc" cpu_map: Add missing x86 feature "sgx-exinfo" cpu_map: Add missing x86 feature "sgx1" cpu_map: Add missing x86 feature "sgx2" cpu_map: Add missing x86 features "sgx-..." cpu_map: Add missing x86 feature "bus-lock-detect" cpu_map: Add missing x86 feature "pks" cpu_map: Add missing x86 feature "avx512-vp2intersect" cpu_map: Add missing x86 feature "avx512-fp16" cpu_map: Add missing x86 feature "serialize" cpu_map: Add missing x86 feature "tsx-ldtrk" cpu_map: Add missing x86 feature "arch-lbr" cpu_map: Add missing x86 feature "xfd" cpu_map: Add missing x86 feature "intel-pt-lip" cpu_map: Add missing x86 feature "avic" cpu_map: Add missing x86 feature "v-vmsave-vmload" cpu_map: Add missing x86 feature "vgif" src/cpu/cpu_x86.c | 10 +- src/cpu_map/sync_qemu_features_i386.py | 278 ++++++++++++++++++ ..._qemu_i386.py => sync_qemu_models_i386.py} | 0 src/cpu_map/x86_features.xml | 133 +++++++-- tests/cputestdata/cpu-data.py | 11 +- .../x86_64-cpuid-Atom-P5362-disabled.xml | 1 + .../x86_64-cpuid-Atom-P5362-guest.xml | 1 + .../x86_64-cpuid-Atom-P5362-host.xml | 1 + .../x86_64-cpuid-Core-i7-7600U-disabled.xml | 2 +- .../x86_64-cpuid-Core-i7-7600U-guest.xml | 1 + .../x86_64-cpuid-Core-i7-7600U-host.xml | 1 + .../x86_64-cpuid-Core-i7-7700-disabled.xml | 2 +- .../x86_64-cpuid-Core-i7-7700-guest.xml | 1 + .../x86_64-cpuid-Core-i7-7700-host.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-disabled.xml | 2 +- .../x86_64-cpuid-Core-i7-8550U-guest.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-host.xml | 1 + .../x86_64-cpuid-Core-i7-8700-disabled.xml | 2 +- .../x86_64-cpuid-Core-i7-8700-guest.xml | 2 + .../x86_64-cpuid-Core-i7-8700-host.xml | 2 + ...86_64-cpuid-EPYC-7502-32-Core-disabled.xml | 2 +- .../x86_64-cpuid-EPYC-7502-32-Core-guest.xml | 3 + .../x86_64-cpuid-EPYC-7502-32-Core-host.xml | 3 + ...86_64-cpuid-EPYC-7601-32-Core-disabled.xml | 2 +- .../x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 3 + .../x86_64-cpuid-EPYC-7601-32-Core-host.xml | 3 + ...-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml | 2 +- ..._64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml | 3 + ...6_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml | 3 + ...-cpuid-Hygon-C86-7185-32-core-disabled.xml | 2 +- ..._64-cpuid-Hygon-C86-7185-32-core-guest.xml | 3 + ...6_64-cpuid-Hygon-C86-7185-32-core-host.xml | 3 + .../x86_64-cpuid-Ice-Lake-Server-disabled.xml | 2 +- .../x86_64-cpuid-Ice-Lake-Server-guest.xml | 2 + .../x86_64-cpuid-Ice-Lake-Server-host.xml | 2 + ...puid-Ryzen-7-1800X-Eight-Core-disabled.xml | 2 +- ...4-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 3 + ...64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 3 + ...4-cpuid-Ryzen-9-3900X-12-Core-disabled.xml | 2 +- ...6_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml | 3 + ...86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml | 3 + .../x86_64-cpuid-Xeon-E3-1225-v5-disabled.xml | 2 +- .../x86_64-cpuid-Xeon-E3-1225-v5-guest.xml | 1 + .../x86_64-cpuid-Xeon-E3-1225-v5-host.xml | 1 + .../x86_64-cpuid-Xeon-E3-1245-v5-disabled.xml | 2 +- .../x86_64-cpuid-Xeon-E3-1245-v5-guest.xml | 1 + .../x86_64-cpuid-Xeon-E3-1245-v5-host.xml | 1 + .../domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 1 + .../domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 1 + .../domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 2 + .../domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 2 + .../domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 2 + 52 files changed, 487 insertions(+), 36 deletions(-) create mode 100755 src/cpu_map/sync_qemu_features_i386.py rename src/cpu_map/{sync_qemu_i386.py => sync_qemu_models_i386.py} (100%) -- 2.36.1

cpu-data.py assumes that all "feature" nodes have exactly one child. This assumption will no longer be true when the cpumap includes alias- names for features. Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- tests/cputestdata/cpu-data.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/cputestdata/cpu-data.py b/tests/cputestdata/cpu-data.py index 0200db7a78..498e07b2f7 100755 --- a/tests/cputestdata/cpu-data.py +++ b/tests/cputestdata/cpu-data.py @@ -445,12 +445,15 @@ def parseMap(): cpuMap = dict() for f in xml.etree.ElementTree.parse(path).getroot().iter("feature"): - if f[0].tag not in ("cpuid", "msr"): + data = f.find("cpuid") + if data is None: + data = f.find("msr") + if data is None: continue - feature = {"type": f[0].tag} - for reg in _KEYS[f[0].tag] + _REGS[f[0].tag]: - feature[reg] = int(f[0].attrib.get(reg, "0"), 0) + feature = {"type": data.tag} + for reg in _KEYS[data.tag] + _REGS[data.tag]: + feature[reg] = int(data.attrib.get(reg, "0"), 0) cpuMap[f.attrib["name"]] = feature return cpuMap -- 2.36.1

A later patch will add alias names to the feature map. Ignore them for now. Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu/cpu_x86.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 4d2379803c..d2560de497 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -1089,7 +1089,7 @@ static int x86ParseDataItemList(virCPUx86Data *cpudata, xmlNodePtr node) { - size_t i; + size_t i = 0; if (xmlChildElementCount(node) <= 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("no x86 CPU data found")); @@ -1097,9 +1097,14 @@ x86ParseDataItemList(virCPUx86Data *cpudata, } node = xmlFirstElementChild(node); - for (i = 0; node; ++i) { + while (node) { virCPUx86DataItem item; + if (virXMLNodeNameEqual(node, "alias")) { + node = xmlNextElementSibling(node); + continue; + } + if (virXMLNodeNameEqual(node, "cpuid")) { if (x86ParseCPUID(node, &item) < 0) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -1116,6 +1121,7 @@ x86ParseDataItemList(virCPUx86Data *cpudata, if (virCPUx86DataAddItem(cpudata, &item) < 0) return -1; + ++i; node = xmlNextElementSibling(node); } -- 2.36.1

On Fri, Oct 28, 2022 at 05:06:33PM +0200, Tim Wiederhake wrote:
A later patch will add alias names to the feature map. Ignore them for now.
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu/cpu_x86.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 4d2379803c..d2560de497 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -1089,7 +1089,7 @@ static int x86ParseDataItemList(virCPUx86Data *cpudata, xmlNodePtr node) { - size_t i; + size_t i = 0;
if (xmlChildElementCount(node) <= 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("no x86 CPU data found")); @@ -1097,9 +1097,14 @@ x86ParseDataItemList(virCPUx86Data *cpudata, }
node = xmlFirstElementChild(node); - for (i = 0; node; ++i) { + while (node) { virCPUx86DataItem item;
+ if (virXMLNodeNameEqual(node, "alias")) { + node = xmlNextElementSibling(node); + continue; + }
Please put a comment here describing that we're ignoring this because it is only intended for use by the QEMU sync script. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Mon, 2022-10-31 at 09:36 +0000, Daniel P. Berrangé wrote:
On Fri, Oct 28, 2022 at 05:06:33PM +0200, Tim Wiederhake wrote:
A later patch will add alias names to the feature map. Ignore them for now.
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu/cpu_x86.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index 4d2379803c..d2560de497 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -1089,7 +1089,7 @@ static int x86ParseDataItemList(virCPUx86Data *cpudata, xmlNodePtr node) { - size_t i; + size_t i = 0; if (xmlChildElementCount(node) <= 0) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("no x86 CPU data found")); @@ -1097,9 +1097,14 @@ x86ParseDataItemList(virCPUx86Data *cpudata, } node = xmlFirstElementChild(node); - for (i = 0; node; ++i) { + while (node) { virCPUx86DataItem item; + if (virXMLNodeNameEqual(node, "alias")) { + node = xmlNextElementSibling(node); + continue; + }
Please put a comment here describing that we're ignoring this because it is only intended for use by the QEMU sync script.
The QEMU sync script is not the only intended recipient of the alias information. A follow-up patch series will feed this information to virQEMUCapsCPUFeatureTranslate and remove the virQEMUCapsCPUFeaturesX86 translation table. I will add the explanation from the patch series' cover letter to this patch's commit message. Tim
With regards, Daniel

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 55 +++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 4cf3ff0804..90d0f43fc6 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -98,10 +98,12 @@ </feature> <!-- standard features, ECX --> - <feature name='pni'> <!-- sse3 --> + <feature name='pni'> + <alias name='sse3'/> <cpuid eax_in='0x01' ecx='0x00000001'/> </feature> - <feature name='pclmuldq'> <!-- pclmulqdq --> + <feature name='pclmuldq'> + <alias name='pclmulqdq'/> <cpuid eax_in='0x01' ecx='0x00000002'/> </feature> <feature name='dtes64'> @@ -110,7 +112,8 @@ <feature name='monitor'> <cpuid eax_in='0x01' ecx='0x00000008'/> </feature> - <feature name='ds_cpl'> <!-- ds-cpl --> + <feature name='ds_cpl'> + <alias name='ds-cpl'/> <cpuid eax_in='0x01' ecx='0x00000010'/> </feature> <feature name='vmx'> @@ -149,10 +152,14 @@ <feature name='dca'> <cpuid eax_in='0x01' ecx='0x00040000'/> </feature> - <feature name='sse4.1'> <!-- sse4-1, sse4_1 --> + <feature name='sse4.1'> + <alias name='sse4-1'/> + <alias name='sse4_1'/> <cpuid eax_in='0x01' ecx='0x00080000'/> </feature> - <feature name='sse4.2'> <!-- sse4-2, sse4_2 --> + <feature name='sse4.2'> + <alias name='sse4-2'/> + <alias name='sse4_2'/> <cpuid eax_in='0x01' ecx='0x00100000'/> </feature> <feature name='x2apic'> @@ -198,7 +205,8 @@ <feature name='fsgsbase'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000001'/> </feature> - <feature name='tsc_adjust'> <!-- tsc-adjust --> + <feature name='tsc_adjust'> + <alias name='tsc-adjust'/> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000002'/> </feature> <feature name='bmi1'> @@ -225,7 +233,8 @@ <feature name='rtm'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000800'/> </feature> - <feature name='cmt'> <!-- cqm --> + <feature name='cmt'> + <alias name='cqm'/> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00001000'/> </feature> <feature name='mpx'> @@ -341,7 +350,8 @@ <feature name='fsrm'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000010'/> </feature> - <feature name='md-clear'> <!-- md_clear --> + <feature name='md-clear'> + <alias name='md_clear'/> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/> </feature> <feature name='pconfig'> @@ -353,7 +363,9 @@ <feature name='stibp'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x08000000'/> </feature> - <feature name='arch-capabilities'> <!-- arch_capabilities, arch-facilities --> + <feature name='arch-capabilities'> + <alias name='arch_capabilities'/> + <alias name='arch-facilities'/> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x20000000'/> </feature> <feature name='core-capability'> @@ -396,13 +408,16 @@ <feature name='syscall'> <cpuid eax_in='0x80000001' edx='0x00000800'/> </feature> - <feature name='nx'> <!-- xd --> + <feature name='nx'> + <alias name='xd'/> <cpuid eax_in='0x80000001' edx='0x00100000'/> </feature> <feature name='mmxext'> <cpuid eax_in='0x80000001' edx='0x00400000'/> </feature> - <feature name='fxsr_opt'> <!-- ffxsr, fxsr-opt --> + <feature name='fxsr_opt'> + <alias name='ffxsr'/> + <alias name='fxsr-opt'/> <cpuid eax_in='0x80000001' edx='0x02000000'/> </feature> <feature name='pdpe1gb'> @@ -411,7 +426,8 @@ <feature name='rdtscp'> <cpuid eax_in='0x80000001' edx='0x08000000'/> </feature> - <feature name='lm'> <!-- i64 --> + <feature name='lm'> + <alias name='i64'/> <cpuid eax_in='0x80000001' edx='0x20000000'/> </feature> <feature name='3dnowext'> @@ -422,10 +438,12 @@ </feature> <!-- extended features, ECX --> - <feature name='lahf_lm'> <!-- lahf-lm --> + <feature name='lahf_lm'> + <alias name='lahf-lm'/> <cpuid eax_in='0x80000001' ecx='0x00000001'/> </feature> - <feature name='cmp_legacy'> <!-- cmp-legacy --> + <feature name='cmp_legacy'> + <alias name='cmp-legacy'/> <cpuid eax_in='0x80000001' ecx='0x00000002'/> </feature> <feature name='svm'> @@ -476,7 +494,8 @@ <feature name='cvt16'> <cpuid eax_in='0x80000001' ecx='0x00040000'/> </feature> - <feature name='nodeid_msr'> <!-- nodeid-msr --> + <feature name='nodeid_msr'> + <alias name='nodeid-msr'/> <cpuid eax_in='0x80000001' ecx='0x00080000'/> </feature> <feature name='tbm'> @@ -485,10 +504,12 @@ <feature name='topoext'> <cpuid eax_in='0x80000001' ecx='0x00400000'/> </feature> - <feature name='perfctr_core'> <!-- perfctr-core --> + <feature name='perfctr_core'> + <alias name='perfctr-core'/> <cpuid eax_in='0x80000001' ecx='0x00800000'/> </feature> - <feature name='perfctr_nb'> <!-- perfctr-nb --> + <feature name='perfctr_nb'> + <alias name='perfctr-nb'/> <cpuid eax_in='0x80000001' ecx='0x01000000'/> </feature> -- 2.36.1

On Fri, Oct 28, 2022 at 05:06:34PM +0200, Tim Wiederhake wrote:
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 55 +++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 17 deletions(-)
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 4cf3ff0804..90d0f43fc6 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -98,10 +98,12 @@ </feature>
<!-- standard features, ECX --> - <feature name='pni'> <!-- sse3 --> + <feature name='pni'> + <alias name='sse3'/>
IMHO, we should distinguish this as internal data via a NS to re-inforce to our future selves that its only used when syncing data from QEMU. <qemu:alias nmame="sse3"/> And add xmlns:qemu="https://libvirt.org/cpufeature/qemu/1.0" on the top level.
<cpuid eax_in='0x01' ecx='0x00000001'/> </feature> - <feature name='pclmuldq'> <!-- pclmulqdq --> + <feature name='pclmuldq'> + <alias name='pclmulqdq'/> <cpuid eax_in='0x01' ecx='0x00000002'/> </feature> <feature name='dtes64'> @@ -110,7 +112,8 @@ <feature name='monitor'> <cpuid eax_in='0x01' ecx='0x00000008'/> </feature> - <feature name='ds_cpl'> <!-- ds-cpl --> + <feature name='ds_cpl'> + <alias name='ds-cpl'/> <cpuid eax_in='0x01' ecx='0x00000010'/> </feature> <feature name='vmx'> @@ -149,10 +152,14 @@ <feature name='dca'> <cpuid eax_in='0x01' ecx='0x00040000'/> </feature> - <feature name='sse4.1'> <!-- sse4-1, sse4_1 --> + <feature name='sse4.1'> + <alias name='sse4-1'/> + <alias name='sse4_1'/> <cpuid eax_in='0x01' ecx='0x00080000'/> </feature> - <feature name='sse4.2'> <!-- sse4-2, sse4_2 --> + <feature name='sse4.2'> + <alias name='sse4-2'/> + <alias name='sse4_2'/> <cpuid eax_in='0x01' ecx='0x00100000'/> </feature> <feature name='x2apic'> @@ -198,7 +205,8 @@ <feature name='fsgsbase'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000001'/> </feature> - <feature name='tsc_adjust'> <!-- tsc-adjust --> + <feature name='tsc_adjust'> + <alias name='tsc-adjust'/> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000002'/> </feature> <feature name='bmi1'> @@ -225,7 +233,8 @@ <feature name='rtm'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000800'/> </feature> - <feature name='cmt'> <!-- cqm --> + <feature name='cmt'> + <alias name='cqm'/> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00001000'/> </feature> <feature name='mpx'> @@ -341,7 +350,8 @@ <feature name='fsrm'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000010'/> </feature> - <feature name='md-clear'> <!-- md_clear --> + <feature name='md-clear'> + <alias name='md_clear'/> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/> </feature> <feature name='pconfig'> @@ -353,7 +363,9 @@ <feature name='stibp'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x08000000'/> </feature> - <feature name='arch-capabilities'> <!-- arch_capabilities, arch-facilities --> + <feature name='arch-capabilities'> + <alias name='arch_capabilities'/> + <alias name='arch-facilities'/> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x20000000'/> </feature> <feature name='core-capability'> @@ -396,13 +408,16 @@ <feature name='syscall'> <cpuid eax_in='0x80000001' edx='0x00000800'/> </feature> - <feature name='nx'> <!-- xd --> + <feature name='nx'> + <alias name='xd'/> <cpuid eax_in='0x80000001' edx='0x00100000'/> </feature> <feature name='mmxext'> <cpuid eax_in='0x80000001' edx='0x00400000'/> </feature> - <feature name='fxsr_opt'> <!-- ffxsr, fxsr-opt --> + <feature name='fxsr_opt'> + <alias name='ffxsr'/> + <alias name='fxsr-opt'/> <cpuid eax_in='0x80000001' edx='0x02000000'/> </feature> <feature name='pdpe1gb'> @@ -411,7 +426,8 @@ <feature name='rdtscp'> <cpuid eax_in='0x80000001' edx='0x08000000'/> </feature> - <feature name='lm'> <!-- i64 --> + <feature name='lm'> + <alias name='i64'/> <cpuid eax_in='0x80000001' edx='0x20000000'/> </feature> <feature name='3dnowext'> @@ -422,10 +438,12 @@ </feature>
<!-- extended features, ECX --> - <feature name='lahf_lm'> <!-- lahf-lm --> + <feature name='lahf_lm'> + <alias name='lahf-lm'/> <cpuid eax_in='0x80000001' ecx='0x00000001'/> </feature> - <feature name='cmp_legacy'> <!-- cmp-legacy --> + <feature name='cmp_legacy'> + <alias name='cmp-legacy'/> <cpuid eax_in='0x80000001' ecx='0x00000002'/> </feature> <feature name='svm'> @@ -476,7 +494,8 @@ <feature name='cvt16'> <cpuid eax_in='0x80000001' ecx='0x00040000'/> </feature> - <feature name='nodeid_msr'> <!-- nodeid-msr --> + <feature name='nodeid_msr'> + <alias name='nodeid-msr'/> <cpuid eax_in='0x80000001' ecx='0x00080000'/> </feature> <feature name='tbm'> @@ -485,10 +504,12 @@ <feature name='topoext'> <cpuid eax_in='0x80000001' ecx='0x00400000'/> </feature> - <feature name='perfctr_core'> <!-- perfctr-core --> + <feature name='perfctr_core'> + <alias name='perfctr-core'/> <cpuid eax_in='0x80000001' ecx='0x00800000'/> </feature> - <feature name='perfctr_nb'> <!-- perfctr-nb --> + <feature name='perfctr_nb'> + <alias name='perfctr-nb'/> <cpuid eax_in='0x80000001' ecx='0x01000000'/> </feature>
-- 2.36.1
With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

On Mon, Oct 31, 2022 at 09:38:13 +0000, Daniel P. Berrangé wrote:
On Fri, Oct 28, 2022 at 05:06:34PM +0200, Tim Wiederhake wrote:
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 55 +++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 17 deletions(-)
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 4cf3ff0804..90d0f43fc6 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -98,10 +98,12 @@ </feature>
<!-- standard features, ECX --> - <feature name='pni'> <!-- sse3 --> + <feature name='pni'> + <alias name='sse3'/>
IMHO, we should distinguish this as internal data via a NS to re-inforce to our future selves that its only used when syncing data from QEMU.
<qemu:alias nmame="sse3"/>
And add xmlns:qemu="https://libvirt.org/cpufeature/qemu/1.0" on the top level.
Well, the existing alternative names in comments were not just different QEMU spellings. Some of them were names used by the kernel. But I don't really mind either way. Jirka

On Mon, 2022-10-31 at 09:38 +0000, Daniel P. Berrangé wrote:
On Fri, Oct 28, 2022 at 05:06:34PM +0200, Tim Wiederhake wrote:
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 55 +++++++++++++++++++++++++------- ---- 1 file changed, 38 insertions(+), 17 deletions(-)
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 4cf3ff0804..90d0f43fc6 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -98,10 +98,12 @@ </feature> <!-- standard features, ECX --> - <feature name='pni'> <!-- sse3 --> + <feature name='pni'> + <alias name='sse3'/>
IMHO, we should distinguish this as internal data via a NS to re-inforce to our future selves that its only used when syncing data from QEMU.
<qemu:alias nmame="sse3"/>
And add xmlns:qemu="https://libvirt.org/cpufeature/qemu/1.0" on the top level.
I believe that using namespaces makes using this information in the sync script, and later in virQEMUCapsCPUFeatureTranslate, harder than strictly necessary. Would you be fine instead with a "source" or "type" attribute instead? <alias name='foo' source='qemu'/> <alias name='bar' source='linux'/> <alias name='baz' source='where-the-feature-is-called-this-way'/> Tim
<cpuid eax_in='0x01' ecx='0x00000001'/> </feature> - <feature name='pclmuldq'> <!-- pclmulqdq --> + <feature name='pclmuldq'> + <alias name='pclmulqdq'/> <cpuid eax_in='0x01' ecx='0x00000002'/> </feature> <feature name='dtes64'> @@ -110,7 +112,8 @@ <feature name='monitor'> <cpuid eax_in='0x01' ecx='0x00000008'/> </feature> - <feature name='ds_cpl'> <!-- ds-cpl --> + <feature name='ds_cpl'> + <alias name='ds-cpl'/> <cpuid eax_in='0x01' ecx='0x00000010'/> </feature> <feature name='vmx'> @@ -149,10 +152,14 @@ <feature name='dca'> <cpuid eax_in='0x01' ecx='0x00040000'/> </feature> - <feature name='sse4.1'> <!-- sse4-1, sse4_1 --> + <feature name='sse4.1'> + <alias name='sse4-1'/> + <alias name='sse4_1'/> <cpuid eax_in='0x01' ecx='0x00080000'/> </feature> - <feature name='sse4.2'> <!-- sse4-2, sse4_2 --> + <feature name='sse4.2'> + <alias name='sse4-2'/> + <alias name='sse4_2'/> <cpuid eax_in='0x01' ecx='0x00100000'/> </feature> <feature name='x2apic'> @@ -198,7 +205,8 @@ <feature name='fsgsbase'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000001'/> </feature> - <feature name='tsc_adjust'> <!-- tsc-adjust --> + <feature name='tsc_adjust'> + <alias name='tsc-adjust'/> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000002'/> </feature> <feature name='bmi1'> @@ -225,7 +233,8 @@ <feature name='rtm'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000800'/> </feature> - <feature name='cmt'> <!-- cqm --> + <feature name='cmt'> + <alias name='cqm'/> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00001000'/> </feature> <feature name='mpx'> @@ -341,7 +350,8 @@ <feature name='fsrm'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000010'/> </feature> - <feature name='md-clear'> <!-- md_clear --> + <feature name='md-clear'> + <alias name='md_clear'/> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/> </feature> <feature name='pconfig'> @@ -353,7 +363,9 @@ <feature name='stibp'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x08000000'/> </feature> - <feature name='arch-capabilities'> <!-- arch_capabilities, arch- facilities --> + <feature name='arch-capabilities'> + <alias name='arch_capabilities'/> + <alias name='arch-facilities'/> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x20000000'/> </feature> <feature name='core-capability'> @@ -396,13 +408,16 @@ <feature name='syscall'> <cpuid eax_in='0x80000001' edx='0x00000800'/> </feature> - <feature name='nx'> <!-- xd --> + <feature name='nx'> + <alias name='xd'/> <cpuid eax_in='0x80000001' edx='0x00100000'/> </feature> <feature name='mmxext'> <cpuid eax_in='0x80000001' edx='0x00400000'/> </feature> - <feature name='fxsr_opt'> <!-- ffxsr, fxsr-opt --> + <feature name='fxsr_opt'> + <alias name='ffxsr'/> + <alias name='fxsr-opt'/> <cpuid eax_in='0x80000001' edx='0x02000000'/> </feature> <feature name='pdpe1gb'> @@ -411,7 +426,8 @@ <feature name='rdtscp'> <cpuid eax_in='0x80000001' edx='0x08000000'/> </feature> - <feature name='lm'> <!-- i64 --> + <feature name='lm'> + <alias name='i64'/> <cpuid eax_in='0x80000001' edx='0x20000000'/> </feature> <feature name='3dnowext'> @@ -422,10 +438,12 @@ </feature> <!-- extended features, ECX --> - <feature name='lahf_lm'> <!-- lahf-lm --> + <feature name='lahf_lm'> + <alias name='lahf-lm'/> <cpuid eax_in='0x80000001' ecx='0x00000001'/> </feature> - <feature name='cmp_legacy'> <!-- cmp-legacy --> + <feature name='cmp_legacy'> + <alias name='cmp-legacy'/> <cpuid eax_in='0x80000001' ecx='0x00000002'/> </feature> <feature name='svm'> @@ -476,7 +494,8 @@ <feature name='cvt16'> <cpuid eax_in='0x80000001' ecx='0x00040000'/> </feature> - <feature name='nodeid_msr'> <!-- nodeid-msr --> + <feature name='nodeid_msr'> + <alias name='nodeid-msr'/> <cpuid eax_in='0x80000001' ecx='0x00080000'/> </feature> <feature name='tbm'> @@ -485,10 +504,12 @@ <feature name='topoext'> <cpuid eax_in='0x80000001' ecx='0x00400000'/> </feature> - <feature name='perfctr_core'> <!-- perfctr-core --> + <feature name='perfctr_core'> + <alias name='perfctr-core'/> <cpuid eax_in='0x80000001' ecx='0x00800000'/> </feature> - <feature name='perfctr_nb'> <!-- perfctr-nb --> + <feature name='perfctr_nb'> + <alias name='perfctr-nb'/> <cpuid eax_in='0x80000001' ecx='0x01000000'/> </feature> -- 2.36.1
With regards, Daniel

On Thu, Nov 03, 2022 at 04:21:34PM +0100, Tim Wiederhake wrote:
On Mon, 2022-10-31 at 09:38 +0000, Daniel P. Berrangé wrote:
On Fri, Oct 28, 2022 at 05:06:34PM +0200, Tim Wiederhake wrote:
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 55 +++++++++++++++++++++++++------- ---- 1 file changed, 38 insertions(+), 17 deletions(-)
diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 4cf3ff0804..90d0f43fc6 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -98,10 +98,12 @@ </feature> <!-- standard features, ECX --> - <feature name='pni'> <!-- sse3 --> + <feature name='pni'> + <alias name='sse3'/>
IMHO, we should distinguish this as internal data via a NS to re-inforce to our future selves that its only used when syncing data from QEMU.
<qemu:alias nmame="sse3"/>
And add xmlns:qemu="https://libvirt.org/cpufeature/qemu/1.0" on the top level.
I believe that using namespaces makes using this information in the sync script, and later in virQEMUCapsCPUFeatureTranslate, harder than strictly necessary. Would you be fine instead with a "source" or "type" attribute instead?
<alias name='foo' source='qemu'/> <alias name='bar' source='linux'/> <alias name='baz' source='where-the-feature-is-called-this-way'/>
Yes, that could be ok, and makes it clear where the alias came from. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|

This script is intended to help in synchronizing i386 QEMU cpu feature definitions with libvirt. QEMU's attribute list for the "max-x86_64-cpu" contains non-cpu-feature items and needs to be filtered before being useful. Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/sync_qemu_features_i386.py | 278 +++++++++++++++++++++++++ 1 file changed, 278 insertions(+) create mode 100755 src/cpu_map/sync_qemu_features_i386.py diff --git a/src/cpu_map/sync_qemu_features_i386.py b/src/cpu_map/sync_qemu_features_i386.py new file mode 100755 index 0000000000..1d26bb47b5 --- /dev/null +++ b/src/cpu_map/sync_qemu_features_i386.py @@ -0,0 +1,278 @@ +#!/usr/bin/env python3 + +import argparse +import json +import subprocess +import xml.etree.ElementTree + + +def ignore_feature(feature): + ignored_features = [ + # VIA/Cyrix/Centaur-defined CPU features + # CPUID level 0xC0000001, word 5 + "ace2", + "ace2-en", + "phe", + "phe-en", + "pmm", + "pmm-en", + "xcrypt", + "xcrypt-en", + "xstore", + "xstore-en", + + # non-features + "check", + "cpuid-0xb", + "enforce", + "fill-mtrr-mask", + "full-cpuid-auto-level", + "full-width-write", + "host-cache-info", + "host-phys-bits", + "hotpluggable", + "hotplugged", + "hv-apicv", + "hv-avic", + "hv-crash", + "hv-emsr-bitmap", + "hv-enforce-cpuid", + "hv-evmcs", + "hv-frequencies", + "hv-ipi", + "hv-passthrough", + "hv-reenlightenment", + "hv-relaxed", + "hv-reset", + "hv-runtime", + "hv-stimer", + "hv-stimer-direct", + "hv-syndbg", + "hv-synic", + "hv-time", + "hv-tlbflush", + "hv-tlbflush-direct", + "hv-tlbflush-ext", + "hv-vapic", + "hv-vpindex", + "hv-xmm-input", + "kvm", + "kvm-asyncpf", + "kvm-asyncpf-int", + "kvm-hint-dedicated", + "kvm-mmu", + "kvm-msi-ext-dest-id", + "kvm-no-smi-migration", + "kvm-nopiodelay", + "kvm-poll-control", + "kvm-pv-enforce-cpuid", + "kvm-pv-eoi", + "kvm-pv-ipi", + "kvm-pv-sched-yield", + "kvm-pv-tlb-flush", + "kvm-pv-unhalt", + "kvm-steal-time", + "kvm_asyncpf", + "kvm_asyncpf_int", + "kvm_mmu", + "kvm_nopiodelay", + "kvm_poll_control", + "kvm_pv_eoi", + "kvm_pv_unhalt", + "kvm_steal_time", + "kvmclock", + "kvmclock-stable-bit", + "l3-cache", + "legacy-cache", + "lmce", + "migratable", + "pmu", + "realized", + "start-powered-off", + "tcg-cpuid", + "vmware-cpuid-freq", + "vmx-activity-hlt", + "vmx-activity-shutdown", + "vmx-activity-wait-sipi", + "vmx-apicv-register", + "vmx-apicv-vid", + "vmx-apicv-x2apic", + "vmx-apicv-xapic", + "vmx-cr3-load-noexit", + "vmx-cr3-store-noexit", + "vmx-cr8-load-exit", + "vmx-cr8-store-exit", + "vmx-desc-exit", + "vmx-encls-exit", + "vmx-entry-ia32e-mode", + "vmx-entry-load-bndcfgs", + "vmx-entry-load-efer", + "vmx-entry-load-pat", + "vmx-entry-load-perf-global-ctrl", + "vmx-entry-load-pkrs", + "vmx-entry-load-rtit-ctl", + "vmx-entry-noload-debugctl", + "vmx-ept", + "vmx-ept-1gb", + "vmx-ept-2mb", + "vmx-ept-advanced-exitinfo", + "vmx-ept-execonly", + "vmx-eptad", + "vmx-eptp-switching", + "vmx-exit-ack-intr", + "vmx-exit-clear-bndcfgs", + "vmx-exit-clear-rtit-ctl", + "vmx-exit-load-efer", + "vmx-exit-load-pat", + "vmx-exit-load-perf-global-ctrl", + "vmx-exit-load-pkrs", + "vmx-exit-nosave-debugctl", + "vmx-exit-save-efer", + "vmx-exit-save-pat", + "vmx-exit-save-preemption-timer", + "vmx-flexpriority", + "vmx-hlt-exit", + "vmx-ins-outs", + "vmx-intr-exit", + "vmx-invept", + "vmx-invept-all-context", + "vmx-invept-single-context", + "vmx-invept-single-context-noglobals", + "vmx-invlpg-exit", + "vmx-invpcid-exit", + "vmx-invvpid", + "vmx-invvpid-all-context", + "vmx-invvpid-single-addr", + "vmx-io-bitmap", + "vmx-io-exit", + "vmx-monitor-exit", + "vmx-movdr-exit", + "vmx-msr-bitmap", + "vmx-mtf", + "vmx-mwait-exit", + "vmx-nmi-exit", + "vmx-page-walk-4", + "vmx-page-walk-5", + "vmx-pause-exit", + "vmx-ple", + "vmx-pml", + "vmx-posted-intr", + "vmx-preemption-timer", + "vmx-rdpmc-exit", + "vmx-rdrand-exit", + "vmx-rdseed-exit", + "vmx-rdtsc-exit", + "vmx-rdtscp-exit", + "vmx-secondary-ctls", + "vmx-shadow-vmcs", + "vmx-store-lma", + "vmx-true-ctls", + "vmx-tsc-offset", + "vmx-tsc-scaling", + "vmx-unrestricted-guest", + "vmx-vintr-pending", + "vmx-vmfunc", + "vmx-vmwrite-vmexit-fields", + "vmx-vnmi", + "vmx-vnmi-pending", + "vmx-vpid", + "vmx-wbinvd-exit", + "vmx-xsaves", + "vmx-zero-len-inject", + ] + + if feature["type"] != "bool": + return True + + name = feature["name"] + + if name.startswith("x-"): + return True + + if name in ignored_features: + return True + + return False + + +def get_qemu_feature_list(path_to_qemu): + cmd = [ + path_to_qemu, + "-machine", "accel=kvm", + "-cpu", "host", + "-nodefaults", + "-nographic", + "-qmp", + "stdio" + ] + + request = """ + { + "execute": "qmp_capabilities" + } + { + "execute": "qom-list-properties", + "arguments": { + "typename": "max-x86_64-cpu" + }, + "id": "qom-list-properties" + } + { + "execute": "quit" + } + """ + + decoder = json.JSONDecoder() + output = subprocess.check_output(cmd, input=request, text=True) + while output: + obj, idx = decoder.raw_decode(output) + output = output[idx:].strip() + if obj.get("id") != "qom-list-properties": + continue + for feature in obj["return"]: + if ignore_feature(feature): + continue + yield feature["name"] + + +def get_libvirt_feature_list(path_to_featuresfile): + dom = xml.etree.ElementTree.parse(path_to_featuresfile) + for feature in dom.getroot().iter("feature"): + yield feature.get("name") + for alias in feature: + if alias.tag == "alias": + yield alias.get("name") + + +def main(): + parser = argparse.ArgumentParser( + description="Synchronize x86 cpu features from QEMU i386 target.") + parser.add_argument( + "--qemu", + help="Path to qemu executable", + default="qemu-system-x86_64", + type=str) + parser.add_argument( + "--features", + help="Path to 'src/cpu_map/x86_features.xml' file in " + "the libvirt repository", + default="x86_features.xml", + type=str) + + args = parser.parse_args() + + qfeatures = get_qemu_feature_list(args.qemu) + lfeatures = list(get_libvirt_feature_list(args.features)) + missing = [f for f in sorted(qfeatures) if f not in lfeatures] + + if missing: + print("The following features were reported by qemu but are " + "unknown to libvirt:") + for feature in missing: + print(" *", feature) + + return len(missing) != 0 + + +if __name__ == "__main__": + exit(main()) -- 2.36.1

This makes the naming more consistent beween the two scripts synching the feature list and the model list. Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/{sync_qemu_i386.py => sync_qemu_models_i386.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/cpu_map/{sync_qemu_i386.py => sync_qemu_models_i386.py} (100%) diff --git a/src/cpu_map/sync_qemu_i386.py b/src/cpu_map/sync_qemu_models_i386.py similarity index 100% rename from src/cpu_map/sync_qemu_i386.py rename to src/cpu_map/sync_qemu_models_i386.py -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 90d0f43fc6..5f17255a56 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -555,15 +555,19 @@ <cpuid eax_in='0x8000000a' edx='0x00000002'/> </feature> <feature name='svm-lock'> + <alias name='svm_lock'/> <cpuid eax_in='0x8000000a' edx='0x00000004'/> </feature> <feature name='nrip-save'> + <alias name='nrip_save'/> <cpuid eax_in='0x8000000a' edx='0x00000008'/> </feature> <feature name='tsc-scale'> + <alias name='tsc_scale'/> <cpuid eax_in='0x8000000a' edx='0x00000010'/> </feature> <feature name='vmcb-clean'> + <alias name='vmcb_clean'/> <cpuid eax_in='0x8000000a' edx='0x00000020'/> </feature> <feature name='flushbyasid'> @@ -573,6 +577,7 @@ <cpuid eax_in='0x8000000a' edx='0x00000080'/> </feature> <feature name='pause-filter'> + <alias name='pause_filter'/> <cpuid eax_in='0x8000000a' edx='0x00000400'/> </feature> <feature name='pfthreshold'> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ tests/cputestdata/x86_64-cpuid-Core-i7-7600U-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-7700-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-8550U-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml | 1 + tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml | 1 + tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml | 1 + tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml | 1 + 22 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 5f17255a56..5bf96902d5 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -209,6 +209,9 @@ <alias name='tsc-adjust'/> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000002'/> </feature> + <feature name='sgx'> + <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000004'/> + </feature> <feature name='bmi1'> <cpuid eax_in='0x07' ecx_in='0x00' ebx='0x00000008'/> </feature> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-disabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-disabled.xml index 0a567bbfae..2b9aef78a2 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-disabled.xml @@ -1,6 +1,6 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1dc' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x08000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x08000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml index 70a0fc3286..5cf7778d55 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-guest.xml @@ -18,6 +18,7 @@ <feature policy='require' name='pdcm'/> <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='sgx'/> <feature policy='require' name='clflushopt'/> <feature policy='require' name='intel-pt'/> <feature policy='require' name='stibp'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml index edfb8ec421..fa51fcdd0c 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7600U-host.xml @@ -20,6 +20,7 @@ <feature name='pdcm'/> <feature name='osxsave'/> <feature name='tsc_adjust'/> + <feature name='sgx'/> <feature name='clflushopt'/> <feature name='intel-pt'/> <feature name='stibp'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-disabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-disabled.xml index ce51903e53..9e83f4c534 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-disabled.xml @@ -1,7 +1,7 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x00000000'/> <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml index 5777a0bfba..60bace9ed6 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-guest.xml @@ -18,6 +18,7 @@ <feature policy='require' name='pdcm'/> <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='sgx'/> <feature policy='require' name='clflushopt'/> <feature policy='require' name='intel-pt'/> <feature policy='require' name='xsaves'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml index 08255621ec..6b9323842a 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-7700-host.xml @@ -20,6 +20,7 @@ <feature name='pdcm'/> <feature name='osxsave'/> <feature name='tsc_adjust'/> + <feature name='sgx'/> <feature name='clflushopt'/> <feature name='intel-pt'/> <feature name='xsaves'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-disabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-disabled.xml index 436ded22eb..910f466b98 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-disabled.xml @@ -1,6 +1,6 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c19c' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml index ed06515e99..1d93d13aaa 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-guest.xml @@ -17,6 +17,7 @@ <feature policy='require' name='pdcm'/> <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='sgx'/> <feature policy='require' name='clflushopt'/> <feature policy='require' name='intel-pt'/> <feature policy='require' name='md-clear'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml index 1e3f1d1719..8e32872bf2 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-host.xml @@ -19,6 +19,7 @@ <feature name='pdcm'/> <feature name='osxsave'/> <feature name='tsc_adjust'/> + <feature name='sgx'/> <feature name='clflushopt'/> <feature name='intel-pt'/> <feature name='md-clear'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml index 6a7de576f1..3a2308155c 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml @@ -1,6 +1,6 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x08000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x08000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml index 70a0fc3286..5cf7778d55 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml @@ -18,6 +18,7 @@ <feature policy='require' name='pdcm'/> <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='sgx'/> <feature policy='require' name='clflushopt'/> <feature policy='require' name='intel-pt'/> <feature policy='require' name='stibp'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml index 4174d79ce7..00fa402474 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml @@ -20,6 +20,7 @@ <feature name='pdcm'/> <feature name='osxsave'/> <feature name='tsc_adjust'/> + <feature name='sgx'/> <feature name='clflushopt'/> <feature name='intel-pt'/> <feature name='stibp'/> diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml index 33bd1013f0..939506ef89 100644 --- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml @@ -1,7 +1,7 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0804c1fc' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001000' ecx='0x00400010' edx='0x00000010'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001004' ecx='0x00400010' edx='0x00000010'/> <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml index 7fcd20d26d..b816310368 100644 --- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml @@ -19,6 +19,7 @@ <feature policy='require' name='dca'/> <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='sgx'/> <feature policy='require' name='cmt'/> <feature policy='require' name='avx512ifma'/> <feature policy='require' name='intel-pt'/> diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml index 2ce74da604..ce81ad0ec2 100644 --- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml @@ -21,6 +21,7 @@ <feature name='dca'/> <feature name='osxsave'/> <feature name='tsc_adjust'/> + <feature name='sgx'/> <feature name='cmt'/> <feature name='avx512ifma'/> <feature name='intel-pt'/> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-disabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-disabled.xml index ce51903e53..9e83f4c534 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-disabled.xml @@ -1,7 +1,7 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x00000000'/> <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x00000008' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml index 867970d2c7..7555bc075e 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-guest.xml @@ -18,6 +18,7 @@ <feature policy='require' name='pdcm'/> <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='sgx'/> <feature policy='require' name='clflushopt'/> <feature policy='require' name='intel-pt'/> <feature policy='require' name='md-clear'/> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml index d4a2a15e60..1d257a0828 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1225-v5-host.xml @@ -20,6 +20,7 @@ <feature name='pdcm'/> <feature name='osxsave'/> <feature name='tsc_adjust'/> + <feature name='sgx'/> <feature name='clflushopt'/> <feature name='intel-pt'/> <feature name='md-clear'/> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-disabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-disabled.xml index fa9571c29d..536354e641 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-disabled.xml @@ -1,6 +1,6 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1dc' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000000' ecx='0x00000000' edx='0x00000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml index 5777a0bfba..60bace9ed6 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-guest.xml @@ -18,6 +18,7 @@ <feature policy='require' name='pdcm'/> <feature policy='require' name='osxsave'/> <feature policy='require' name='tsc_adjust'/> + <feature policy='require' name='sgx'/> <feature policy='require' name='clflushopt'/> <feature policy='require' name='intel-pt'/> <feature policy='require' name='xsaves'/> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml index c52e8db235..d2f808f9a6 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-E3-1245-v5-host.xml @@ -20,6 +20,7 @@ <feature name='pdcm'/> <feature name='osxsave'/> <feature name='tsc_adjust'/> + <feature name='sgx'/> <feature name='clflushopt'/> <feature name='intel-pt'/> <feature name='xsaves'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml | 1 + tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml | 1 + 7 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 5bf96902d5..c89bc2d112 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -343,6 +343,9 @@ <feature name='movdir64b'> <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x10000000'/> </feature> + <feature name='sgxlc'> + <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x40000000'/> + </feature> <feature name='avx512-4vnniw'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000004'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml index 3a2308155c..bffdae01da 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-disabled.xml @@ -1,6 +1,6 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0800c1fc' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x00000000' edx='0x08000000'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02000004' ecx='0x40000000' edx='0x08000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml index 5cf7778d55..99874701de 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-guest.xml @@ -21,6 +21,7 @@ <feature policy='require' name='sgx'/> <feature policy='require' name='clflushopt'/> <feature policy='require' name='intel-pt'/> + <feature policy='require' name='sgxlc'/> <feature policy='require' name='stibp'/> <feature policy='require' name='ssbd'/> <feature policy='require' name='xsaves'/> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml index 00fa402474..8e5cab50bb 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8700-host.xml @@ -23,6 +23,7 @@ <feature name='sgx'/> <feature name='clflushopt'/> <feature name='intel-pt'/> + <feature name='sgxlc'/> <feature name='stibp'/> <feature name='ssbd'/> <feature name='xsaves'/> diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml index 939506ef89..2769427a85 100644 --- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-disabled.xml @@ -1,7 +1,7 @@ <!-- Features disabled by QEMU --> <cpudata arch='x86'> <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x0804c1fc' edx='0xb0600000'/> - <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001004' ecx='0x00400010' edx='0x00000010'/> + <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001004' ecx='0x40400010' edx='0x00000010'/> <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml index b816310368..13147e354e 100644 --- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-guest.xml @@ -26,6 +26,7 @@ <feature policy='require' name='sha-ni'/> <feature policy='require' name='ospke'/> <feature policy='require' name='rdpid'/> + <feature policy='require' name='sgxlc'/> <feature policy='require' name='fsrm'/> <feature policy='require' name='stibp'/> <feature policy='require' name='arch-capabilities'/> diff --git a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml index ce81ad0ec2..aa2514eb60 100644 --- a/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ice-Lake-Server-host.xml @@ -28,6 +28,7 @@ <feature name='sha-ni'/> <feature name='ospke'/> <feature name='rdpid'/> + <feature name='sgxlc'/> <feature name='fsrm'/> <feature name='stibp'/> <feature name='arch-capabilities'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index c89bc2d112..5b9e61a3d0 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -410,6 +410,11 @@ <cpuid eax_in='0x0f' ecx_in='0x01' edx='0x00000004'/> </feature> + <!-- cpuid level 0x00000012 ecx 0x0 features --> + <feature name='sgx-exinfo'> + <cpuid eax_in='0x12' ecx_in='0x00' ebx='0x00000001'/> + </feature> + <!-- extended features, EDX --> <feature name='syscall'> <cpuid eax_in='0x80000001' edx='0x00000800'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 5b9e61a3d0..bdada7757d 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -411,6 +411,10 @@ </feature> <!-- cpuid level 0x00000012 ecx 0x0 features --> + <feature name='sgx1'> + <cpuid eax_in='0x12' ecx_in='0x00' eax='0x00000001'/> + </feature> + <feature name='sgx-exinfo'> <cpuid eax_in='0x12' ecx_in='0x00' ebx='0x00000001'/> </feature> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index bdada7757d..273812a5d0 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -414,6 +414,9 @@ <feature name='sgx1'> <cpuid eax_in='0x12' ecx_in='0x00' eax='0x00000001'/> </feature> + <feature name='sgx2'> + <cpuid eax_in='0x12' ecx_in='0x00' eax='0x00000002'/> + </feature> <feature name='sgx-exinfo'> <cpuid eax_in='0x12' ecx_in='0x00' ebx='0x00000001'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 273812a5d0..7275ceb097 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -422,6 +422,23 @@ <cpuid eax_in='0x12' ecx_in='0x00' ebx='0x00000001'/> </feature> + <!-- cpuid level 0x00000012 ecx 0x1 features --> + <feature name='sgx-debug'> + <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000002'/> + </feature> + <feature name='sgx-mode64'> + <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000004'/> + </feature> + <feature name='sgx-provisionkey'> + <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000010'/> + </feature> + <feature name='sgx-tokenkey'> + <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000020'/> + </feature> + <feature name='sgx-kss'> + <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000080'/> + </feature> + <!-- extended features, EDX --> <feature name='syscall'> <cpuid eax_in='0x80000001' edx='0x00000800'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 7275ceb097..f3c503c42e 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -334,6 +334,9 @@ <feature name='rdpid'> <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x00400000'/> </feature> + <feature name='bus-lock-detect'> + <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x01000000'/> + </feature> <feature name='cldemote'> <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x02000000'/> </feature> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 1 + 6 files changed, 8 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index f3c503c42e..4d77f4e595 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -349,6 +349,9 @@ <feature name='sgxlc'> <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x40000000'/> </feature> + <feature name='pks'> + <cpuid eax_in='0x07' ecx_in='0x00' ecx='0x80000000'/> + </feature> <feature name='avx512-4vnniw'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000004'/> 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 cc0bfcac2d..a7b5d3047a 100644 --- a/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.0.0-tcg.x86_64.xml @@ -64,6 +64,7 @@ <feature policy='require' name='clwb'/> <feature policy='require' name='pku'/> <feature policy='require' name='la57'/> + <feature policy='require' name='pks'/> <feature policy='require' name='xsaveopt'/> <feature policy='require' name='xgetbv1'/> <feature policy='require' name='mmxext'/> 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 52071fc2c5..6354573c61 100644 --- a/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.1.0-tcg.x86_64.xml @@ -64,6 +64,7 @@ <feature policy='require' name='clwb'/> <feature policy='require' name='pku'/> <feature policy='require' name='la57'/> + <feature policy='require' name='pks'/> <feature policy='require' name='xsaveopt'/> <feature policy='require' name='xgetbv1'/> <feature policy='require' name='mmxext'/> 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 7bebc1f8b2..569cf5e77b 100644 --- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml @@ -64,6 +64,7 @@ <feature policy='require' name='clwb'/> <feature policy='require' name='pku'/> <feature policy='require' name='la57'/> + <feature policy='require' name='pks'/> <feature policy='require' name='xsaveopt'/> <feature policy='require' name='xgetbv1'/> <feature policy='require' name='mmxext'/> 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 c6a02b6512..2f0d4000ec 100644 --- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml @@ -65,6 +65,7 @@ <feature policy='require' name='umip'/> <feature policy='require' name='pku'/> <feature policy='require' name='la57'/> + <feature policy='require' name='pks'/> <feature policy='require' name='xsaveopt'/> <feature policy='require' name='xgetbv1'/> <feature policy='require' name='mmxext'/> 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 c0b59c0d44..0c37476f02 100644 --- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml @@ -65,6 +65,7 @@ <feature policy='require' name='umip'/> <feature policy='require' name='pku'/> <feature policy='require' name='la57'/> + <feature policy='require' name='pks'/> <feature policy='require' name='xsaveopt'/> <feature policy='require' name='xgetbv1'/> <feature policy='require' name='mmxext'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 4d77f4e595..194a414fdd 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -362,6 +362,9 @@ <feature name='fsrm'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000010'/> </feature> + <feature name='avx512-vp2intersect'> + <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000100'/> + </feature> <feature name='md-clear'> <alias name='md_clear'/> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 194a414fdd..0db2c6a995 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -372,6 +372,9 @@ <feature name='pconfig'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/> </feature> + <feature name='avx512-fp16'> + <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00800000'/> + </feature> <feature name='spec-ctrl'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x04000000'/> </feature> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 0db2c6a995..fd4d34bc78 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -369,6 +369,9 @@ <alias name='md_clear'/> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00000400'/> </feature> + <feature name='serialize'> + <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00004000'/> + </feature> <feature name='pconfig'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/> </feature> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index fd4d34bc78..c00308268e 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -372,6 +372,9 @@ <feature name='serialize'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00004000'/> </feature> + <feature name='tsx-ldtrk'> + <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00010000'/> + </feature> <feature name='pconfig'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/> </feature> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index c00308268e..c017b8ca3d 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -378,6 +378,9 @@ <feature name='pconfig'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00040000'/> </feature> + <feature name='arch-lbr'> + <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00080000'/> + </feature> <feature name='avx512-fp16'> <cpuid eax_in='0x07' ecx_in='0x00' edx='0x00800000'/> </feature> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index c017b8ca3d..4bbd096f71 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -422,6 +422,9 @@ <feature name='xsaves' migratable='no'> <cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000008'/> </feature> + <feature name='xfd'> + <cpuid eax_in='0x0d' ecx_in='0x01' eax='0x00000010'/> + </feature> <!-- cpuid level 0x0000000f:1 (edx) --> <feature name='mbm_total'> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 5 +++++ tests/cputestdata/x86_64-cpuid-Atom-P5362-disabled.xml | 1 + tests/cputestdata/x86_64-cpuid-Atom-P5362-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Atom-P5362-host.xml | 1 + 4 files changed, 8 insertions(+) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 4bbd096f71..6209aec646 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -463,6 +463,11 @@ <cpuid eax_in='0x12' ecx_in='0x01' eax='0x00000080'/> </feature> + <!-- cpuid level 0x00000014 ecx 0x0 features --> + <feature name='intel-pt-lip'> + <cpuid eax_in='0x14' ecx_in='0x00' ecx='0x80000000'/> + </feature> + <!-- extended features, EDX --> <feature name='syscall'> <cpuid eax_in='0x80000001' edx='0x00000800'/> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-disabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-disabled.xml index 81ffa7bfd3..dad3c90e6b 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-disabled.xml @@ -3,6 +3,7 @@ <cpuid eax_in='0x00000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x080041dc' edx='0xb0600000'/> <cpuid eax_in='0x00000007' ecx_in='0x00' eax='0x00000000' ebx='0x02001000' ecx='0x00000020' edx='0x40000000'/> <cpuid eax_in='0x0000000f' ecx_in='0x01' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000006'/> + <cpuid eax_in='0x00000014' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x80000000' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <msr index='0xcf' edx='0x00000000' eax='0x00000020'/> <msr index='0x10a' edx='0x00000000' eax='0x00000100'/> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-guest.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-guest.xml index f28e70b9e0..a21d044bd4 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-guest.xml @@ -27,6 +27,7 @@ <feature policy='require' name='xsaves'/> <feature policy='require' name='mbm_total'/> <feature policy='require' name='mbm_local'/> + <feature policy='require' name='intel-pt-lip'/> <feature policy='require' name='invtsc'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='ibrs-all'/> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-host.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-host.xml index c59ebfa799..9712ecaf63 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-host.xml @@ -56,6 +56,7 @@ <feature name='xsaves'/> <feature name='mbm_total'/> <feature name='mbm_local'/> + <feature name='intel-pt-lip'/> <feature name='rdtscp'/> <feature name='3dnowprefetch'/> <feature name='invtsc'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml | 1 + .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml | 2 +- .../cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml | 1 + .../x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml | 2 +- .../cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml | 1 + .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml | 2 +- .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 1 + .../cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 1 + .../x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml | 1 + 19 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 6209aec646..79e8610934 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -647,6 +647,9 @@ <feature name='pfthreshold'> <cpuid eax_in='0x8000000a' edx='0x00001000'/> </feature> + <feature name='avic'> + <cpuid eax_in='0x8000000a' edx='0x00002000'/> + </feature> <feature name='svme-addr-chk'> <cpuid eax_in='0x8000000a' edx='0x10000000'/> </feature> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml index 82b6c1bc1a..bb8fac53b2 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01423408' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00004000' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml index 40e7912398..84434311e5 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml @@ -27,6 +27,7 @@ <feature policy='require' name='decodeassists'/> <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> + <feature policy='require' name='avic'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> 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 debddc194f..072ece03f3 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 @@ -29,6 +29,7 @@ <feature name='decodeassists'/> <feature name='pause-filter'/> <feature name='pfthreshold'/> + <feature name='avic'/> <feature name='rdctl-no'/> <feature name='skip-l1dfl-vmentry'/> <feature name='mds-no'/> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml index 25ef2d3314..3b9286b5e0 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> </cpudata> 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 9d14213a0b..2a8d77eaa7 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 @@ -26,4 +26,5 @@ <feature policy='require' name='decodeassists'/> <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> + <feature policy='require' name='avic'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml index da05dd4709..bf948c55a7 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml @@ -28,4 +28,5 @@ <feature name='decodeassists'/> <feature name='pause-filter'/> <feature name='pfthreshold'/> + <feature name='avic'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml index f4d92cf034..e35657a140 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x08000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml index 1fee2fa9f8..355e346610 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml @@ -26,5 +26,6 @@ <feature policy='require' name='decodeassists'/> <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> + <feature policy='require' name='avic'/> <feature policy='disable' name='rdtscp'/> </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 e91c14c715..3cc3049b33 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 @@ -28,4 +28,5 @@ <feature name='decodeassists'/> <feature name='pause-filter'/> <feature name='pfthreshold'/> + <feature name='avic'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml index 25ef2d3314..3b9286b5e0 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml index 5df21521f6..078c9e710b 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml @@ -26,4 +26,5 @@ <feature policy='require' name='decodeassists'/> <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> + <feature policy='require' name='avic'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml index d06a7afc3f..57bc118776 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml @@ -28,4 +28,5 @@ <feature name='decodeassists'/> <feature name='pause-filter'/> <feature name='pfthreshold'/> + <feature name='avic'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml index a63cd5c4b4..c7e54a5ac8 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c23008' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> </cpudata> 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 9d14213a0b..2a8d77eaa7 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 @@ -26,4 +26,5 @@ <feature policy='require' name='decodeassists'/> <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> + <feature policy='require' name='avic'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml index 15ec20bd63..99452979ee 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml @@ -28,4 +28,5 @@ <feature name='decodeassists'/> <feature name='pause-filter'/> <feature name='pfthreshold'/> + <feature name='avic'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml index 869659cc80..045ea7c99a 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01423408' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00008000' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000014f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml index 6d95b508b2..758b184da9 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml @@ -26,6 +26,7 @@ <feature policy='require' name='decodeassists'/> <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> + <feature policy='require' name='avic'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml index 7f86683bf2..de5f40e4db 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml @@ -28,6 +28,7 @@ <feature name='decodeassists'/> <feature name='pause-filter'/> <feature name='pfthreshold'/> + <feature name='avic'/> <feature name='rdctl-no'/> <feature name='skip-l1dfl-vmentry'/> <feature name='mds-no'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml | 1 + .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml | 2 +- .../cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml | 1 + .../x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml | 2 +- .../cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml | 1 + .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml | 2 +- .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 1 + .../cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 1 + .../x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml | 1 + 19 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 79e8610934..b601307237 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -650,6 +650,9 @@ <feature name='avic'> <cpuid eax_in='0x8000000a' edx='0x00002000'/> </feature> + <feature name='v-vmsave-vmload'> + <cpuid eax_in='0x8000000a' edx='0x00008000'/> + </feature> <feature name='svme-addr-chk'> <cpuid eax_in='0x8000000a' edx='0x10000000'/> </feature> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml index bb8fac53b2..be9fa836e9 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01423408' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00004000' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml index 84434311e5..f823b9c63a 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml @@ -28,6 +28,7 @@ <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> + <feature policy='require' name='v-vmsave-vmload'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> 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 072ece03f3..0e2d4d735d 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 @@ -30,6 +30,7 @@ <feature name='pause-filter'/> <feature name='pfthreshold'/> <feature name='avic'/> + <feature name='v-vmsave-vmload'/> <feature name='rdctl-no'/> <feature name='skip-l1dfl-vmentry'/> <feature name='mds-no'/> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml index 3b9286b5e0..43e40c2dde 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> </cpudata> 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 2a8d77eaa7..db11367649 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 @@ -27,4 +27,5 @@ <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> + <feature policy='require' name='v-vmsave-vmload'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml index bf948c55a7..f758bf19c2 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml @@ -29,4 +29,5 @@ <feature name='pause-filter'/> <feature name='pfthreshold'/> <feature name='avic'/> + <feature name='v-vmsave-vmload'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml index e35657a140..e64b5e831c 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x08000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml index 355e346610..842d4d8e51 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml @@ -27,5 +27,6 @@ <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> + <feature policy='require' name='v-vmsave-vmload'/> <feature policy='disable' name='rdtscp'/> </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 3cc3049b33..8859aa62f3 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 @@ -29,4 +29,5 @@ <feature name='pause-filter'/> <feature name='pfthreshold'/> <feature name='avic'/> + <feature name='v-vmsave-vmload'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml index 3b9286b5e0..43e40c2dde 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml index 078c9e710b..4e3f72b690 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml @@ -27,4 +27,5 @@ <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> + <feature policy='require' name='v-vmsave-vmload'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml index 57bc118776..acdefb29e0 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml @@ -29,4 +29,5 @@ <feature name='pause-filter'/> <feature name='pfthreshold'/> <feature name='avic'/> + <feature name='v-vmsave-vmload'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml index c7e54a5ac8..bed241b6fb 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c23008' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> </cpudata> 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 2a8d77eaa7..db11367649 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 @@ -27,4 +27,5 @@ <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> + <feature policy='require' name='v-vmsave-vmload'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml index 99452979ee..0b9918b726 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml @@ -29,4 +29,5 @@ <feature name='pause-filter'/> <feature name='pfthreshold'/> <feature name='avic'/> + <feature name='v-vmsave-vmload'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml index 045ea7c99a..f2da924b62 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01423408' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00008000' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x000034f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml index 758b184da9..7e6277dc26 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml @@ -27,6 +27,7 @@ <feature policy='require' name='pause-filter'/> <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> + <feature policy='require' name='v-vmsave-vmload'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml index de5f40e4db..9b27573e43 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml @@ -29,6 +29,7 @@ <feature name='pause-filter'/> <feature name='pfthreshold'/> <feature name='avic'/> + <feature name='v-vmsave-vmload'/> <feature name='rdctl-no'/> <feature name='skip-l1dfl-vmentry'/> <feature name='mds-no'/> -- 2.36.1

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Jiri Denemark <jdenemar@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-host.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml | 1 + .../x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml | 2 +- .../cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-host.xml | 1 + .../x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml | 2 +- .../cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml | 1 + .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml | 2 +- .../x86_64-cpuid-Ryzen-7-1800X-Eight-Core-guest.xml | 1 + .../cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml | 1 + .../x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml | 2 +- tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml | 1 + tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml | 1 + tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml | 1 + tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml | 1 + 22 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index b601307237..951cbf14d8 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -653,6 +653,9 @@ <feature name='v-vmsave-vmload'> <cpuid eax_in='0x8000000a' edx='0x00008000'/> </feature> + <feature name='vgif'> + <cpuid eax_in='0x8000000a' edx='0x00010000'/> + </feature> <feature name='svme-addr-chk'> <cpuid eax_in='0x8000000a' edx='0x10000000'/> </feature> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml index be9fa836e9..f55295d649 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01423408' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00004000' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0001b4f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml index f823b9c63a..9b4ee7b959 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7502-32-Core-guest.xml @@ -29,6 +29,7 @@ <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> <feature policy='require' name='v-vmsave-vmload'/> + <feature policy='require' name='vgif'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> 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 0e2d4d735d..e348e0f6f6 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 @@ -31,6 +31,7 @@ <feature name='pfthreshold'/> <feature name='avic'/> <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/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml index 43e40c2dde..d81dfc87e4 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0001b4f6'/> </cpudata> 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 db11367649..486b41815d 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 @@ -28,4 +28,5 @@ <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> <feature policy='require' name='v-vmsave-vmload'/> + <feature policy='require' name='vgif'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml index f758bf19c2..94f832071b 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-host.xml @@ -30,4 +30,5 @@ <feature name='pfthreshold'/> <feature name='avic'/> <feature name='v-vmsave-vmload'/> + <feature name='vgif'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml index e64b5e831c..d762e4d33c 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x08000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0001b4f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml index 842d4d8e51..ca877b867b 100644 --- a/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-EPYC-7601-32-Core-ibpb-guest.xml @@ -28,5 +28,6 @@ <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> <feature policy='require' name='v-vmsave-vmload'/> + <feature policy='require' name='vgif'/> <feature policy='disable' name='rdtscp'/> </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 8859aa62f3..42b8b5f986 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 @@ -30,4 +30,5 @@ <feature name='pfthreshold'/> <feature name='avic'/> <feature name='v-vmsave-vmload'/> + <feature name='vgif'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml index 43e40c2dde..d81dfc87e4 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-disabled.xml @@ -5,5 +5,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c2300c' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0001b4f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml index 4e3f72b690..8669e5bd1b 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-guest.xml @@ -28,4 +28,5 @@ <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> <feature policy='require' name='v-vmsave-vmload'/> + <feature policy='require' name='vgif'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml index acdefb29e0..ddb14c0440 100644 --- a/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Hygon-C86-7185-32-core-host.xml @@ -30,4 +30,5 @@ <feature name='pfthreshold'/> <feature name='avic'/> <feature name='v-vmsave-vmload'/> + <feature name='vgif'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml index bed241b6fb..2ca7cce2bb 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01c23008' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00000005' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0001b4f6'/> </cpudata> 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 db11367649..486b41815d 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 @@ -28,4 +28,5 @@ <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> <feature policy='require' name='v-vmsave-vmload'/> + <feature policy='require' name='vgif'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml index 0b9918b726..1b0b0d4407 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-7-1800X-Eight-Core-host.xml @@ -30,4 +30,5 @@ <feature name='pfthreshold'/> <feature name='avic'/> <feature name='v-vmsave-vmload'/> + <feature name='vgif'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml index f2da924b62..f0a381a2f8 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-disabled.xml @@ -6,5 +6,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x01423408' edx='0x00000000'/> <cpuid eax_in='0x80000007' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x00000100'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x00008000' ecx='0x00000000' edx='0x00000000'/> - <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0000b4f6'/> + <cpuid eax_in='0x8000000a' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000000' edx='0x0001b4f6'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml index 7e6277dc26..e934f4e8ef 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-guest.xml @@ -28,6 +28,7 @@ <feature policy='require' name='pfthreshold'/> <feature policy='require' name='avic'/> <feature policy='require' name='v-vmsave-vmload'/> + <feature policy='require' name='vgif'/> <feature policy='require' name='rdctl-no'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> diff --git a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml index 9b27573e43..f1f4df1176 100644 --- a/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml +++ b/tests/cputestdata/x86_64-cpuid-Ryzen-9-3900X-12-Core-host.xml @@ -30,6 +30,7 @@ <feature name='pfthreshold'/> <feature name='avic'/> <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_6.2.0-tcg.x86_64.xml b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml index 569cf5e77b..8a009ee070 100644 --- a/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_6.2.0-tcg.x86_64.xml @@ -73,6 +73,7 @@ <feature policy='require' name='3dnow'/> <feature policy='require' name='cr8legacy'/> <feature policy='require' name='npt'/> + <feature policy='require' name='vgif'/> <feature policy='require' name='svme-addr-chk'/> <feature policy='disable' name='misalignsse'/> </mode> 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 2f0d4000ec..945ad91c66 100644 --- a/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.0.0-tcg.x86_64.xml @@ -74,6 +74,7 @@ <feature policy='require' name='3dnow'/> <feature policy='require' name='cr8legacy'/> <feature policy='require' name='npt'/> + <feature policy='require' name='vgif'/> <feature policy='require' name='svme-addr-chk'/> <feature policy='disable' name='misalignsse'/> </mode> 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 0c37476f02..f4933e435f 100644 --- a/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml +++ b/tests/domaincapsdata/qemu_7.1.0-tcg.x86_64.xml @@ -74,6 +74,7 @@ <feature policy='require' name='3dnow'/> <feature policy='require' name='cr8legacy'/> <feature policy='require' name='npt'/> + <feature policy='require' name='vgif'/> <feature policy='require' name='svme-addr-chk'/> <feature policy='disable' name='misalignsse'/> </mode> -- 2.36.1
participants (3)
-
Daniel P. Berrangé
-
Jiri Denemark
-
Tim Wiederhake