RE: [PATCH v1 15/23] KVM: nVMX: Add support for the secondary VM exit controls

From: Li, Xin3
Date: Mon Nov 20 2023 - 12:43:15 EST


> > diff --git a/arch/x86/include/asm/hyperv-tlfs.h
> > b/arch/x86/include/asm/hyperv-tlfs.h
> > index 2ff26f53cd62..299554708e37 100644
> > --- a/arch/x86/include/asm/hyperv-tlfs.h
> > +++ b/arch/x86/include/asm/hyperv-tlfs.h
> > @@ -616,6 +616,7 @@ struct hv_enlightened_vmcs {
> > u64 host_ssp;
> > u64 host_ia32_int_ssp_table_addr;
> > u64 padding64_6;
> > + u64 secondary_vm_exit_controls;
>
> (I think Jeremi has asked a similar question but just to be sure)
>
> This doesn't seem to be present in the currently available TLFS version e.g. here:
> https://learn.microsoft.com/en-us/virtualization/hyper-v-on-
> windows/tlfs/datatypes/hv_vmx_enlightened_vmcs
>
> That wouldn't be the first time when TLFS lags behind but as I don't see anyone
> from Microsoft signing this off, let me ask: where did you get this information
> and, in case it came from someone @microsoft.com, can we get their sign-off on
> the patch?

This is being worked on.

> > diff --git a/arch/x86/kvm/vmx/hyperv.c b/arch/x86/kvm/vmx/hyperv.c
> > index 313b8bb5b8a7..b8cd53601a00 100644
> > --- a/arch/x86/kvm/vmx/hyperv.c
> > +++ b/arch/x86/kvm/vmx/hyperv.c
> > @@ -477,6 +483,9 @@ static const u32
> evmcs_supported_ctrls[NR_EVMCS_CTRLS][NR_EVMCS_REVISIONS] = {
> > [EVMCS_EXIT_CTRLS] = {
> > [EVMCSv1_LEGACY] = EVMCS1_SUPPORTED_VMEXIT_CTRL,
> > },
> > + [EVMCS_2NDEXIT] = {
> > + [EVMCSv1_LEGACY] = EVMCS1_SUPPORTED_VMEXIT_CTRL2,
> > + },
> > [EVMCS_ENTRY_CTRLS] = {
> > [EVMCSv1_LEGACY] = EVMCS1_SUPPORTED_VMENTRY_CTRL,
> > },
>
> What's the desired effect here? I.e. why exposing
> VM_EXIT_ACTIVATE_SECONDARY_CONTROLS when none of the controls are
> going to be exposed?

This is wrong for evmcs v1, I will drop it.