2019-11-21 14:31:11

by Paolo Bonzini

[permalink] [raw]
Subject: [PATCH] KVM: nVMX: expose "load IA32_PERF_GLOBAL_CTRL" controls

These controls were added by the recent commit 03a8871add95 ("KVM:
nVMX: Expose load IA32_PERF_GLOBAL_CTRL VM-{Entry,Exit} control",
2019-11-13), so we should advertise them to userspace from
KVM_GET_MSR_FEATURE_INDEX_LIST, as well.

Cc: Oliver Upton <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
---
arch/x86/kvm/vmx/nested.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c
index 4aea7d304beb..4b4ce6a804ff 100644
--- a/arch/x86/kvm/vmx/nested.c
+++ b/arch/x86/kvm/vmx/nested.c
@@ -5982,6 +5982,7 @@ void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
#ifdef CONFIG_X86_64
VM_EXIT_HOST_ADDR_SPACE_SIZE |
#endif
+ VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |
VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
msrs->exit_ctls_high |=
VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
@@ -6001,6 +6002,7 @@ void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
#ifdef CONFIG_X86_64
VM_ENTRY_IA32E_MODE |
#endif
+ VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL |
VM_ENTRY_LOAD_IA32_PAT;
msrs->entry_ctls_high |=
(VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR | VM_ENTRY_LOAD_IA32_EFER);
--
1.8.3.1


2019-11-21 18:48:45

by Krish Sadhukhan

[permalink] [raw]
Subject: Re: [PATCH] KVM: nVMX: expose "load IA32_PERF_GLOBAL_CTRL" controls


On 11/21/19 6:29 AM, Paolo Bonzini wrote:
> These controls were added by the recent commit 03a8871add95 ("KVM:
> nVMX: Expose load IA32_PERF_GLOBAL_CTRL VM-{Entry,Exit} control",
> 2019-11-13), so we should advertise them to userspace from
> KVM_GET_MSR_FEATURE_INDEX_LIST, as well.
>
> Cc: Oliver Upton <[email protected]>
> Signed-off-by: Paolo Bonzini <[email protected]>
> ---
> arch/x86/kvm/vmx/nested.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c
> index 4aea7d304beb..4b4ce6a804ff 100644
> --- a/arch/x86/kvm/vmx/nested.c
> +++ b/arch/x86/kvm/vmx/nested.c
> @@ -5982,6 +5982,7 @@ void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
> #ifdef CONFIG_X86_64
> VM_EXIT_HOST_ADDR_SPACE_SIZE |
> #endif
> + VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |
> VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
> msrs->exit_ctls_high |=
> VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
> @@ -6001,6 +6002,7 @@ void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
> #ifdef CONFIG_X86_64
> VM_ENTRY_IA32E_MODE |
> #endif
> + VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL |
> VM_ENTRY_LOAD_IA32_PAT;
> msrs->entry_ctls_high |=
> (VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR | VM_ENTRY_LOAD_IA32_EFER);
Reviewed-by: Krish Sadhukhan <[email protected]>

2019-12-06 18:54:52

by Oliver Upton

[permalink] [raw]
Subject: Re: [PATCH] KVM: nVMX: expose "load IA32_PERF_GLOBAL_CTRL" controls

Hi Paolo,

Sorry I didn't see this earlier. Thank you for addressing this!

On Thu, Nov 21, 2019 at 10:42:18AM -0800, Krish Sadhukhan wrote:
>
> On 11/21/19 6:29 AM, Paolo Bonzini wrote:
> > These controls were added by the recent commit 03a8871add95 ("KVM:
> > nVMX: Expose load IA32_PERF_GLOBAL_CTRL VM-{Entry,Exit} control",
> > 2019-11-13), so we should advertise them to userspace from
> > KVM_GET_MSR_FEATURE_INDEX_LIST, as well.
> >
> > Cc: Oliver Upton <[email protected]>
> > Signed-off-by: Paolo Bonzini <[email protected]>
> > ---
> > arch/x86/kvm/vmx/nested.c | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c
> > index 4aea7d304beb..4b4ce6a804ff 100644
> > --- a/arch/x86/kvm/vmx/nested.c
> > +++ b/arch/x86/kvm/vmx/nested.c
> > @@ -5982,6 +5982,7 @@ void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
> > #ifdef CONFIG_X86_64
> > VM_EXIT_HOST_ADDR_SPACE_SIZE |
> > #endif
> > + VM_EXIT_LOAD_IA32_PERF_GLOBAL_CTRL |
> > VM_EXIT_LOAD_IA32_PAT | VM_EXIT_SAVE_IA32_PAT;
> > msrs->exit_ctls_high |=
> > VM_EXIT_ALWAYSON_WITHOUT_TRUE_MSR |
> > @@ -6001,6 +6002,7 @@ void nested_vmx_setup_ctls_msrs(struct nested_vmx_msrs *msrs, u32 ept_caps,
> > #ifdef CONFIG_X86_64
> > VM_ENTRY_IA32E_MODE |
> > #endif
> > + VM_ENTRY_LOAD_IA32_PERF_GLOBAL_CTRL |
> > VM_ENTRY_LOAD_IA32_PAT;
> > msrs->entry_ctls_high |=
> > (VM_ENTRY_ALWAYSON_WITHOUT_TRUE_MSR | VM_ENTRY_LOAD_IA32_EFER);
> Reviewed-by: Krish Sadhukhan <[email protected]>
Reviewed-by: Oliver Upton <[email protected]>