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 <[email protected]>
Signed-off-by: Andrea Parri <[email protected]>
---
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)
if (!boot_cpu_has(X86_FEATURE_HYPERVISOR))
return 0;
+ pv_info.name = "Hyper-V";
+
cpuid(HYPERV_CPUID_VENDOR_AND_MAX_FUNCTIONS,
&eax, &hyp_signature[0], &hyp_signature[1], &hyp_signature[2]);
--
2.17.1
On Tue, 15 Oct 2019 at 10:30, Andrea Parri <[email protected]> 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 <[email protected]>
> Signed-off-by: Andrea Parri <[email protected]>
> ---
> 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
>
> > @@ -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.
Thank you for the review, Wei. I'll move this to the init_platform hook
and re-submit shortly.
Thanks,
Andrea