On Thu, Sep 22, 2022, Michael Kelley (LINUX) wrote: > From: Sean Christopherson <seanjc@xxxxxxxxxx> Sent: Wednesday, September 21, 2022 1:16 PM > > > > Move Hyper-V's VMCB enlightenment definitions to the TLFS header; the > > definitions come directly from the TLFS[*], not from KVM. > > > > No functional change intended. > > > > [*] https://learn.microsoft.com/en-us/virtualization/hyper-v-on-windows/tlfs/datatypes/hv_svm_enlightened_vmcb_fields> > > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> > > --- > > arch/x86/include/asm/hyperv-tlfs.h | 22 +++++++++++++++++++ > > arch/x86/kvm/svm/hyperv.h | 35 ------------------------------ > > arch/x86/kvm/svm/svm_onhyperv.h | 3 ++- > > 3 files changed, 24 insertions(+), 36 deletions(-) > > delete mode 100644 arch/x86/kvm/svm/hyperv.h > > > > diff --git a/arch/x86/include/asm/hyperv-tlfs.h b/arch/x86/include/asm/hyperv-tlfs.h > > index 0a9407dc0859..4c4f81daf5a2 100644 > > --- a/arch/x86/include/asm/hyperv-tlfs.h > > +++ b/arch/x86/include/asm/hyperv-tlfs.h > > @@ -584,6 +584,28 @@ struct hv_enlightened_vmcs { > > > > #define HV_VMX_ENLIGHTENED_CLEAN_FIELD_ALL 0xFFFF > > > > +/* > > + * Hyper-V uses the software reserved 32 bytes in VMCB control area to expose > > + * SVM enlightenments to guests. > > + */ > > +struct hv_enlightenments { > > + struct __packed hv_enlightenments_control { > > + u32 nested_flush_hypercall:1; > > + u32 msr_bitmap:1; > > + u32 enlightened_npt_tlb: 1; > > + u32 reserved:29; > > + } __packed hv_enlightenments_control; > > + u32 hv_vp_id; > > + u64 hv_vm_id; > > + u64 partition_assist_page; > > + u64 reserved; > > +} __packed; > > + > > +/* > > + * Hyper-V uses the software reserved clean bit in VMCB. > > + */ > > +#define VMCB_HV_NESTED_ENLIGHTENMENTS 31 > > Is it feasible to change this identifier so it starts with HV_ like > everything else in this source code file, such as > HV_VMCB_NESTED_ENLIGHTENMENTS? It doesn't look like it is > used in very many places. Most definitely, IIRC it's used in only one spot.