On 25.10.2019 11:16, Wei Liu wrote: > --- a/xen/arch/x86/guest/hyperv/hyperv.c > +++ b/xen/arch/x86/guest/hyperv/hyperv.c > @@ -21,6 +21,9 @@ > #include <xen/init.h> > > #include <asm/guest.h> > +#include <asm/guest/hyperv-tlfs.h> > + > +struct ms_hyperv_info ms_hyperv; > > bool __init hyperv_probe(void) > { > @@ -36,6 +39,17 @@ bool __init hyperv_probe(void) > if ( eax != 0x31237648 ) /* Hv#1 */ > return false; > > + /* Extract more information from Hyper-V */ > + ms_hyperv.features = cpuid_eax(HYPERV_CPUID_FEATURES); > + ms_hyperv.misc_features = cpuid_edx(HYPERV_CPUID_FEATURES);
It's __init code, so it doesn't matter all that much, but perhaps obtain these two and ... > + ms_hyperv.hints = cpuid_eax(HYPERV_CPUID_ENLIGHTMENT_INFO); > + > + if ( ms_hyperv.hints & HV_X64_ENLIGHTENED_VMCS_RECOMMENDED ) > + ms_hyperv.nested_features = cpuid_eax(HYPERV_CPUID_NESTED_FEATURES); > + > + ms_hyperv.max_vp_index = cpuid_eax(HYPERV_CPUID_IMPLEMENT_LIMITS); > + ms_hyperv.max_lp_index = cpuid_ebx(HYPERV_CPUID_IMPLEMENT_LIMITS); ... these two with just one CPUID invocation each? Preferably with this adjustment Acked-by: Jan Beulich <jbeul...@suse.com> Jan _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel