[libvirt PATCH 00/12] Add vmx-* features from qemu

For rationale, see patch 3 (cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py). Adding features in bunches (one patch per msr index), as this series is adding ~100 features. This also adds cpu features "gds-no" and "amx-complex" and brings libvirt in sync with qemu commit ad6ef0a42e. Tim Wiederhake (12): cpu_map: Add missing feature "gds-no" cpu_map: Add missing feature "amx-complex" cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py cpu_map: Add missing vmx features from MSR 0x480 cpu_map: Add missing vmx features from MSR 0x485 cpu_map: Add missing vmx features from MSR 0x48B cpu_map: Add missing vmx features from MSR 0x48C cpu_map: Add missing vmx features from MSR 0x48D cpu_map: Add missing vmx features from MSR 0x48E cpu_map: Add missing vmx features from MSR 0x48F cpu_map: Add missing vmx features from MSR 0x490 cpu_map: Add missing vmx features from MSR 0x491 src/cpu_map/sync_qemu_features_i386.py | 2 +- src/cpu_map/x86_features.xml | 295 ++++++++++++++++++ .../x86_64-cpuid-Atom-P5362-enabled.xml | 9 + .../x86_64-cpuid-Atom-P5362-json.xml | 70 +++++ .../x86_64-cpuid-Cooperlake-enabled.xml | 9 + .../x86_64-cpuid-Cooperlake-json.xml | 71 +++++ .../x86_64-cpuid-Core-i7-8550U-enabled.xml | 9 + .../x86_64-cpuid-Core-i7-8550U-json.xml | 68 ++++ ...86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 9 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 71 +++++ ...-cpuid-baseline-Cooperlake+Cascadelake.xml | 71 +++++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 68 ++++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 68 ++++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 68 ++++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 68 ++++ .../domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 + .../cpu-host-model.x86_64-4.2.0.args | 2 +- .../cpu-host-model.x86_64-5.0.0.args | 2 +- .../cpu-host-model.x86_64-latest.args | 2 +- 20 files changed, 960 insertions(+), 4 deletions(-) -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 3 +++ tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_8.2.0.x86_64.xml | 1 + tests/qemuxml2argvdata/cpu-host-model.x86_64-latest.args | 2 +- 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 5845a2331b..d136d78368 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -775,6 +775,9 @@ <feature name='pbrsb-no'> <msr index='0x10a' edx='0x00000000' eax='0x01000000'/> </feature> + <feature name='gds-no'> + <msr index='0x10a' edx='0x00000000' eax='0x04000000'/> + </feature> <!-- IA32_CORE_CAPABILITIES features --> <feature name='split-lock-detect'> diff --git a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml index bb3578d5d7..f711a51044 100644 --- a/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0-q35.x86_64.xml @@ -69,6 +69,7 @@ <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> <feature policy='require' name='pschange-mc-no'/> + <feature policy='require' name='gds-no'/> <feature policy='disable' name='xsaves'/> </mode> <mode name='custom' supported='yes'> diff --git a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml index 1be5ff2c93..bc060e21b6 100644 --- a/tests/domaincapsdata/qemu_8.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_8.2.0.x86_64.xml @@ -68,6 +68,7 @@ <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> <feature policy='require' name='pschange-mc-no'/> + <feature policy='require' name='gds-no'/> <feature policy='disable' name='xsaves'/> </mode> <mode name='custom' supported='yes'> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-latest.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-latest.args index dba1d9b65a..a9b8f5a7d4 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-latest.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-latest.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object '{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes"}' \ -machine q35,usb=off,dump-guest-core=off,memory-backend=pc.ram,acpi=off \ -accel kvm \ --cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,xsaves=off \ +-cpu EPYC-Rome,x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,stibp=on,arch-capabilities=on,ssbd=on,cmp-legacy=on,amd-ssbd=on,virt-ssbd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,svme-addr-chk=on,lfence-always-serializing=on,null-sel-clr-base=on,rdctl-no=on,skip-l1dfl-vmentry=on,mds-no=on,pschange-mc-no=on,gds-no=on,xsaves=off \ -m size=219136k \ -object '{"qom-type":"memory-backend-ram","id":"pc.ram","size":224395264}' \ -overcommit mem-lock=off \ -- 2.39.2

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 d136d78368..978b04e615 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -444,6 +444,9 @@ <feature name='avx-ne-convert'> <cpuid eax_in='0x07' ecx_in='0x01' edx='0x00000020'/> </feature> + <feature name='amx-complex'> + <cpuid eax_in='0x07' ecx_in='0x01' edx='0x00000100'/> + </feature> <feature name='prefetchiti'> <cpuid eax_in='0x07' ecx_in='0x01' edx='0x00004000'/> </feature> -- 2.39.2

Some guest OSes require cpu features from the vmx-* family, e.g. vmx-xsaves. Up to now, libvirt ignored these features as they were not required yet. qemu does not automatically enable e.g. "vmx-xsaves" when requesting "xsaves": qmp="qemu-kvm -machine accel=kvm -nodefaults -nographic -qmp stdio" $(qmp) <<-EOF | jq | grep "xsaves" { "execute": "qmp_capabilities" } { "execute": "query-cpu-model-expansion", "arguments": { "type": "full", "model": { "name": "Skylake-Client-v1", "props": { "xsaves": true } `# set to "true" or "false"` } } } { "execute": "quit" } EOF with xsaves "false": "xsaves": false, "vmx-xsaves": false, with xsaves "true": "xsaves": true, "vmx-xsaves": false, Stop ignoring vmx-* features and begin adding them to libvirt's database. Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/sync_qemu_features_i386.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpu_map/sync_qemu_features_i386.py b/src/cpu_map/sync_qemu_features_i386.py index 9e77d44bae..dcd58cd590 100755 --- a/src/cpu_map/sync_qemu_features_i386.py +++ b/src/cpu_map/sync_qemu_features_i386.py @@ -99,7 +99,7 @@ def ignore_feature(feature): name = feature["name"] - if name.startswith("x-") or name.startswith("vmx-"): + if name.startswith("x-"): return True if name in ignored_features: -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 10 ++++++++++ tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml | 1 + tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml | 2 ++ tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml | 1 + tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml | 2 ++ .../cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml | 2 ++ .../x86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 2 ++ .../x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml | 2 ++ tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 2 ++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 2 ++ tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 2 ++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 2 ++ .../qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args | 2 +- .../qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 978b04e615..407cf65acc 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -786,4 +786,14 @@ <feature name='split-lock-detect'> <msr index='0xcf' edx='0x00000000' eax='0x00000020'/> </feature> + + <feature name='vmx-ins-outs'> + <msr index='0x480' edx='0x00400000' eax='0x00000000'/> + </feature> + <feature name='vmx-true-ctls'> + <msr index='0x480' edx='0x00800000' eax='0x00000000'/> + </feature> + <feature name='vmx-any-errcode'> + <msr index='0x480' edx='0x01000000' eax='0x00000000'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index 2214d448ef..d294f3bc85 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -7,4 +7,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000101' edx='0x28100800'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01009000' ecx='0x00000000' edx='0x00000000'/> <msr index='0x10a' edx='0x00000000' eax='0x0000006b'/> + <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index bbe0919706..717ef008d4 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -18,6 +18,8 @@ <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='mds-no'/> <feature policy='require' name='pschange-mc-no'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index 1d91c3efa8..adfb882881 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -8,4 +8,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01009000' ecx='0x00000000' edx='0x00000000'/> <msr index='0x10a' edx='0x00000000' eax='0x000001eb'/> + <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index c89e0e5350..8dd5ebbc05 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -13,4 +13,6 @@ <feature policy='require' name='amd-stibp'/> <feature policy='require' name='amd-ssbd'/> <feature policy='require' name='tsx-ctrl'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index 57f8ebabba..9e0de97f63 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -6,4 +6,5 @@ <cpuid eax_in='0x0000000d' ecx_in='0x01' eax='0x0000000f' ebx='0x00000000' ecx='0x00000000' edx='0x00000000'/> <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/> <msr index='0x10a' edx='0x00000000' eax='0x00000048'/> + <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index 4774d39c7e..4056f4bcac 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -15,6 +15,8 @@ <feature policy='require' name='pdpe1gb'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='pschange-mc-no'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index cd082feffe..4b1c06e18f 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -7,4 +7,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/> <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01001000' ecx='0x00000000' edx='0x00000000'/> <msr index='0x10a' edx='0x00000000' eax='0x000000eb'/> + <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index 10c256ee1e..1593e37302 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -19,4 +19,6 @@ <feature policy='require' name='mds-no'/> <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='tsx-ctrl'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index ecac749b97..63fcf0cf43 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -19,4 +19,6 @@ <feature policy='require' name='mds-no'/> <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='tsx-ctrl'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index 3cbd234f9b..03df6677e1 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -59,6 +59,8 @@ <feature policy='require' name='invtsc'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='pschange-mc-no'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index 274c1ea8d8..a4230b2465 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -58,6 +58,8 @@ <feature policy='require' name='invtsc'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='pschange-mc-no'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index f17a775344..ce1a0a9cfe 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -59,6 +59,8 @@ <feature policy='require' name='invtsc'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='pschange-mc-no'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index a2e5dc2be4..0f21fb43c9 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -58,6 +58,8 @@ <feature policy='require' name='invtsc'/> <feature policy='require' name='skip-l1dfl-vmentry'/> <feature policy='require' name='pschange-mc-no'/> + <feature policy='require' name='vmx-ins-outs'/> + <feature policy='require' name='vmx-true-ctls'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index 945163795d..8caaa1872d 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index 95c88f1ace..930336672c 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 19 +++++++++++++++++++ .../x86_64-cpuid-Atom-P5362-enabled.xml | 1 + .../x86_64-cpuid-Atom-P5362-json.xml | 3 +++ .../x86_64-cpuid-Cooperlake-enabled.xml | 1 + .../x86_64-cpuid-Cooperlake-json.xml | 3 +++ .../x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-json.xml | 3 +++ ...86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 3 +++ ...-cpuid-baseline-Cooperlake+Cascadelake.xml | 3 +++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 3 +++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 3 +++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 3 +++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 3 +++ .../cpu-host-model.x86_64-4.2.0.args | 2 +- .../cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 52 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 407cf65acc..c17a76aeb8 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -796,4 +796,23 @@ <feature name='vmx-any-errcode'> <msr index='0x480' edx='0x01000000' eax='0x00000000'/> </feature> + + <feature name='vmx-store-lma'> + <msr index='0x485' edx='0x00000000' eax='0x00000020'/> + </feature> + <feature name='vmx-activity-hlt'> + <msr index='0x485' edx='0x00000000' eax='0x00000040'/> + </feature> + <feature name='vmx-activity-shutdown'> + <msr index='0x485' edx='0x00000000' eax='0x00000080'/> + </feature> + <feature name='vmx-activity-wait-sipi'> + <msr index='0x485' edx='0x00000000' eax='0x00000100'/> + </feature> + <feature name='vmx-vmwrite-vmexit-fields'> + <msr index='0x485' edx='0x00000000' eax='0x20000000'/> + </feature> + <feature name='vmx-zero-len-inject'> + <msr index='0x485' edx='0x00000000' eax='0x40000000'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index d294f3bc85..2508e56694 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -8,4 +8,5 @@ <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01009000' ecx='0x00000000' edx='0x00000000'/> <msr index='0x10a' edx='0x00000000' eax='0x0000006b'/> <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> + <msr index='0x485' edx='0x00000000' eax='0x20000060'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index 717ef008d4..2c5a1e3dfe 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -20,6 +20,9 @@ <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index adfb882881..1e56a64fef 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -9,4 +9,5 @@ <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01009000' ecx='0x00000000' edx='0x00000000'/> <msr index='0x10a' edx='0x00000000' eax='0x000001eb'/> <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> + <msr index='0x485' edx='0x00000000' eax='0x20000060'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index 8dd5ebbc05..082c526606 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -15,4 +15,7 @@ <feature policy='require' name='tsx-ctrl'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index 9e0de97f63..db7f67163a 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -7,4 +7,5 @@ <cpuid eax_in='0x80000001' ecx_in='0x00' eax='0x00000000' ebx='0x00000000' ecx='0x00000121' edx='0x2c100800'/> <msr index='0x10a' edx='0x00000000' eax='0x00000048'/> <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> + <msr index='0x485' edx='0x00000000' eax='0x20000060'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index 4056f4bcac..748817c533 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -17,6 +17,9 @@ <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index 4b1c06e18f..d404229290 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -8,4 +8,5 @@ <cpuid eax_in='0x80000008' ecx_in='0x00' eax='0x00000000' ebx='0x01001000' ecx='0x00000000' edx='0x00000000'/> <msr index='0x10a' edx='0x00000000' eax='0x000000eb'/> <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> + <msr index='0x485' edx='0x00000000' eax='0x20000060'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index 1593e37302..3c46045396 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -21,4 +21,7 @@ <feature policy='require' name='tsx-ctrl'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index 63fcf0cf43..afd525ada0 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -21,4 +21,7 @@ <feature policy='require' name='tsx-ctrl'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index 03df6677e1..bf65363e24 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -61,6 +61,9 @@ <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index a4230b2465..e5b0a97a90 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -60,6 +60,9 @@ <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index ce1a0a9cfe..e6aea45834 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -61,6 +61,9 @@ <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index 0f21fb43c9..b3cd733217 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -60,6 +60,9 @@ <feature policy='require' name='pschange-mc-no'/> <feature policy='require' name='vmx-ins-outs'/> <feature policy='require' name='vmx-true-ctls'/> + <feature policy='require' name='vmx-store-lma'/> + <feature policy='require' name='vmx-activity-hlt'/> + <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index 8caaa1872d..dd5d3fdeb8 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index 930336672c..472d1f70ef 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 64 +++++++++++++++++++ .../x86_64-cpuid-Atom-P5362-enabled.xml | 1 + .../x86_64-cpuid-Atom-P5362-json.xml | 16 +++++ .../x86_64-cpuid-Cooperlake-enabled.xml | 1 + .../x86_64-cpuid-Cooperlake-json.xml | 17 +++++ .../x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-json.xml | 15 +++++ ...86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 17 +++++ ...-cpuid-baseline-Cooperlake+Cascadelake.xml | 17 +++++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 15 +++++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 15 +++++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 15 +++++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 15 +++++ .../cpu-host-model.x86_64-4.2.0.args | 2 +- .../cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 212 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index c17a76aeb8..7b6ff44c20 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -815,4 +815,68 @@ <feature name='vmx-zero-len-inject'> <msr index='0x485' edx='0x00000000' eax='0x40000000'/> </feature> + + <feature name='vmx-apicv-xapic'> + <msr index='0x48b' edx='0x00000000' eax='0x00000001'/> + </feature> + <feature name='vmx-ept'> + <msr index='0x48b' edx='0x00000000' eax='0x00000002'/> + </feature> + <feature name='vmx-desc-exit'> + <msr index='0x48b' edx='0x00000000' eax='0x00000004'/> + </feature> + <feature name='vmx-rdtscp-exit'> + <msr index='0x48b' edx='0x00000000' eax='0x00000008'/> + </feature> + <feature name='vmx-apicv-x2apic'> + <msr index='0x48b' edx='0x00000000' eax='0x00000010'/> + </feature> + <feature name='vmx-vpid'> + <msr index='0x48b' edx='0x00000000' eax='0x00000020'/> + </feature> + <feature name='vmx-wbinvd-exit'> + <msr index='0x48b' edx='0x00000000' eax='0x00000040'/> + </feature> + <feature name='vmx-unrestricted-guest'> + <msr index='0x48b' edx='0x00000000' eax='0x00000080'/> + </feature> + <feature name='vmx-apicv-register'> + <msr index='0x48b' edx='0x00000000' eax='0x00000100'/> + </feature> + <feature name='vmx-apicv-vid'> + <msr index='0x48b' edx='0x00000000' eax='0x00000200'/> + </feature> + <feature name='vmx-ple'> + <msr index='0x48b' edx='0x00000000' eax='0x00000400'/> + </feature> + <feature name='vmx-rdrand-exit'> + <msr index='0x48b' edx='0x00000000' eax='0x00000800'/> + </feature> + <feature name='vmx-invpcid-exit'> + <msr index='0x48b' edx='0x00000000' eax='0x00001000'/> + </feature> + <feature name='vmx-vmfunc'> + <msr index='0x48b' edx='0x00000000' eax='0x00002000'/> + </feature> + <feature name='vmx-shadow-vmcs'> + <msr index='0x48b' edx='0x00000000' eax='0x00004000'/> + </feature> + <feature name='vmx-encls-exit'> + <msr index='0x48b' edx='0x00000000' eax='0x00008000'/> + </feature> + <feature name='vmx-rdseed-exit'> + <msr index='0x48b' edx='0x00000000' eax='0x00010000'/> + </feature> + <feature name='vmx-pml'> + <msr index='0x48b' edx='0x00000000' eax='0x00020000'/> + </feature> + <feature name='vmx-xsaves'> + <msr index='0x48b' edx='0x00000000' eax='0x00100000'/> + </feature> + <feature name='vmx-tsc-scaling'> + <msr index='0x48b' edx='0x00000000' eax='0x02000000'/> + </feature> + <feature name='vmx-enable-user-wait-pause'> + <msr index='0x48b' edx='0x00000000' eax='0x04000000'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index 2508e56694..7a1f047382 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -9,4 +9,5 @@ <msr index='0x10a' edx='0x00000000' eax='0x0000006b'/> <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> <msr index='0x485' edx='0x00000000' eax='0x20000060'/> + <msr index='0x48b' edx='0x00000000' eax='0x00136bff'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index 2c5a1e3dfe..bb4259058a 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -23,6 +23,22 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-apicv-register'/> + <feature policy='require' name='vmx-apicv-vid'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index 1e56a64fef..01d81a64a6 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -10,4 +10,5 @@ <msr index='0x10a' edx='0x00000000' eax='0x000001eb'/> <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> <msr index='0x485' edx='0x00000000' eax='0x20000060'/> + <msr index='0x48b' edx='0x00000000' eax='0x00137bff'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index 082c526606..bb1d2f628c 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -18,4 +18,21 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-apicv-register'/> + <feature policy='require' name='vmx-apicv-vid'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-invpcid-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index db7f67163a..1bf7882b2e 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -8,4 +8,5 @@ <msr index='0x10a' edx='0x00000000' eax='0x00000048'/> <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> <msr index='0x485' edx='0x00000000' eax='0x20000060'/> + <msr index='0x48b' edx='0x00000000' eax='0x001378ff'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index 748817c533..e150ef4004 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -20,6 +20,21 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-invpcid-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index d404229290..b7ffbb2708 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -9,4 +9,5 @@ <msr index='0x10a' edx='0x00000000' eax='0x000000eb'/> <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> <msr index='0x485' edx='0x00000000' eax='0x20000060'/> + <msr index='0x48b' edx='0x00000000' eax='0x00137bff'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index 3c46045396..2813c72012 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -24,4 +24,21 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-apicv-register'/> + <feature policy='require' name='vmx-apicv-vid'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-invpcid-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index afd525ada0..ca6387e390 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -24,4 +24,21 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-apicv-register'/> + <feature policy='require' name='vmx-apicv-vid'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-invpcid-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index bf65363e24..398a027e92 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -64,6 +64,21 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-invpcid-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index e5b0a97a90..446bf915a5 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -63,6 +63,21 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-invpcid-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index e6aea45834..c1dd623709 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -64,6 +64,21 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-invpcid-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index b3cd733217..4618fd24e4 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -63,6 +63,21 @@ <feature policy='require' name='vmx-store-lma'/> <feature policy='require' name='vmx-activity-hlt'/> <feature policy='require' name='vmx-vmwrite-vmexit-fields'/> + <feature policy='require' name='vmx-apicv-xapic'/> + <feature policy='require' name='vmx-ept'/> + <feature policy='require' name='vmx-desc-exit'/> + <feature policy='require' name='vmx-rdtscp-exit'/> + <feature policy='require' name='vmx-apicv-x2apic'/> + <feature policy='require' name='vmx-vpid'/> + <feature policy='require' name='vmx-wbinvd-exit'/> + <feature policy='require' name='vmx-unrestricted-guest'/> + <feature policy='require' name='vmx-rdrand-exit'/> + <feature policy='require' name='vmx-invpcid-exit'/> + <feature policy='require' name='vmx-vmfunc'/> + <feature policy='require' name='vmx-shadow-vmcs'/> + <feature policy='require' name='vmx-rdseed-exit'/> + <feature policy='require' name='vmx-pml'/> + <feature policy='require' name='vmx-xsaves'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index dd5d3fdeb8..22e4023886 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index 472d1f70ef..df890b9f89 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

Differences from qemu: * "vmx-ept-uc" (bit 8) and "vmx-ept-wb" (bit 14) are not added to qemu's list of named features yet, but used in several qemu cpu models never the less. Add to libvirt regardless. * "vmx-invvpid-single-context" (bit 41) is erroneously called "vmx-invept-single-context" in qemu. This is the name of the feature associated with bit 25 in both libvirt and qemu. * "vmx-invvpid-single-context-noglobals" (bit 43) is erroneously called "vmx-invept-single-context-noglobals". Use the correct name. Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 53 +++++++++++++++++++ .../x86_64-cpuid-Atom-P5362-enabled.xml | 1 + .../x86_64-cpuid-Atom-P5362-json.xml | 11 ++++ .../x86_64-cpuid-Cooperlake-enabled.xml | 1 + .../x86_64-cpuid-Cooperlake-json.xml | 11 ++++ .../x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-json.xml | 11 ++++ ...86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 11 ++++ ...-cpuid-baseline-Cooperlake+Cascadelake.xml | 11 ++++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 11 ++++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 11 ++++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 11 ++++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 11 ++++ .../cpu-host-model.x86_64-4.2.0.args | 2 +- .../cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 158 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 7b6ff44c20..f37b817013 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -879,4 +879,57 @@ <feature name='vmx-enable-user-wait-pause'> <msr index='0x48b' edx='0x00000000' eax='0x04000000'/> </feature> + + <feature name='vmx-invvpid'> + <msr index='0x48c' edx='0x00000001' eax='0x00000000'/> + </feature> + <feature name='vmx-invvpid-single-addr'> + <msr index='0x48c' edx='0x00000100' eax='0x00000000'/> + </feature> + <feature name='vmx-invvpid-single-context'> + <msr index='0x48c' edx='0x00000200' eax='0x00000000'/> + </feature> + <feature name='vmx-invvpid-all-context'> + <msr index='0x48c' edx='0x00000400' eax='0x00000000'/> + </feature> + <feature name='vmx-invvpid-single-context-noglobals'> + <alias name='vmx-invept-single-context-noglobals' source='qemu'/> + <msr index='0x48c' edx='0x00000800' eax='0x00000000'/> + </feature> + <feature name='vmx-ept-execonly'> + <msr index='0x48c' edx='0x00000000' eax='0x00000001'/> + </feature> + <feature name='vmx-page-walk-4'> + <msr index='0x48c' edx='0x00000000' eax='0x00000040'/> + </feature> + <feature name='vmx-page-walk-5'> + <msr index='0x48c' edx='0x00000000' eax='0x00000080'/> + </feature> + <feature name='vmx-ept-uc'> + <msr index='0x48c' edx='0x00000000' eax='0x00000100'/> + </feature> + <feature name='vmx-ept-wb'> + <msr index='0x48c' edx='0x00000000' eax='0x00004000'/> + </feature> + <feature name='vmx-ept-2mb'> + <msr index='0x48c' edx='0x00000000' eax='0x00010000'/> + </feature> + <feature name='vmx-ept-1gb'> + <msr index='0x48c' edx='0x00000000' eax='0x00020000'/> + </feature> + <feature name='vmx-invept'> + <msr index='0x48c' edx='0x00000000' eax='0x00100000'/> + </feature> + <feature name='vmx-eptad'> + <msr index='0x48c' edx='0x00000000' eax='0x00200000'/> + </feature> + <feature name='vmx-ept-advanced-exitinfo'> + <msr index='0x48c' edx='0x00000000' eax='0x00400000'/> + </feature> + <feature name='vmx-invept-single-context'> + <msr index='0x48c' edx='0x00000000' eax='0x02000000'/> + </feature> + <feature name='vmx-invept-all-context'> + <msr index='0x48c' edx='0x00000000' eax='0x04000000'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index 7a1f047382..195bf88765 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -10,4 +10,5 @@ <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> <msr index='0x485' edx='0x00000000' eax='0x20000060'/> <msr index='0x48b' edx='0x00000000' eax='0x00136bff'/> + <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index bb4259058a..d7d8d89d42 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -39,6 +39,17 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index 01d81a64a6..7acddcae81 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -11,4 +11,5 @@ <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> <msr index='0x485' edx='0x00000000' eax='0x20000060'/> <msr index='0x48b' edx='0x00000000' eax='0x00137bff'/> + <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index bb1d2f628c..1dee592f23 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -35,4 +35,15 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index 1bf7882b2e..1309da972b 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -9,4 +9,5 @@ <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> <msr index='0x485' edx='0x00000000' eax='0x20000060'/> <msr index='0x48b' edx='0x00000000' eax='0x001378ff'/> + <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index e150ef4004..8e590da2c9 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -35,6 +35,17 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index b7ffbb2708..a9bf08018a 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -10,4 +10,5 @@ <msr index='0x480' edx='0x00c00000' eax='0x00000000'/> <msr index='0x485' edx='0x00000000' eax='0x20000060'/> <msr index='0x48b' edx='0x00000000' eax='0x00137bff'/> + <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index 2813c72012..edb4dfbb5c 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -41,4 +41,15 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index ca6387e390..0918fc96cb 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -41,4 +41,15 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index 398a027e92..563c2cbd24 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -79,6 +79,17 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index 446bf915a5..2ee9422dd3 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -78,6 +78,17 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index c1dd623709..fbb7549ef5 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -79,6 +79,17 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index 4618fd24e4..e8cd88a755 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -78,6 +78,17 @@ <feature policy='require' name='vmx-rdseed-exit'/> <feature policy='require' name='vmx-pml'/> <feature policy='require' name='vmx-xsaves'/> + <feature policy='require' name='vmx-invvpid'/> + <feature policy='require' name='vmx-invvpid-single-addr'/> + <feature policy='require' name='vmx-invvpid-all-context'/> + <feature policy='require' name='vmx-ept-execonly'/> + <feature policy='require' name='vmx-page-walk-4'/> + <feature policy='require' name='vmx-ept-2mb'/> + <feature policy='require' name='vmx-ept-1gb'/> + <feature policy='require' name='vmx-invept'/> + <feature policy='require' name='vmx-eptad'/> + <feature policy='require' name='vmx-invept-single-context'/> + <feature policy='require' name='vmx-invept-all-context'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index 22e4023886..7f06d6c410 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index df890b9f89..030d129e66 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 16 ++++++++++++++++ .../x86_64-cpuid-Atom-P5362-enabled.xml | 1 + .../cputestdata/x86_64-cpuid-Atom-P5362-json.xml | 5 +++++ .../x86_64-cpuid-Cooperlake-enabled.xml | 1 + .../cputestdata/x86_64-cpuid-Cooperlake-json.xml | 5 +++++ .../x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-json.xml | 4 ++++ .../x86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 5 +++++ ..._64-cpuid-baseline-Cooperlake+Cascadelake.xml | 5 +++++ tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 4 ++++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 4 ++++ tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 4 ++++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 4 ++++ .../cpu-host-model.x86_64-4.2.0.args | 2 +- .../cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index f37b817013..6e427c3998 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -932,4 +932,20 @@ <feature name='vmx-invept-all-context'> <msr index='0x48c' edx='0x00000000' eax='0x04000000'/> </feature> + + <feature name='vmx-intr-exit'> + <msr index='0x48d' edx='0x00000000' eax='0x00000001'/> + </feature> + <feature name='vmx-nmi-exit'> + <msr index='0x48d' edx='0x00000000' eax='0x00000008'/> + </feature> + <feature name='vmx-vnmi'> + <msr index='0x48d' edx='0x00000000' eax='0x00000020'/> + </feature> + <feature name='vmx-preemption-timer'> + <msr index='0x48d' edx='0x00000000' eax='0x00000040'/> + </feature> + <feature name='vmx-posted-intr'> + <msr index='0x48d' edx='0x00000000' eax='0x00000080'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index 195bf88765..52c23315b3 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -11,4 +11,5 @@ <msr index='0x485' edx='0x00000000' eax='0x20000060'/> <msr index='0x48b' edx='0x00000000' eax='0x00136bff'/> <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> + <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index d7d8d89d42..4583c000b7 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -50,6 +50,11 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-posted-intr'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index 7acddcae81..0720cfa332 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -12,4 +12,5 @@ <msr index='0x485' edx='0x00000000' eax='0x20000060'/> <msr index='0x48b' edx='0x00000000' eax='0x00137bff'/> <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> + <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index 1dee592f23..d6f4317d69 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -46,4 +46,9 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-posted-intr'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index 1309da972b..8cdc42a401 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -10,4 +10,5 @@ <msr index='0x485' edx='0x00000000' eax='0x20000060'/> <msr index='0x48b' edx='0x00000000' eax='0x001378ff'/> <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> + <msr index='0x48d' edx='0x00000000' eax='0x00000069'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index 8e590da2c9..9c2014affc 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -46,6 +46,10 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index a9bf08018a..dabcd6c793 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -11,4 +11,5 @@ <msr index='0x485' edx='0x00000000' eax='0x20000060'/> <msr index='0x48b' edx='0x00000000' eax='0x00137bff'/> <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> + <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index edb4dfbb5c..5128582940 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -52,4 +52,9 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-posted-intr'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index 0918fc96cb..36db05d0a1 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -52,4 +52,9 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-posted-intr'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index 563c2cbd24..5d1e1ef6c3 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -90,6 +90,10 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index 2ee9422dd3..00687b8a5e 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -89,6 +89,10 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index fbb7549ef5..83beaad6ac 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -90,6 +90,10 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index e8cd88a755..1fe5c0196f 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -89,6 +89,10 @@ <feature policy='require' name='vmx-eptad'/> <feature policy='require' name='vmx-invept-single-context'/> <feature policy='require' name='vmx-invept-all-context'/> + <feature policy='require' name='vmx-intr-exit'/> + <feature policy='require' name='vmx-nmi-exit'/> + <feature policy='require' name='vmx-vnmi'/> + <feature policy='require' name='vmx-preemption-timer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index 7f06d6c410..2611cf3265 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index 030d129e66..02baa07418 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 64 +++++++++++++++++++ .../x86_64-cpuid-Atom-P5362-enabled.xml | 1 + .../x86_64-cpuid-Atom-P5362-json.xml | 21 ++++++ .../x86_64-cpuid-Cooperlake-enabled.xml | 1 + .../x86_64-cpuid-Cooperlake-json.xml | 21 ++++++ .../x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-json.xml | 21 ++++++ ...86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 21 ++++++ ...-cpuid-baseline-Cooperlake+Cascadelake.xml | 21 ++++++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 21 ++++++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 21 ++++++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 21 ++++++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 21 ++++++ .../cpu-host-model.x86_64-4.2.0.args | 2 +- .../cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 259 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 6e427c3998..2583f1c825 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -948,4 +948,68 @@ <feature name='vmx-posted-intr'> <msr index='0x48d' edx='0x00000000' eax='0x00000080'/> </feature> + + <feature name='vmx-vintr-pending'> + <msr index='0x48e' edx='0x00000000' eax='0x00000004'/> + </feature> + <feature name='vmx-tsc-offset'> + <msr index='0x48e' edx='0x00000000' eax='0x00000008'/> + </feature> + <feature name='vmx-hlt-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x00000080'/> + </feature> + <feature name='vmx-invlpg-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x00000200'/> + </feature> + <feature name='vmx-mwait-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x00000400'/> + </feature> + <feature name='vmx-rdpmc-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x00000800'/> + </feature> + <feature name='vmx-rdtsc-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x00001000'/> + </feature> + <feature name='vmx-cr3-load-noexit'> + <msr index='0x48e' edx='0x00000000' eax='0x00008000'/> + </feature> + <feature name='vmx-cr3-store-noexit'> + <msr index='0x48e' edx='0x00000000' eax='0x00010000'/> + </feature> + <feature name='vmx-cr8-load-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x00080000'/> + </feature> + <feature name='vmx-cr8-store-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x00100000'/> + </feature> + <feature name='vmx-flexpriority'> + <msr index='0x48e' edx='0x00000000' eax='0x00200000'/> + </feature> + <feature name='vmx-vnmi-pending'> + <msr index='0x48e' edx='0x00000000' eax='0x00400000'/> + </feature> + <feature name='vmx-movdr-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x00800000'/> + </feature> + <feature name='vmx-io-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x01000000'/> + </feature> + <feature name='vmx-io-bitmap'> + <msr index='0x48e' edx='0x00000000' eax='0x02000000'/> + </feature> + <feature name='vmx-mtf'> + <msr index='0x48e' edx='0x00000000' eax='0x08000000'/> + </feature> + <feature name='vmx-msr-bitmap'> + <msr index='0x48e' edx='0x00000000' eax='0x10000000'/> + </feature> + <feature name='vmx-monitor-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x20000000'/> + </feature> + <feature name='vmx-pause-exit'> + <msr index='0x48e' edx='0x00000000' eax='0x40000000'/> + </feature> + <feature name='vmx-secondary-ctls'> + <msr index='0x48e' edx='0x00000000' eax='0x80000000'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index 52c23315b3..b8dc58f048 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -12,4 +12,5 @@ <msr index='0x48b' edx='0x00000000' eax='0x00136bff'/> <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> + <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index 4583c000b7..9c115e2bfc 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -55,6 +55,27 @@ <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> <feature policy='require' name='vmx-posted-intr'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index 0720cfa332..c1dc3191ae 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -13,4 +13,5 @@ <msr index='0x48b' edx='0x00000000' eax='0x00137bff'/> <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> + <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index d6f4317d69..da24c5f06e 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -51,4 +51,25 @@ <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> <feature policy='require' name='vmx-posted-intr'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index 8cdc42a401..e37e437d37 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -11,4 +11,5 @@ <msr index='0x48b' edx='0x00000000' eax='0x001378ff'/> <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> <msr index='0x48d' edx='0x00000000' eax='0x00000069'/> + <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index 9c2014affc..247dbaa4cd 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -50,6 +50,27 @@ <feature policy='require' name='vmx-nmi-exit'/> <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index dabcd6c793..52763c7ddb 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -12,4 +12,5 @@ <msr index='0x48b' edx='0x00000000' eax='0x00137bff'/> <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> + <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index 5128582940..f38ff7de22 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -57,4 +57,25 @@ <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> <feature policy='require' name='vmx-posted-intr'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index 36db05d0a1..66327d5abb 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -57,4 +57,25 @@ <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> <feature policy='require' name='vmx-posted-intr'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index 5d1e1ef6c3..713ecbcb08 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -94,6 +94,27 @@ <feature policy='require' name='vmx-nmi-exit'/> <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index 00687b8a5e..0aef295df2 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -93,6 +93,27 @@ <feature policy='require' name='vmx-nmi-exit'/> <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index 83beaad6ac..e3dd4a82d0 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -94,6 +94,27 @@ <feature policy='require' name='vmx-nmi-exit'/> <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index 1fe5c0196f..54edcf4632 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -93,6 +93,27 @@ <feature policy='require' name='vmx-nmi-exit'/> <feature policy='require' name='vmx-vnmi'/> <feature policy='require' name='vmx-preemption-timer'/> + <feature policy='require' name='vmx-vintr-pending'/> + <feature policy='require' name='vmx-tsc-offset'/> + <feature policy='require' name='vmx-hlt-exit'/> + <feature policy='require' name='vmx-invlpg-exit'/> + <feature policy='require' name='vmx-mwait-exit'/> + <feature policy='require' name='vmx-rdpmc-exit'/> + <feature policy='require' name='vmx-rdtsc-exit'/> + <feature policy='require' name='vmx-cr3-load-noexit'/> + <feature policy='require' name='vmx-cr3-store-noexit'/> + <feature policy='require' name='vmx-cr8-load-exit'/> + <feature policy='require' name='vmx-cr8-store-exit'/> + <feature policy='require' name='vmx-flexpriority'/> + <feature policy='require' name='vmx-vnmi-pending'/> + <feature policy='require' name='vmx-movdr-exit'/> + <feature policy='require' name='vmx-io-exit'/> + <feature policy='require' name='vmx-io-bitmap'/> + <feature policy='require' name='vmx-mtf'/> + <feature policy='require' name='vmx-msr-bitmap'/> + <feature policy='require' name='vmx-monitor-exit'/> + <feature policy='require' name='vmx-pause-exit'/> + <feature policy='require' name='vmx-secondary-ctls'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index 2611cf3265..d7d30c733c 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index 02baa07418..707749596f 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 34 +++++++++++++++++++ .../x86_64-cpuid-Atom-P5362-enabled.xml | 1 + .../x86_64-cpuid-Atom-P5362-json.xml | 7 ++++ .../x86_64-cpuid-Cooperlake-enabled.xml | 1 + .../x86_64-cpuid-Cooperlake-json.xml | 7 ++++ .../x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-json.xml | 7 ++++ ...86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 7 ++++ ...-cpuid-baseline-Cooperlake+Cascadelake.xml | 7 ++++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 7 ++++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 7 ++++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 7 ++++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 7 ++++ .../cpu-host-model.x86_64-4.2.0.args | 2 +- .../cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 103 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 2583f1c825..396f081974 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -1012,4 +1012,38 @@ <feature name='vmx-secondary-ctls'> <msr index='0x48e' edx='0x00000000' eax='0x80000000'/> </feature> + + <feature name='vmx-exit-nosave-debugctl'> + <msr index='0x48f' edx='0x00000000' eax='0x00000004'/> + </feature> + <feature name='vmx-exit-load-perf-global-ctrl'> + <msr index='0x48f' edx='0x00000000' eax='0x00001000'/> + </feature> + <feature name='vmx-exit-ack-intr'> + <msr index='0x48f' edx='0x00000000' eax='0x00008000'/> + </feature> + <feature name='vmx-exit-save-pat'> + <msr index='0x48f' edx='0x00000000' eax='0x00040000'/> + </feature> + <feature name='vmx-exit-load-pat'> + <msr index='0x48f' edx='0x00000000' eax='0x00080000'/> + </feature> + <feature name='vmx-exit-save-efer'> + <msr index='0x48f' edx='0x00000000' eax='0x00100000'/> + </feature> + <feature name='vmx-exit-load-efer'> + <msr index='0x48f' edx='0x00000000' eax='0x00200000'/> + </feature> + <feature name='vmx-exit-save-preemption-timer'> + <msr index='0x48f' edx='0x00000000' eax='0x00400000'/> + </feature> + <feature name='vmx-exit-clear-bndcfgs'> + <msr index='0x48f' edx='0x00000000' eax='0x00800000'/> + </feature> + <feature name='vmx-exit-clear-rtit-ctl'> + <msr index='0x48f' edx='0x00000000' eax='0x02000000'/> + </feature> + <feature name='vmx-exit-load-pkrs'> + <msr index='0x48f' edx='0x00000000' eax='0x20000000'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index b8dc58f048..f0118636a1 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -13,4 +13,5 @@ <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> + <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index 9c115e2bfc..11c0861f77 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -76,6 +76,13 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index c1dc3191ae..11a028e719 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -14,4 +14,5 @@ <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> + <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index da24c5f06e..3e605edf38 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -72,4 +72,11 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index e37e437d37..3e0f72a109 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -12,4 +12,5 @@ <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> <msr index='0x48d' edx='0x00000000' eax='0x00000069'/> <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> + <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index 247dbaa4cd..763587169e 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -71,6 +71,13 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index 52763c7ddb..44aec843bf 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -13,4 +13,5 @@ <msr index='0x48c' edx='0x00000501' eax='0x06330041'/> <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> + <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index f38ff7de22..763c99b009 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -78,4 +78,11 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index 66327d5abb..1949f2e496 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -78,4 +78,11 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index 713ecbcb08..6d99e9c076 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -115,6 +115,13 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index 0aef295df2..5d48e3d573 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -114,6 +114,13 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index e3dd4a82d0..1424d5832f 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -115,6 +115,13 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index 54edcf4632..ab7aac7304 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -114,6 +114,13 @@ <feature policy='require' name='vmx-monitor-exit'/> <feature policy='require' name='vmx-pause-exit'/> <feature policy='require' name='vmx-secondary-ctls'/> + <feature policy='require' name='vmx-exit-nosave-debugctl'/> + <feature policy='require' name='vmx-exit-ack-intr'/> + <feature policy='require' name='vmx-exit-save-pat'/> + <feature policy='require' name='vmx-exit-load-pat'/> + <feature policy='require' name='vmx-exit-save-efer'/> + <feature policy='require' name='vmx-exit-load-efer'/> + <feature policy='require' name='vmx-exit-save-preemption-timer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index d7d30c733c..0bfcf26b34 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index 707749596f..bae9a211f3 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 25 +++++++++++++++++++ .../x86_64-cpuid-Atom-P5362-enabled.xml | 1 + .../x86_64-cpuid-Atom-P5362-json.xml | 4 +++ .../x86_64-cpuid-Cooperlake-enabled.xml | 1 + .../x86_64-cpuid-Cooperlake-json.xml | 4 +++ .../x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + .../x86_64-cpuid-Core-i7-8550U-json.xml | 4 +++ ...86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + .../x86_64-cpuid-Xeon-Platinum-9242-json.xml | 4 +++ ...-cpuid-baseline-Cooperlake+Cascadelake.xml | 4 +++ .../domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 4 +++ tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 4 +++ .../domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 4 +++ tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 4 +++ .../cpu-host-model.x86_64-4.2.0.args | 2 +- .../cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 67 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 396f081974..6769ef1cca 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -1046,4 +1046,29 @@ <feature name='vmx-exit-load-pkrs'> <msr index='0x48f' edx='0x00000000' eax='0x20000000'/> </feature> + + <feature name='vmx-entry-noload-debugctl'> + <msr index='0x490' edx='0x00000000' eax='0x00000004'/> + </feature> + <feature name='vmx-entry-ia32e-mode'> + <msr index='0x490' edx='0x00000000' eax='0x00000200'/> + </feature> + <feature name='vmx-entry-load-perf-global-ctrl'> + <msr index='0x490' edx='0x00000000' eax='0x00002000'/> + </feature> + <feature name='vmx-entry-load-pat'> + <msr index='0x490' edx='0x00000000' eax='0x00004000'/> + </feature> + <feature name='vmx-entry-load-efer'> + <msr index='0x490' edx='0x00000000' eax='0x00008000'/> + </feature> + <feature name='vmx-entry-load-bndcfgs'> + <msr index='0x490' edx='0x00000000' eax='0x00010000'/> + </feature> + <feature name='vmx-entry-load-rtit-ctl'> + <msr index='0x490' edx='0x00000000' eax='0x00040000'/> + </feature> + <feature name='vmx-entry-load-pkrs'> + <msr index='0x490' edx='0x00000000' eax='0x00400000'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index f0118636a1..d957d2a155 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -14,4 +14,5 @@ <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> + <msr index='0x490' edx='0x00000000' eax='0x0000c204'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index 11c0861f77..b867dbd449 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -83,6 +83,10 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index 11a028e719..3ca004ac7d 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -15,4 +15,5 @@ <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> + <msr index='0x490' edx='0x00000000' eax='0x0000c204'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index 3e605edf38..2fcca6a12e 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -79,4 +79,8 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index 3e0f72a109..a1b9fc286c 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -13,4 +13,5 @@ <msr index='0x48d' edx='0x00000000' eax='0x00000069'/> <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> + <msr index='0x490' edx='0x00000000' eax='0x0000c204'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index 763587169e..4b4dcd5e70 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -78,6 +78,10 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index 44aec843bf..3f49dfb594 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -14,4 +14,5 @@ <msr index='0x48d' edx='0x00000000' eax='0x000000e9'/> <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> + <msr index='0x490' edx='0x00000000' eax='0x0000c204'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index 763c99b009..935efce2d8 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -85,4 +85,8 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index 1949f2e496..53d3d4209a 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -85,4 +85,8 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index 6d99e9c076..f272b33bb4 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -122,6 +122,10 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index 5d48e3d573..41d5181222 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -121,6 +121,10 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index 1424d5832f..317b7ff1f7 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -122,6 +122,10 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index ab7aac7304..90cb0ce36c 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -121,6 +121,10 @@ <feature policy='require' name='vmx-exit-save-efer'/> <feature policy='require' name='vmx-exit-load-efer'/> <feature policy='require' name='vmx-exit-save-preemption-timer'/> + <feature policy='require' name='vmx-entry-noload-debugctl'/> + <feature policy='require' name='vmx-entry-ia32e-mode'/> + <feature policy='require' name='vmx-entry-load-pat'/> + <feature policy='require' name='vmx-entry-load-efer'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index 0bfcf26b34..0658650d82 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index bae9a211f3..a5013ed2f9 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

Signed-off-by: Tim Wiederhake <twiederh@redhat.com> --- src/cpu_map/x86_features.xml | 4 ++++ tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml | 1 + tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml | 1 + tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml | 1 + tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml | 1 + tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml | 1 + tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml | 1 + tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml | 1 + .../x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml | 1 + tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_4.2.0.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml | 1 + tests/domaincapsdata/qemu_5.0.0.x86_64.xml | 1 + tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args | 2 +- tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args | 2 +- 16 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/cpu_map/x86_features.xml b/src/cpu_map/x86_features.xml index 6769ef1cca..b79ed579b2 100644 --- a/src/cpu_map/x86_features.xml +++ b/src/cpu_map/x86_features.xml @@ -1071,4 +1071,8 @@ <feature name='vmx-entry-load-pkrs'> <msr index='0x490' edx='0x00000000' eax='0x00400000'/> </feature> + + <feature name='vmx-eptp-switching'> + <msr index='0x491' edx='0x00000000' eax='0x00000001'/> + </feature> </cpus> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml index d957d2a155..80c24facdf 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-enabled.xml @@ -15,4 +15,5 @@ <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> <msr index='0x490' edx='0x00000000' eax='0x0000c204'/> + <msr index='0x491' edx='0x00000000' eax='0x00000001'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml index b867dbd449..ff7ac5b391 100644 --- a/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Atom-P5362-json.xml @@ -87,6 +87,7 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> <feature policy='disable' name='mpx'/> <feature policy='disable' name='core-capability'/> <feature policy='disable' name='pdpe1gb'/> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml index 3ca004ac7d..c42a69d102 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-enabled.xml @@ -16,4 +16,5 @@ <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> <msr index='0x490' edx='0x00000000' eax='0x0000c204'/> + <msr index='0x491' edx='0x00000000' eax='0x00000001'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml index 2fcca6a12e..9dbb92e74f 100644 --- a/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Cooperlake-json.xml @@ -83,4 +83,5 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml index a1b9fc286c..19dd4f6f0c 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-enabled.xml @@ -14,4 +14,5 @@ <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> <msr index='0x490' edx='0x00000000' eax='0x0000c204'/> + <msr index='0x491' edx='0x00000000' eax='0x00000001'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml index 4b4dcd5e70..e933265248 100644 --- a/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Core-i7-8550U-json.xml @@ -82,6 +82,7 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> <feature policy='disable' name='hle'/> <feature policy='disable' name='rtm'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml index 3f49dfb594..b830c52b8c 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-enabled.xml @@ -15,4 +15,5 @@ <msr index='0x48e' edx='0x00000000' eax='0xfbf99e8c'/> <msr index='0x48f' edx='0x00000000' eax='0x007c8004'/> <msr index='0x490' edx='0x00000000' eax='0x0000c204'/> + <msr index='0x491' edx='0x00000000' eax='0x00000001'/> </cpudata> diff --git a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml index 935efce2d8..ac0e520767 100644 --- a/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml +++ b/tests/cputestdata/x86_64-cpuid-Xeon-Platinum-9242-json.xml @@ -89,4 +89,5 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> </cpu> diff --git a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml index 53d3d4209a..f9e9c476b5 100644 --- a/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml +++ b/tests/cputestdata/x86_64-cpuid-baseline-Cooperlake+Cascadelake.xml @@ -89,4 +89,5 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> </cpu> diff --git a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml index f272b33bb4..152f201ff9 100644 --- a/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0-q35.x86_64.xml @@ -126,6 +126,7 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml index 41d5181222..8b7cf44d6d 100644 --- a/tests/domaincapsdata/qemu_4.2.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_4.2.0.x86_64.xml @@ -125,6 +125,7 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml index 317b7ff1f7..1d29a40f74 100644 --- a/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0-q35.x86_64.xml @@ -126,6 +126,7 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml index 90cb0ce36c..f3b3adb19e 100644 --- a/tests/domaincapsdata/qemu_5.0.0.x86_64.xml +++ b/tests/domaincapsdata/qemu_5.0.0.x86_64.xml @@ -125,6 +125,7 @@ <feature policy='require' name='vmx-entry-ia32e-mode'/> <feature policy='require' name='vmx-entry-load-pat'/> <feature policy='require' name='vmx-entry-load-efer'/> + <feature policy='require' name='vmx-eptp-switching'/> </mode> <mode name='custom' supported='yes'> <model usable='yes' vendor='unknown'>qemu64</model> diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args index 0658650d82..aacba803e8 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-4.2.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-4.2,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ diff --git a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args index a5013ed2f9..a2415bb667 100644 --- a/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args +++ b/tests/qemuxml2argvdata/cpu-host-model.x86_64-5.0.0.args @@ -12,7 +12,7 @@ XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/.config \ -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain--1-QEMUGuest1/master-key.aes \ -machine pc-q35-5.0,usb=off,dump-guest-core=off \ -accel kvm \ --cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on \ +-cpu Skylake-Client-IBRS,ss=on,vmx=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,xsaves=on,pdpe1gb=on,skip-l1dfl-vmentry=on,pschange-mc-no=on,vmx-ins-outs=on,vmx-true-ctls=on,vmx-store-lma=on,vmx-activity-hlt=on,vmx-vmwrite-vmexit-fields=on,vmx-apicv-xapic=on,vmx-ept=on,vmx-desc-exit=on,vmx-rdtscp-exit=on,vmx-apicv-x2apic=on,vmx-vpid=on,vmx-wbinvd-exit=on,vmx-unrestricted-guest=on,vmx-rdrand-exit=on,vmx-invpcid-exit=on,vmx-vmfunc=on,vmx-shadow-vmcs=on,vmx-rdseed-exit=on,vmx-pml=on,vmx-xsaves=on,vmx-invvpid=on,vmx-invvpid-single-addr=on,vmx-invvpid-all-context=on,vmx-ept-execonly=on,vmx-page-walk-4=on,vmx-ept-2mb=on,vmx-ept-1gb=on,vmx-invept=on,vmx-eptad=on,vmx-invept-single-context=on,vmx-invept-all-context=on,vmx-intr-exit=on,vmx-nmi-exit=on,vmx-vnmi=on,vmx-preemption-timer=on,vmx-vintr-pending=on,vmx-tsc-offset=on,vmx-hlt-exit=on,vmx-invlpg-exit=on,vmx-mwait-exit=on,vmx-rdpmc-exit=on,vmx-rdtsc-exit=on,vmx-cr3-load-noexit=on,vmx-cr3-store-noexit=on,vmx-cr8-load-exit=on,vmx-cr8-store-exit=on,vmx-flexpriority=on,vmx-vnmi-pending=on,vmx-movdr-exit=on,vmx-io-exit=on,vmx-io-bitmap=on,vmx-mtf=on,vmx-msr-bitmap=on,vmx-monitor-exit=on,vmx-pause-exit=on,vmx-secondary-ctls=on,vmx-exit-nosave-debugctl=on,vmx-exit-ack-intr=on,vmx-exit-save-pat=on,vmx-exit-load-pat=on,vmx-exit-save-efer=on,vmx-exit-load-efer=on,vmx-exit-save-preemption-timer=on,vmx-entry-noload-debugctl=on,vmx-entry-ia32e-mode=on,vmx-entry-load-pat=on,vmx-entry-load-efer=on,vmx-eptp-switching=on \ -m size=219136k \ -overcommit mem-lock=off \ -smp 1,sockets=1,cores=1,threads=1 \ -- 2.39.2

On Thu, Nov 09, 2023 at 15:30:46 +0100, Tim Wiederhake wrote:
For rationale, see patch 3 (cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py).
Adding features in bunches (one patch per msr index), as this series is adding ~100 features.
This also adds cpu features "gds-no" and "amx-complex" and brings libvirt in sync with qemu commit ad6ef0a42e.
Tim Wiederhake (12): cpu_map: Add missing feature "gds-no" cpu_map: Add missing feature "amx-complex" cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py cpu_map: Add missing vmx features from MSR 0x480 cpu_map: Add missing vmx features from MSR 0x485 cpu_map: Add missing vmx features from MSR 0x48B cpu_map: Add missing vmx features from MSR 0x48C cpu_map: Add missing vmx features from MSR 0x48D cpu_map: Add missing vmx features from MSR 0x48E cpu_map: Add missing vmx features from MSR 0x48F cpu_map: Add missing vmx features from MSR 0x490 cpu_map: Add missing vmx features from MSR 0x491
I haven't really checked the values of each feature you're adding, but all changes except for those in patch 3 are generated so I expect they are correct :-) Reviewed-by: Jiri Denemark <jdenemar@redhat.com>

On Wednesday, November 22 2023, Jiri Denemark wrote:
On Thu, Nov 09, 2023 at 15:30:46 +0100, Tim Wiederhake wrote:
For rationale, see patch 3 (cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py).
Adding features in bunches (one patch per msr index), as this series is adding ~100 features.
This also adds cpu features "gds-no" and "amx-complex" and brings libvirt in sync with qemu commit ad6ef0a42e.
Tim Wiederhake (12): cpu_map: Add missing feature "gds-no" cpu_map: Add missing feature "amx-complex" cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py cpu_map: Add missing vmx features from MSR 0x480 cpu_map: Add missing vmx features from MSR 0x485 cpu_map: Add missing vmx features from MSR 0x48B cpu_map: Add missing vmx features from MSR 0x48C cpu_map: Add missing vmx features from MSR 0x48D cpu_map: Add missing vmx features from MSR 0x48E cpu_map: Add missing vmx features from MSR 0x48F cpu_map: Add missing vmx features from MSR 0x490 cpu_map: Add missing vmx features from MSR 0x491
I haven't really checked the values of each feature you're adding, but all changes except for those in patch 3 are generated so I expect they are correct :-)
Hi there, Apologies if this is a PEBCAK, but I'm noticing a strange behaviour when testing live migrations from libvirt 9.6 to 9.10+ (including 10.0). "virsh migrate --live ..." says: --8<---------------cut here---------------start------------->8--- error: operation failed: guest CPU doesn't match specification: extra features: vmx-ins-outs,vmx-true-ctls,vmx-store-lma,vmx-activity-hlt,vmx-vmwrite-vmexit-fields,vmx-apicv-xapic,vmx-ept,vmx-desc-exit,vmx-rdtscp-exit,vmx-apicv-x2apic,vmx-vpid,vmx-wbinvd-exit,vmx-unrestricted-guest,vmx-apicv-register,vmx-apicv-vid,vmx-rdrand-exit,vmx-invpcid-exit,vmx-vmfunc,vmx-shadow-vmcs,vmx-invvpid,vmx-invvpid-single-addr,vmx-invvpid-all-context,vmx-ept-execonly,vmx-page-walk-4,vmx-ept-2mb,vmx-ept-1gb,vmx-invept,vmx-eptad,vmx-invept-single-context,vmx-invept-all-context,vmx-intr-exit,vmx-nmi-exit,vmx-vnmi,vmx-preemption-timer,vmx-posted-intr,vmx-vintr-pending,vmx-tsc-offset,vmx-hlt-exit,vmx-invlpg-exit,vmx-mwait-exit,vmx-rdpmc-exit,vmx-rdtsc-exit,vmx-cr3-load-noexit,vmx-cr3-store-noexit,vmx-cr8-load-exit,vmx-cr8-store-exit,vmx-flexpriority,vmx-vnmi-pending,vmx-movdr-exit,vmx-io-exit,vmx-io-bitmap,vmx-mtf,vmx-msr-bitmap,vmx-monitor-exit,vmx-pause-exit,vmx-secondary-ctls,vmx-exit-nosave-debugctl,vmx-exit-load-perf-global-ctrl,vmx-exit-ack-intr,vmx-exit-save-pat,vmx-exit-load-pat,vmx-exit-save-efer,vmx-exit-load-efer,vmx-exit-save-preemption-timer,vmx-entry-noload-debugctl,vmx-entry-ia32e-mode,vmx-entry-load-perf-global-ctrl,vmx-entry-load-pat,vmx-entry-load-efer,vmx-eptp-switching --8<---------------cut here---------------end--------------->8--- Judging by the missing features it's complaining about, it seems to be something related to what was discussed in this thread. I could provide more details about the setup, although it's pretty straightforward (create a VM under libvirt < 9.10 and try to live migrate it to a system running libvirt >= 9.10). Thanks, -- Sergio GPG key ID: E92F D0B3 6B14 F1F4 D8E0 EB2F 106D A1C8 C3CB BF14

On Monday, January 22 2024, I wrote:
On Wednesday, November 22 2023, Jiri Denemark wrote:
On Thu, Nov 09, 2023 at 15:30:46 +0100, Tim Wiederhake wrote:
For rationale, see patch 3 (cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py).
Adding features in bunches (one patch per msr index), as this series is adding ~100 features.
This also adds cpu features "gds-no" and "amx-complex" and brings libvirt in sync with qemu commit ad6ef0a42e.
Tim Wiederhake (12): cpu_map: Add missing feature "gds-no" cpu_map: Add missing feature "amx-complex" cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py cpu_map: Add missing vmx features from MSR 0x480 cpu_map: Add missing vmx features from MSR 0x485 cpu_map: Add missing vmx features from MSR 0x48B cpu_map: Add missing vmx features from MSR 0x48C cpu_map: Add missing vmx features from MSR 0x48D cpu_map: Add missing vmx features from MSR 0x48E cpu_map: Add missing vmx features from MSR 0x48F cpu_map: Add missing vmx features from MSR 0x490 cpu_map: Add missing vmx features from MSR 0x491
I haven't really checked the values of each feature you're adding, but all changes except for those in patch 3 are generated so I expect they are correct :-)
Hi there,
Apologies if this is a PEBCAK, but I'm noticing a strange behaviour when testing live migrations from libvirt 9.6 to 9.10+ (including 10.0). "virsh migrate --live ..." says:
error: operation failed: guest CPU doesn't match specification: extra features: vmx-ins-outs,vmx-true-ctls,vmx-store-lma,vmx-activity-hlt,vmx-vmwrite-vmexit-fields,vmx-apicv-xapic,vmx-ept,vmx-desc-exit,vmx-rdtscp-exit,vmx-apicv-x2apic,vmx-vpid,vmx-wbinvd-exit,vmx-unrestricted-guest,vmx-apicv-register,vmx-apicv-vid,vmx-rdrand-exit,vmx-invpcid-exit,vmx-vmfunc,vmx-shadow-vmcs,vmx-invvpid,vmx-invvpid-single-addr,vmx-invvpid-all-context,vmx-ept-execonly,vmx-page-walk-4,vmx-ept-2mb,vmx-ept-1gb,vmx-invept,vmx-eptad,vmx-invept-single-context,vmx-invept-all-context,vmx-intr-exit,vmx-nmi-exit,vmx-vnmi,vmx-preemption-timer,vmx-posted-intr,vmx-vintr-pending,vmx-tsc-offset,vmx-hlt-exit,vmx-invlpg-exit,vmx-mwait-exit,vmx-rdpmc-exit,vmx-rdtsc-exit,vmx-cr3-load-noexit,vmx-cr3-store-noexit,vmx-cr8-load-exit,vmx-cr8-store-exit,vmx-flexpriority,vmx-vnmi-pending,vmx-movdr-exit,vmx-io-exit,vmx-io-bitmap,vmx-mtf,vmx-msr-bitmap,vmx-monitor-exit,vmx-pause-exit,vmx-secondary-ctls,vmx-exit-nosave-debugctl,vmx-exit-load-perf-global-ctrl,vmx-exit-ack-intr,vmx-exit-save-pat,vmx-exit-load-pat,vmx-exit-save-efer,vmx-exit-load-efer,vmx-exit-save-preemption-timer,vmx-entry-noload-debugctl,vmx-entry-ia32e-mode,vmx-entry-load-perf-global-ctrl,vmx-entry-load-pat,vmx-entry-load-efer,vmx-eptp-switching
Judging by the missing features it's complaining about, it seems to be something related to what was discussed in this thread.
I could provide more details about the setup, although it's pretty straightforward (create a VM under libvirt < 9.10 and try to live migrate it to a system running libvirt >= 9.10).
Hi again, Any news on this one? If it is indeed a regression, it seems like an important one. While looking through the open issues on gitlab I stumbled upon this one: https://gitlab.com/libvirt/libvirt/-/issues/568 ... which seems to describe the same problem. Thanks, -- Sergio GPG key ID: E92F D0B3 6B14 F1F4 D8E0 EB2F 106D A1C8 C3CB BF14

On Wed, Jan 24, 2024 at 22:19:56 -0500, Sergio Durigan Junior wrote:
On Monday, January 22 2024, I wrote:
On Wednesday, November 22 2023, Jiri Denemark wrote:
On Thu, Nov 09, 2023 at 15:30:46 +0100, Tim Wiederhake wrote:
For rationale, see patch 3 (cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py).
Adding features in bunches (one patch per msr index), as this series is adding ~100 features.
This also adds cpu features "gds-no" and "amx-complex" and brings libvirt in sync with qemu commit ad6ef0a42e.
Tim Wiederhake (12): cpu_map: Add missing feature "gds-no" cpu_map: Add missing feature "amx-complex" cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py cpu_map: Add missing vmx features from MSR 0x480 cpu_map: Add missing vmx features from MSR 0x485 cpu_map: Add missing vmx features from MSR 0x48B cpu_map: Add missing vmx features from MSR 0x48C cpu_map: Add missing vmx features from MSR 0x48D cpu_map: Add missing vmx features from MSR 0x48E cpu_map: Add missing vmx features from MSR 0x48F cpu_map: Add missing vmx features from MSR 0x490 cpu_map: Add missing vmx features from MSR 0x491
I haven't really checked the values of each feature you're adding, but all changes except for those in patch 3 are generated so I expect they are correct :-)
Hi there,
Apologies if this is a PEBCAK, but I'm noticing a strange behaviour when testing live migrations from libvirt 9.6 to 9.10+ (including 10.0). "virsh migrate --live ..." says:
error: operation failed: guest CPU doesn't match specification: extra features: vmx-ins-outs,vmx-true-ctls,vmx-store-lma,vmx-activity-hlt,vmx-vmwrite-vmexit-fields,vmx-apicv-xapic,vmx-ept,vmx-desc-exit,vmx-rdtscp-exit,vmx-apicv-x2apic,vmx-vpid,vmx-wbinvd-exit,vmx-unrestricted-guest,vmx-apicv-register,vmx-apicv-vid,vmx-rdrand-exit,vmx-invpcid-exit,vmx-vmfunc,vmx-shadow-vmcs,vmx-invvpid,vmx-invvpid-single-addr,vmx-invvpid-all-context,vmx-ept-execonly,vmx-page-walk-4,vmx-ept-2mb,vmx-ept-1gb,vmx-invept,vmx-eptad,vmx-invept-single-context,vmx-invept-all-context,vmx-intr-exit,vmx-nmi-exit,vmx-vnmi,vmx-preemption-timer,vmx-posted-intr,vmx-vintr-pending,vmx-tsc-offset,vmx-hlt-exit,vmx-invlpg-exit,vmx-mwait-exit,vmx-rdpmc-exit,vmx-rdtsc-exit,vmx-cr3-load-noexit,vmx-cr3-store-noexit,vmx-cr8-load-exit,vmx-cr8-store-exit,vmx-flexpriority,vmx-vnmi-pending,vmx-movdr-exit,vmx-io-exit,vmx-io-bitmap,vmx-mtf,vmx-msr-bitmap,vmx-monitor-exit,vmx-pause-exit,vmx-secondary-ctls,vmx-exit-nosave-debugctl,vmx-exit-load-perf-global-ctrl,vmx-exit-ack-intr,vmx-exit-save-pat,vmx-exit-load-pat,vmx-exit-save-efer,vmx-exit-load-efer,vmx-exit-save-preemption-timer,vmx-entry-noload-debugctl,vmx-entry-ia32e-mode,vmx-entry-load-perf-global-ctrl,vmx-entry-load-pat,vmx-entry-load-efer,vmx-eptp-switching
Judging by the missing features it's complaining about, it seems to be something related to what was discussed in this thread.
I could provide more details about the setup, although it's pretty straightforward (create a VM under libvirt < 9.10 and try to live migrate it to a system running libvirt >= 9.10).
Hi again,
Any news on this one? If it is indeed a regression, it seems like an important one. While looking through the open issues on gitlab I stumbled upon this one:
https://gitlab.com/libvirt/libvirt/-/issues/568
... which seems to describe the same problem.
Yes, it's the same issue. I've just sent patches that should fix this regression for review: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/ROAHS... Sorry for the delay. Jirka

On Tuesday, March 12 2024, Jiri Denemark wrote:
On Wed, Jan 24, 2024 at 22:19:56 -0500, Sergio Durigan Junior wrote:
On Monday, January 22 2024, I wrote:
On Wednesday, November 22 2023, Jiri Denemark wrote:
On Thu, Nov 09, 2023 at 15:30:46 +0100, Tim Wiederhake wrote:
For rationale, see patch 3 (cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py).
Adding features in bunches (one patch per msr index), as this series is adding ~100 features.
This also adds cpu features "gds-no" and "amx-complex" and brings libvirt in sync with qemu commit ad6ef0a42e.
Tim Wiederhake (12): cpu_map: Add missing feature "gds-no" cpu_map: Add missing feature "amx-complex" cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py cpu_map: Add missing vmx features from MSR 0x480 cpu_map: Add missing vmx features from MSR 0x485 cpu_map: Add missing vmx features from MSR 0x48B cpu_map: Add missing vmx features from MSR 0x48C cpu_map: Add missing vmx features from MSR 0x48D cpu_map: Add missing vmx features from MSR 0x48E cpu_map: Add missing vmx features from MSR 0x48F cpu_map: Add missing vmx features from MSR 0x490 cpu_map: Add missing vmx features from MSR 0x491
I haven't really checked the values of each feature you're adding, but all changes except for those in patch 3 are generated so I expect they are correct :-)
Hi there,
Apologies if this is a PEBCAK, but I'm noticing a strange behaviour when testing live migrations from libvirt 9.6 to 9.10+ (including 10.0). "virsh migrate --live ..." says:
error: operation failed: guest CPU doesn't match specification: extra features: vmx-ins-outs,vmx-true-ctls,vmx-store-lma,vmx-activity-hlt,vmx-vmwrite-vmexit-fields,vmx-apicv-xapic,vmx-ept,vmx-desc-exit,vmx-rdtscp-exit,vmx-apicv-x2apic,vmx-vpid,vmx-wbinvd-exit,vmx-unrestricted-guest,vmx-apicv-register,vmx-apicv-vid,vmx-rdrand-exit,vmx-invpcid-exit,vmx-vmfunc,vmx-shadow-vmcs,vmx-invvpid,vmx-invvpid-single-addr,vmx-invvpid-all-context,vmx-ept-execonly,vmx-page-walk-4,vmx-ept-2mb,vmx-ept-1gb,vmx-invept,vmx-eptad,vmx-invept-single-context,vmx-invept-all-context,vmx-intr-exit,vmx-nmi-exit,vmx-vnmi,vmx-preemption-timer,vmx-posted-intr,vmx-vintr-pending,vmx-tsc-offset,vmx-hlt-exit,vmx-invlpg-exit,vmx-mwait-exit,vmx-rdpmc-exit,vmx-rdtsc-exit,vmx-cr3-load-noexit,vmx-cr3-store-noexit,vmx-cr8-load-exit,vmx-cr8-store-exit,vmx-flexpriority,vmx-vnmi-pending,vmx-movdr-exit,vmx-io-exit,vmx-io-bitmap,vmx-mtf,vmx-msr-bitmap,vmx-monitor-exit,vmx-pause-exit,vmx-secondary-ctls,vmx-exit-nosave-debugctl,vmx-exit-load-perf-global-ctrl,vmx-exit-ack-intr,vmx-exit-save-pat,vmx-exit-load-pat,vmx-exit-save-efer,vmx-exit-load-efer,vmx-exit-save-preemption-timer,vmx-entry-noload-debugctl,vmx-entry-ia32e-mode,vmx-entry-load-perf-global-ctrl,vmx-entry-load-pat,vmx-entry-load-efer,vmx-eptp-switching
Judging by the missing features it's complaining about, it seems to be something related to what was discussed in this thread.
I could provide more details about the setup, although it's pretty straightforward (create a VM under libvirt < 9.10 and try to live migrate it to a system running libvirt >= 9.10).
Hi again,
Any news on this one? If it is indeed a regression, it seems like an important one. While looking through the open issues on gitlab I stumbled upon this one:
https://gitlab.com/libvirt/libvirt/-/issues/568
... which seems to describe the same problem.
Yes, it's the same issue. I've just sent patches that should fix this regression for review: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/ROAHS...
Sorry for the delay.
Thank you for the fix, Jiri. I'll test the series locally and check if the issue is fixed on my end. Thanks, -- Sergio GPG key ID: E92F D0B3 6B14 F1F4 D8E0 EB2F 106D A1C8 C3CB BF14

On Wednesday, March 13 2024, I wrote:
On Tuesday, March 12 2024, Jiri Denemark wrote:
On Wed, Jan 24, 2024 at 22:19:56 -0500, Sergio Durigan Junior wrote:
On Monday, January 22 2024, I wrote:
On Wednesday, November 22 2023, Jiri Denemark wrote:
On Thu, Nov 09, 2023 at 15:30:46 +0100, Tim Wiederhake wrote:
For rationale, see patch 3 (cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py).
Adding features in bunches (one patch per msr index), as this series is adding ~100 features.
This also adds cpu features "gds-no" and "amx-complex" and brings libvirt in sync with qemu commit ad6ef0a42e.
Tim Wiederhake (12): cpu_map: Add missing feature "gds-no" cpu_map: Add missing feature "amx-complex" cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py cpu_map: Add missing vmx features from MSR 0x480 cpu_map: Add missing vmx features from MSR 0x485 cpu_map: Add missing vmx features from MSR 0x48B cpu_map: Add missing vmx features from MSR 0x48C cpu_map: Add missing vmx features from MSR 0x48D cpu_map: Add missing vmx features from MSR 0x48E cpu_map: Add missing vmx features from MSR 0x48F cpu_map: Add missing vmx features from MSR 0x490 cpu_map: Add missing vmx features from MSR 0x491
I haven't really checked the values of each feature you're adding, but all changes except for those in patch 3 are generated so I expect they are correct :-)
Hi there,
Apologies if this is a PEBCAK, but I'm noticing a strange behaviour when testing live migrations from libvirt 9.6 to 9.10+ (including 10.0). "virsh migrate --live ..." says:
error: operation failed: guest CPU doesn't match specification: extra features: vmx-ins-outs,vmx-true-ctls,vmx-store-lma,vmx-activity-hlt,vmx-vmwrite-vmexit-fields,vmx-apicv-xapic,vmx-ept,vmx-desc-exit,vmx-rdtscp-exit,vmx-apicv-x2apic,vmx-vpid,vmx-wbinvd-exit,vmx-unrestricted-guest,vmx-apicv-register,vmx-apicv-vid,vmx-rdrand-exit,vmx-invpcid-exit,vmx-vmfunc,vmx-shadow-vmcs,vmx-invvpid,vmx-invvpid-single-addr,vmx-invvpid-all-context,vmx-ept-execonly,vmx-page-walk-4,vmx-ept-2mb,vmx-ept-1gb,vmx-invept,vmx-eptad,vmx-invept-single-context,vmx-invept-all-context,vmx-intr-exit,vmx-nmi-exit,vmx-vnmi,vmx-preemption-timer,vmx-posted-intr,vmx-vintr-pending,vmx-tsc-offset,vmx-hlt-exit,vmx-invlpg-exit,vmx-mwait-exit,vmx-rdpmc-exit,vmx-rdtsc-exit,vmx-cr3-load-noexit,vmx-cr3-store-noexit,vmx-cr8-load-exit,vmx-cr8-store-exit,vmx-flexpriority,vmx-vnmi-pending,vmx-movdr-exit,vmx-io-exit,vmx-io-bitmap,vmx-mtf,vmx-msr-bitmap,vmx-monitor-exit,vmx-pause-exit,vmx-secondary-ctls,vmx-exit-nosave-debugctl,vmx-exit-load-perf-global-ctrl,vmx-exit-ack-intr,vmx-exit-save-pat,vmx-exit-load-pat,vmx-exit-save-efer,vmx-exit-load-efer,vmx-exit-save-preemption-timer,vmx-entry-noload-debugctl,vmx-entry-ia32e-mode,vmx-entry-load-perf-global-ctrl,vmx-entry-load-pat,vmx-entry-load-efer,vmx-eptp-switching
Judging by the missing features it's complaining about, it seems to be something related to what was discussed in this thread.
I could provide more details about the setup, although it's pretty straightforward (create a VM under libvirt < 9.10 and try to live migrate it to a system running libvirt >= 9.10).
Hi again,
Any news on this one? If it is indeed a regression, it seems like an important one. While looking through the open issues on gitlab I stumbled upon this one:
https://gitlab.com/libvirt/libvirt/-/issues/568
... which seems to describe the same problem.
Yes, it's the same issue. I've just sent patches that should fix this regression for review: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/ROAHS...
Sorry for the delay.
Thank you for the fix, Jiri.
I'll test the series locally and check if the issue is fixed on my end.
I tested the patchset and there seems to be a few vmx-* still missing from the definition: error: operation failed: guest CPU doesn't match specification: missing features: vmx-apicv-xapic,vmx-apicv-register,vmx-apicv-vid,vmx-vmfunc,vmx-posted-intr,vmx-eptp-switching -- Sergio GPG key ID: E92F D0B3 6B14 F1F4 D8E0 EB2F 106D A1C8 C3CB BF14

On Thu, Mar 14, 2024 at 16:51:31 -0400, Sergio Durigan Junior wrote:
On Wednesday, March 13 2024, I wrote:
On Tuesday, March 12 2024, Jiri Denemark wrote:
On Wed, Jan 24, 2024 at 22:19:56 -0500, Sergio Durigan Junior wrote:
On Monday, January 22 2024, I wrote:
On Wednesday, November 22 2023, Jiri Denemark wrote:
On Thu, Nov 09, 2023 at 15:30:46 +0100, Tim Wiederhake wrote: > For rationale, see patch 3 (cpu_map: No longer ignore vmx- features in > sync_qemu_features_i386.py). > > Adding features in bunches (one patch per msr index), as this series > is adding ~100 features. > > This also adds cpu features "gds-no" and "amx-complex" and brings > libvirt in sync with qemu commit ad6ef0a42e. > > Tim Wiederhake (12): > cpu_map: Add missing feature "gds-no" > cpu_map: Add missing feature "amx-complex" > cpu_map: No longer ignore vmx- features in sync_qemu_features_i386.py > cpu_map: Add missing vmx features from MSR 0x480 > cpu_map: Add missing vmx features from MSR 0x485 > cpu_map: Add missing vmx features from MSR 0x48B > cpu_map: Add missing vmx features from MSR 0x48C > cpu_map: Add missing vmx features from MSR 0x48D > cpu_map: Add missing vmx features from MSR 0x48E > cpu_map: Add missing vmx features from MSR 0x48F > cpu_map: Add missing vmx features from MSR 0x490 > cpu_map: Add missing vmx features from MSR 0x491
I haven't really checked the values of each feature you're adding, but all changes except for those in patch 3 are generated so I expect they are correct :-)
Hi there,
Apologies if this is a PEBCAK, but I'm noticing a strange behaviour when testing live migrations from libvirt 9.6 to 9.10+ (including 10.0). "virsh migrate --live ..." says:
error: operation failed: guest CPU doesn't match specification: extra features: vmx-ins-outs,vmx-true-ctls,vmx-store-lma,vmx-activity-hlt,vmx-vmwrite-vmexit-fields,vmx-apicv-xapic,vmx-ept,vmx-desc-exit,vmx-rdtscp-exit,vmx-apicv-x2apic,vmx-vpid,vmx-wbinvd-exit,vmx-unrestricted-guest,vmx-apicv-register,vmx-apicv-vid,vmx-rdrand-exit,vmx-invpcid-exit,vmx-vmfunc,vmx-shadow-vmcs,vmx-invvpid,vmx-invvpid-single-addr,vmx-invvpid-all-context,vmx-ept-execonly,vmx-page-walk-4,vmx-ept-2mb,vmx-ept-1gb,vmx-invept,vmx-eptad,vmx-invept-single-context,vmx-invept-all-context,vmx-intr-exit,vmx-nmi-exit,vmx-vnmi,vmx-preemption-timer,vmx-posted-intr,vmx-vintr-pending,vmx-tsc-offset,vmx-hlt-exit,vmx-invlpg-exit,vmx-mwait-exit,vmx-rdpmc-exit,vmx-rdtsc-exit,vmx-cr3-load-noexit,vmx-cr3-store-noexit,vmx-cr8-load-exit,vmx-cr8-store-exit,vmx-flexpriority,vmx-vnmi-pending,vmx-movdr-exit,vmx-io-exit,vmx-io-bitmap,vmx-mtf,vmx-msr-bitmap,vmx-monitor-exit,vmx-pause-exit,vmx-secondary-ctls,vmx-exit-nosave-debugctl,vmx-exit-load-perf-global-ctrl,vmx-exit-ack-intr,vmx-exit-save-pat,vmx-exit-load-pat,vmx-exit-save-efer,vmx-exit-load-efer,vmx-exit-save-preemption-timer,vmx-entry-noload-debugctl,vmx-entry-ia32e-mode,vmx-entry-load-perf-global-ctrl,vmx-entry-load-pat,vmx-entry-load-efer,vmx-eptp-switching
Judging by the missing features it's complaining about, it seems to be something related to what was discussed in this thread.
I could provide more details about the setup, although it's pretty straightforward (create a VM under libvirt < 9.10 and try to live migrate it to a system running libvirt >= 9.10).
Hi again,
Any news on this one? If it is indeed a regression, it seems like an important one. While looking through the open issues on gitlab I stumbled upon this one:
https://gitlab.com/libvirt/libvirt/-/issues/568
... which seems to describe the same problem.
Yes, it's the same issue. I've just sent patches that should fix this regression for review: https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/thread/ROAHS...
Sorry for the delay.
Thank you for the fix, Jiri.
I'll test the series locally and check if the issue is fixed on my end.
I tested the patchset and there seems to be a few vmx-* still missing from the definition:
error: operation failed: guest CPU doesn't match specification: missing features: vmx-apicv-xapic,vmx-apicv-register,vmx-apicv-vid,vmx-vmfunc,vmx-posted-intr,vmx-eptp-switching
This is impossible when migrating from < 9.10 to current master. It means the listed features where enabled on the source, but the destination cannot enable them. In which case, you definitely don't want to proceed with migration as the guest could crash when it tries to use the feature that is suddenly disabled. But libvirt < 9.10 didn't know anything about vmx-* features and thus it cannot ask the destination to enable them. Jirka
participants (3)
-
Jiri Denemark
-
Sergio Durigan Junior
-
Tim Wiederhake