[PATCH 06/22] Add vmx-* features to Broadwell*

Jiri Denemark posted 22 patches 1 year, 11 months ago
[PATCH 06/22] Add vmx-* features to Broadwell*
Posted by Jiri Denemark 1 year, 11 months ago
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
---
 src/cpu_map/x86_Broadwell-IBRS.xml       | 75 ++++++++++++++++++++++++
 src/cpu_map/x86_Broadwell-noTSX-IBRS.xml | 75 ++++++++++++++++++++++++
 src/cpu_map/x86_Broadwell-noTSX.xml      | 75 ++++++++++++++++++++++++
 src/cpu_map/x86_Broadwell.xml            | 75 ++++++++++++++++++++++++
 4 files changed, 300 insertions(+)

diff --git a/src/cpu_map/x86_Broadwell-IBRS.xml b/src/cpu_map/x86_Broadwell-IBRS.xml
index 9033d5fcd5..1484903298 100644
--- a/src/cpu_map/x86_Broadwell-IBRS.xml
+++ b/src/cpu_map/x86_Broadwell-IBRS.xml
@@ -59,6 +59,81 @@
     <feature name='syscall'/>
     <feature name='tsc'/>
     <feature name='tsc-deadline'/>
+    <feature name='vmx-activity-hlt' added='yes'/>
+    <feature name='vmx-apicv-register' added='yes'/>
+    <feature name='vmx-apicv-vid' added='yes'/>
+    <feature name='vmx-apicv-x2apic' added='yes'/>
+    <feature name='vmx-apicv-xapic' added='yes'/>
+    <feature name='vmx-cr3-load-noexit' added='yes'/>
+    <feature name='vmx-cr3-store-noexit' added='yes'/>
+    <feature name='vmx-cr8-load-exit' added='yes'/>
+    <feature name='vmx-cr8-store-exit' added='yes'/>
+    <feature name='vmx-desc-exit' added='yes'/>
+    <feature name='vmx-entry-ia32e-mode' added='yes'/>
+    <feature name='vmx-entry-load-efer' added='yes'/>
+    <feature name='vmx-entry-load-pat' added='yes'/>
+    <feature name='vmx-entry-load-perf-global-ctrl' added='yes'/>
+    <feature name='vmx-entry-noload-debugctl' added='yes'/>
+    <feature name='vmx-ept' added='yes'/>
+    <feature name='vmx-ept-1gb' added='yes'/>
+    <feature name='vmx-ept-2mb' added='yes'/>
+    <feature name='vmx-ept-execonly' added='yes'/>
+    <feature name='vmx-ept-wb' added='yes'/>
+    <feature name='vmx-eptad' added='yes'/>
+    <feature name='vmx-eptp-switching' added='yes'/>
+    <feature name='vmx-exit-ack-intr' added='yes'/>
+    <feature name='vmx-exit-load-efer' added='yes'/>
+    <feature name='vmx-exit-load-pat' added='yes'/>
+    <feature name='vmx-exit-load-perf-global-ctrl' added='yes'/>
+    <feature name='vmx-exit-nosave-debugctl' added='yes'/>
+    <feature name='vmx-exit-save-efer' added='yes'/>
+    <feature name='vmx-exit-save-pat' added='yes'/>
+    <feature name='vmx-exit-save-preemption-timer' added='yes'/>
+    <feature name='vmx-flexpriority' added='yes'/>
+    <feature name='vmx-hlt-exit' added='yes'/>
+    <feature name='vmx-ins-outs' added='yes'/>
+    <feature name='vmx-intr-exit' added='yes'/>
+    <feature name='vmx-invept' added='yes'/>
+    <feature name='vmx-invept-all-context' added='yes'/>
+    <feature name='vmx-invept-single-context' added='yes'/>
+    <feature name='vmx-invlpg-exit' added='yes'/>
+    <feature name='vmx-invpcid-exit' added='yes'/>
+    <feature name='vmx-invvpid' added='yes'/>
+    <feature name='vmx-invvpid-all-context' added='yes'/>
+    <feature name='vmx-invvpid-single-addr' added='yes'/>
+    <feature name='vmx-invvpid-single-context' added='yes'/>
+    <feature name='vmx-invvpid-single-context-noglobals' added='yes'/>
+    <feature name='vmx-io-bitmap' added='yes'/>
+    <feature name='vmx-io-exit' added='yes'/>
+    <feature name='vmx-monitor-exit' added='yes'/>
+    <feature name='vmx-movdr-exit' added='yes'/>
+    <feature name='vmx-msr-bitmap' added='yes'/>
+    <feature name='vmx-mtf' added='yes'/>
+    <feature name='vmx-mwait-exit' added='yes'/>
+    <feature name='vmx-nmi-exit' added='yes'/>
+    <feature name='vmx-page-walk-4' added='yes'/>
+    <feature name='vmx-pause-exit' added='yes'/>
+    <feature name='vmx-pml' added='yes'/>
+    <feature name='vmx-posted-intr' added='yes'/>
+    <feature name='vmx-preemption-timer' added='yes'/>
+    <feature name='vmx-rdpmc-exit' added='yes'/>
+    <feature name='vmx-rdrand-exit' added='yes'/>
+    <feature name='vmx-rdseed-exit' added='yes'/>
+    <feature name='vmx-rdtsc-exit' added='yes'/>
+    <feature name='vmx-rdtscp-exit' added='yes'/>
+    <feature name='vmx-secondary-ctls' added='yes'/>
+    <feature name='vmx-shadow-vmcs' added='yes'/>
+    <feature name='vmx-store-lma' added='yes'/>
+    <feature name='vmx-true-ctls' added='yes'/>
+    <feature name='vmx-tsc-offset' added='yes'/>
+    <feature name='vmx-unrestricted-guest' added='yes'/>
+    <feature name='vmx-vintr-pending' added='yes'/>
+    <feature name='vmx-vmfunc' added='yes'/>
+    <feature name='vmx-vmwrite-vmexit-fields' added='yes'/>
+    <feature name='vmx-vnmi' added='yes'/>
+    <feature name='vmx-vnmi-pending' added='yes'/>
+    <feature name='vmx-vpid' added='yes'/>
+    <feature name='vmx-wbinvd-exit' added='yes'/>
     <feature name='x2apic'/>
     <feature name='xsave'/>
   </model>
diff --git a/src/cpu_map/x86_Broadwell-noTSX-IBRS.xml b/src/cpu_map/x86_Broadwell-noTSX-IBRS.xml
index c044b60e36..13f08435b7 100644
--- a/src/cpu_map/x86_Broadwell-noTSX-IBRS.xml
+++ b/src/cpu_map/x86_Broadwell-noTSX-IBRS.xml
@@ -57,6 +57,81 @@
     <feature name='syscall'/>
     <feature name='tsc'/>
     <feature name='tsc-deadline'/>
+    <feature name='vmx-activity-hlt' added='yes'/>
+    <feature name='vmx-apicv-register' added='yes'/>
+    <feature name='vmx-apicv-vid' added='yes'/>
+    <feature name='vmx-apicv-x2apic' added='yes'/>
+    <feature name='vmx-apicv-xapic' added='yes'/>
+    <feature name='vmx-cr3-load-noexit' added='yes'/>
+    <feature name='vmx-cr3-store-noexit' added='yes'/>
+    <feature name='vmx-cr8-load-exit' added='yes'/>
+    <feature name='vmx-cr8-store-exit' added='yes'/>
+    <feature name='vmx-desc-exit' added='yes'/>
+    <feature name='vmx-entry-ia32e-mode' added='yes'/>
+    <feature name='vmx-entry-load-efer' added='yes'/>
+    <feature name='vmx-entry-load-pat' added='yes'/>
+    <feature name='vmx-entry-load-perf-global-ctrl' added='yes'/>
+    <feature name='vmx-entry-noload-debugctl' added='yes'/>
+    <feature name='vmx-ept' added='yes'/>
+    <feature name='vmx-ept-1gb' added='yes'/>
+    <feature name='vmx-ept-2mb' added='yes'/>
+    <feature name='vmx-ept-execonly' added='yes'/>
+    <feature name='vmx-ept-wb' added='yes'/>
+    <feature name='vmx-eptad' added='yes'/>
+    <feature name='vmx-eptp-switching' added='yes'/>
+    <feature name='vmx-exit-ack-intr' added='yes'/>
+    <feature name='vmx-exit-load-efer' added='yes'/>
+    <feature name='vmx-exit-load-pat' added='yes'/>
+    <feature name='vmx-exit-load-perf-global-ctrl' added='yes'/>
+    <feature name='vmx-exit-nosave-debugctl' added='yes'/>
+    <feature name='vmx-exit-save-efer' added='yes'/>
+    <feature name='vmx-exit-save-pat' added='yes'/>
+    <feature name='vmx-exit-save-preemption-timer' added='yes'/>
+    <feature name='vmx-flexpriority' added='yes'/>
+    <feature name='vmx-hlt-exit' added='yes'/>
+    <feature name='vmx-ins-outs' added='yes'/>
+    <feature name='vmx-intr-exit' added='yes'/>
+    <feature name='vmx-invept' added='yes'/>
+    <feature name='vmx-invept-all-context' added='yes'/>
+    <feature name='vmx-invept-single-context' added='yes'/>
+    <feature name='vmx-invlpg-exit' added='yes'/>
+    <feature name='vmx-invpcid-exit' added='yes'/>
+    <feature name='vmx-invvpid' added='yes'/>
+    <feature name='vmx-invvpid-all-context' added='yes'/>
+    <feature name='vmx-invvpid-single-addr' added='yes'/>
+    <feature name='vmx-invvpid-single-context' added='yes'/>
+    <feature name='vmx-invvpid-single-context-noglobals' added='yes'/>
+    <feature name='vmx-io-bitmap' added='yes'/>
+    <feature name='vmx-io-exit' added='yes'/>
+    <feature name='vmx-monitor-exit' added='yes'/>
+    <feature name='vmx-movdr-exit' added='yes'/>
+    <feature name='vmx-msr-bitmap' added='yes'/>
+    <feature name='vmx-mtf' added='yes'/>
+    <feature name='vmx-mwait-exit' added='yes'/>
+    <feature name='vmx-nmi-exit' added='yes'/>
+    <feature name='vmx-page-walk-4' added='yes'/>
+    <feature name='vmx-pause-exit' added='yes'/>
+    <feature name='vmx-pml' added='yes'/>
+    <feature name='vmx-posted-intr' added='yes'/>
+    <feature name='vmx-preemption-timer' added='yes'/>
+    <feature name='vmx-rdpmc-exit' added='yes'/>
+    <feature name='vmx-rdrand-exit' added='yes'/>
+    <feature name='vmx-rdseed-exit' added='yes'/>
+    <feature name='vmx-rdtsc-exit' added='yes'/>
+    <feature name='vmx-rdtscp-exit' added='yes'/>
+    <feature name='vmx-secondary-ctls' added='yes'/>
+    <feature name='vmx-shadow-vmcs' added='yes'/>
+    <feature name='vmx-store-lma' added='yes'/>
+    <feature name='vmx-true-ctls' added='yes'/>
+    <feature name='vmx-tsc-offset' added='yes'/>
+    <feature name='vmx-unrestricted-guest' added='yes'/>
+    <feature name='vmx-vintr-pending' added='yes'/>
+    <feature name='vmx-vmfunc' added='yes'/>
+    <feature name='vmx-vmwrite-vmexit-fields' added='yes'/>
+    <feature name='vmx-vnmi' added='yes'/>
+    <feature name='vmx-vnmi-pending' added='yes'/>
+    <feature name='vmx-vpid' added='yes'/>
+    <feature name='vmx-wbinvd-exit' added='yes'/>
     <feature name='x2apic'/>
     <feature name='xsave'/>
   </model>
diff --git a/src/cpu_map/x86_Broadwell-noTSX.xml b/src/cpu_map/x86_Broadwell-noTSX.xml
index 637f29ba1c..4293b3aeee 100644
--- a/src/cpu_map/x86_Broadwell-noTSX.xml
+++ b/src/cpu_map/x86_Broadwell-noTSX.xml
@@ -56,6 +56,81 @@
     <feature name='syscall'/>
     <feature name='tsc'/>
     <feature name='tsc-deadline'/>
+    <feature name='vmx-activity-hlt' added='yes'/>
+    <feature name='vmx-apicv-register' added='yes'/>
+    <feature name='vmx-apicv-vid' added='yes'/>
+    <feature name='vmx-apicv-x2apic' added='yes'/>
+    <feature name='vmx-apicv-xapic' added='yes'/>
+    <feature name='vmx-cr3-load-noexit' added='yes'/>
+    <feature name='vmx-cr3-store-noexit' added='yes'/>
+    <feature name='vmx-cr8-load-exit' added='yes'/>
+    <feature name='vmx-cr8-store-exit' added='yes'/>
+    <feature name='vmx-desc-exit' added='yes'/>
+    <feature name='vmx-entry-ia32e-mode' added='yes'/>
+    <feature name='vmx-entry-load-efer' added='yes'/>
+    <feature name='vmx-entry-load-pat' added='yes'/>
+    <feature name='vmx-entry-load-perf-global-ctrl' added='yes'/>
+    <feature name='vmx-entry-noload-debugctl' added='yes'/>
+    <feature name='vmx-ept' added='yes'/>
+    <feature name='vmx-ept-1gb' added='yes'/>
+    <feature name='vmx-ept-2mb' added='yes'/>
+    <feature name='vmx-ept-execonly' added='yes'/>
+    <feature name='vmx-ept-wb' added='yes'/>
+    <feature name='vmx-eptad' added='yes'/>
+    <feature name='vmx-eptp-switching' added='yes'/>
+    <feature name='vmx-exit-ack-intr' added='yes'/>
+    <feature name='vmx-exit-load-efer' added='yes'/>
+    <feature name='vmx-exit-load-pat' added='yes'/>
+    <feature name='vmx-exit-load-perf-global-ctrl' added='yes'/>
+    <feature name='vmx-exit-nosave-debugctl' added='yes'/>
+    <feature name='vmx-exit-save-efer' added='yes'/>
+    <feature name='vmx-exit-save-pat' added='yes'/>
+    <feature name='vmx-exit-save-preemption-timer' added='yes'/>
+    <feature name='vmx-flexpriority' added='yes'/>
+    <feature name='vmx-hlt-exit' added='yes'/>
+    <feature name='vmx-ins-outs' added='yes'/>
+    <feature name='vmx-intr-exit' added='yes'/>
+    <feature name='vmx-invept' added='yes'/>
+    <feature name='vmx-invept-all-context' added='yes'/>
+    <feature name='vmx-invept-single-context' added='yes'/>
+    <feature name='vmx-invlpg-exit' added='yes'/>
+    <feature name='vmx-invpcid-exit' added='yes'/>
+    <feature name='vmx-invvpid' added='yes'/>
+    <feature name='vmx-invvpid-all-context' added='yes'/>
+    <feature name='vmx-invvpid-single-addr' added='yes'/>
+    <feature name='vmx-invvpid-single-context' added='yes'/>
+    <feature name='vmx-invvpid-single-context-noglobals' added='yes'/>
+    <feature name='vmx-io-bitmap' added='yes'/>
+    <feature name='vmx-io-exit' added='yes'/>
+    <feature name='vmx-monitor-exit' added='yes'/>
+    <feature name='vmx-movdr-exit' added='yes'/>
+    <feature name='vmx-msr-bitmap' added='yes'/>
+    <feature name='vmx-mtf' added='yes'/>
+    <feature name='vmx-mwait-exit' added='yes'/>
+    <feature name='vmx-nmi-exit' added='yes'/>
+    <feature name='vmx-page-walk-4' added='yes'/>
+    <feature name='vmx-pause-exit' added='yes'/>
+    <feature name='vmx-pml' added='yes'/>
+    <feature name='vmx-posted-intr' added='yes'/>
+    <feature name='vmx-preemption-timer' added='yes'/>
+    <feature name='vmx-rdpmc-exit' added='yes'/>
+    <feature name='vmx-rdrand-exit' added='yes'/>
+    <feature name='vmx-rdseed-exit' added='yes'/>
+    <feature name='vmx-rdtsc-exit' added='yes'/>
+    <feature name='vmx-rdtscp-exit' added='yes'/>
+    <feature name='vmx-secondary-ctls' added='yes'/>
+    <feature name='vmx-shadow-vmcs' added='yes'/>
+    <feature name='vmx-store-lma' added='yes'/>
+    <feature name='vmx-true-ctls' added='yes'/>
+    <feature name='vmx-tsc-offset' added='yes'/>
+    <feature name='vmx-unrestricted-guest' added='yes'/>
+    <feature name='vmx-vintr-pending' added='yes'/>
+    <feature name='vmx-vmfunc' added='yes'/>
+    <feature name='vmx-vmwrite-vmexit-fields' added='yes'/>
+    <feature name='vmx-vnmi' added='yes'/>
+    <feature name='vmx-vnmi-pending' added='yes'/>
+    <feature name='vmx-vpid' added='yes'/>
+    <feature name='vmx-wbinvd-exit' added='yes'/>
     <feature name='x2apic'/>
     <feature name='xsave'/>
   </model>
diff --git a/src/cpu_map/x86_Broadwell.xml b/src/cpu_map/x86_Broadwell.xml
index 82939a4509..37dd1dabcf 100644
--- a/src/cpu_map/x86_Broadwell.xml
+++ b/src/cpu_map/x86_Broadwell.xml
@@ -58,6 +58,81 @@
     <feature name='syscall'/>
     <feature name='tsc'/>
     <feature name='tsc-deadline'/>
+    <feature name='vmx-activity-hlt' added='yes'/>
+    <feature name='vmx-apicv-register' added='yes'/>
+    <feature name='vmx-apicv-vid' added='yes'/>
+    <feature name='vmx-apicv-x2apic' added='yes'/>
+    <feature name='vmx-apicv-xapic' added='yes'/>
+    <feature name='vmx-cr3-load-noexit' added='yes'/>
+    <feature name='vmx-cr3-store-noexit' added='yes'/>
+    <feature name='vmx-cr8-load-exit' added='yes'/>
+    <feature name='vmx-cr8-store-exit' added='yes'/>
+    <feature name='vmx-desc-exit' added='yes'/>
+    <feature name='vmx-entry-ia32e-mode' added='yes'/>
+    <feature name='vmx-entry-load-efer' added='yes'/>
+    <feature name='vmx-entry-load-pat' added='yes'/>
+    <feature name='vmx-entry-load-perf-global-ctrl' added='yes'/>
+    <feature name='vmx-entry-noload-debugctl' added='yes'/>
+    <feature name='vmx-ept' added='yes'/>
+    <feature name='vmx-ept-1gb' added='yes'/>
+    <feature name='vmx-ept-2mb' added='yes'/>
+    <feature name='vmx-ept-execonly' added='yes'/>
+    <feature name='vmx-ept-wb' added='yes'/>
+    <feature name='vmx-eptad' added='yes'/>
+    <feature name='vmx-eptp-switching' added='yes'/>
+    <feature name='vmx-exit-ack-intr' added='yes'/>
+    <feature name='vmx-exit-load-efer' added='yes'/>
+    <feature name='vmx-exit-load-pat' added='yes'/>
+    <feature name='vmx-exit-load-perf-global-ctrl' added='yes'/>
+    <feature name='vmx-exit-nosave-debugctl' added='yes'/>
+    <feature name='vmx-exit-save-efer' added='yes'/>
+    <feature name='vmx-exit-save-pat' added='yes'/>
+    <feature name='vmx-exit-save-preemption-timer' added='yes'/>
+    <feature name='vmx-flexpriority' added='yes'/>
+    <feature name='vmx-hlt-exit' added='yes'/>
+    <feature name='vmx-ins-outs' added='yes'/>
+    <feature name='vmx-intr-exit' added='yes'/>
+    <feature name='vmx-invept' added='yes'/>
+    <feature name='vmx-invept-all-context' added='yes'/>
+    <feature name='vmx-invept-single-context' added='yes'/>
+    <feature name='vmx-invlpg-exit' added='yes'/>
+    <feature name='vmx-invpcid-exit' added='yes'/>
+    <feature name='vmx-invvpid' added='yes'/>
+    <feature name='vmx-invvpid-all-context' added='yes'/>
+    <feature name='vmx-invvpid-single-addr' added='yes'/>
+    <feature name='vmx-invvpid-single-context' added='yes'/>
+    <feature name='vmx-invvpid-single-context-noglobals' added='yes'/>
+    <feature name='vmx-io-bitmap' added='yes'/>
+    <feature name='vmx-io-exit' added='yes'/>
+    <feature name='vmx-monitor-exit' added='yes'/>
+    <feature name='vmx-movdr-exit' added='yes'/>
+    <feature name='vmx-msr-bitmap' added='yes'/>
+    <feature name='vmx-mtf' added='yes'/>
+    <feature name='vmx-mwait-exit' added='yes'/>
+    <feature name='vmx-nmi-exit' added='yes'/>
+    <feature name='vmx-page-walk-4' added='yes'/>
+    <feature name='vmx-pause-exit' added='yes'/>
+    <feature name='vmx-pml' added='yes'/>
+    <feature name='vmx-posted-intr' added='yes'/>
+    <feature name='vmx-preemption-timer' added='yes'/>
+    <feature name='vmx-rdpmc-exit' added='yes'/>
+    <feature name='vmx-rdrand-exit' added='yes'/>
+    <feature name='vmx-rdseed-exit' added='yes'/>
+    <feature name='vmx-rdtsc-exit' added='yes'/>
+    <feature name='vmx-rdtscp-exit' added='yes'/>
+    <feature name='vmx-secondary-ctls' added='yes'/>
+    <feature name='vmx-shadow-vmcs' added='yes'/>
+    <feature name='vmx-store-lma' added='yes'/>
+    <feature name='vmx-true-ctls' added='yes'/>
+    <feature name='vmx-tsc-offset' added='yes'/>
+    <feature name='vmx-unrestricted-guest' added='yes'/>
+    <feature name='vmx-vintr-pending' added='yes'/>
+    <feature name='vmx-vmfunc' added='yes'/>
+    <feature name='vmx-vmwrite-vmexit-fields' added='yes'/>
+    <feature name='vmx-vnmi' added='yes'/>
+    <feature name='vmx-vnmi-pending' added='yes'/>
+    <feature name='vmx-vpid' added='yes'/>
+    <feature name='vmx-wbinvd-exit' added='yes'/>
     <feature name='x2apic'/>
     <feature name='xsave'/>
   </model>
-- 
2.44.0
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org
Re: [PATCH 06/22] Add vmx-* features to Broadwell*
Posted by Peter Krempa 1 year, 11 months ago
On Tue, Mar 12, 2024 at 18:06:46 +0100, Jiri Denemark wrote:
> Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
> ---
>  src/cpu_map/x86_Broadwell-IBRS.xml       | 75 ++++++++++++++++++++++++
>  src/cpu_map/x86_Broadwell-noTSX-IBRS.xml | 75 ++++++++++++++++++++++++
>  src/cpu_map/x86_Broadwell-noTSX.xml      | 75 ++++++++++++++++++++++++
>  src/cpu_map/x86_Broadwell.xml            | 75 ++++++++++++++++++++++++
>  4 files changed, 300 insertions(+)
> 
> diff --git a/src/cpu_map/x86_Broadwell-IBRS.xml b/src/cpu_map/x86_Broadwell-IBRS.xml
> index 9033d5fcd5..1484903298 100644
> --- a/src/cpu_map/x86_Broadwell-IBRS.xml
> +++ b/src/cpu_map/x86_Broadwell-IBRS.xml
> @@ -59,6 +59,81 @@
>      <feature name='syscall'/>
>      <feature name='tsc'/>
>      <feature name='tsc-deadline'/>
> +    <feature name='vmx-activity-hlt' added='yes'/>
> +    <feature name='vmx-apicv-register' added='yes'/>
> +    <feature name='vmx-apicv-vid' added='yes'/>

These look reasonable but I don't fancy figuring out the mess how these
are fetched from qemu. I've verified that for all the 'vmx' features,
the script would add them after the modification. Obviously the script
will overwrite and remove the 'added' field.
_______________________________________________
Devel mailing list -- devel@lists.libvirt.org
To unsubscribe send an email to devel-leave@lists.libvirt.org