Re: [PATCH] x86/hyperv: Set pv_info.name to "Hyper-V"

From: Wei Liu
Date: Tue Oct 15 2019 - 05:39:14 EST


On Tue, 15 Oct 2019 at 10:30, Andrea Parri <parri.andrea@xxxxxxxxx> wrote:
>
> Michael reported that the x86/hyperv initialization code printed the
> following dmesg when running in a VM on Hyper-V:
>
> [ 0.000738] Booting paravirtualized kernel on bare hardware
>
> Let the x86/hyperv initialization code set pv_info.name to "Hyper-V";
> with this addition, the dmesg read:
>
> [ 0.000138] Booting paravirtualized kernel on Hyper-V
>
> Reported-by: Michael Kelley <mikelley@xxxxxxxxxxxxx>
> Signed-off-by: Andrea Parri <parri.andrea@xxxxxxxxx>
> ---
> arch/x86/kernel/cpu/mshyperv.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
> index 105844d542e5..c7d1801fa88b 100644
> --- a/arch/x86/kernel/cpu/mshyperv.c
> +++ b/arch/x86/kernel/cpu/mshyperv.c
> @@ -154,6 +154,8 @@ static uint32_t __init ms_hyperv_platform(void)

This function is for platform detection only.

> if (!boot_cpu_has(X86_FEATURE_HYPERVISOR))
> return 0;
>
> + pv_info.name = "Hyper-V";
> +

At this point we're not sure if Linux is really running on Hyper-V yet.

Setting pv_info.name should be moved to the init_platform hook, i.e.
ms_hyperv_init_platform.

Wei.

> cpuid(HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS,
> &eax, &hyp_signature[0], &hyp_signature[1], &hyp_signature[2]);
>
> --
> 2.17.1
>