[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <761b736ff1854810bfe272961248e6d2@BLUPR03MB050.namprd03.prod.outlook.com>
Date: Fri, 25 Jan 2013 16:43:17 +0000
From: KY Srinivasan <kys@...rosoft.com>
To: Olaf Hering <olaf@...fle.de>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC: "stable@...nel.org" <stable@...nel.org>,
Greg KH <gregkh@...uxfoundation.org>
Subject: RE: [PATCH] x86: Hyper-V: register clocksource only if its
advertised
> -----Original Message-----
> From: Olaf Hering [mailto:olaf@...fle.de]
> Sent: Friday, January 25, 2013 8:37 AM
> To: linux-kernel@...r.kernel.org
> Cc: Olaf Hering; stable@...nel.org; KY Srinivasan; Greg KH
> Subject: [PATCH] x86: Hyper-V: register clocksource only if its advertised
>
> Enable hyperv_clocksource only if its advertised as a feature.
> XenServer 6 returns the signature which is checked in
> ms_hyperv_platform(), but it does not offer all features. Currently the
> clocksource is enabled unconditionally in ms_hyperv_init_platform(), and
> the result is a hanging guest.
>
> Hyper-V spec Bit 1 indicates the availability of Partition Reference
> Counter. Register the clocksource only if this bit is set.
>
> The guest in question prints this in dmesg:
> [ 0.000000] Hypervisor detected: Microsoft HyperV
> [ 0.000000] HyperV: features 0x70, hints 0x0
>
> This bug can be reproduced easily be setting 'viridian=1' in a HVM domU
> .cfg file. A workaround without this patch is to boot the HVM guest with
> 'clocksource=jiffies'.
I am curious why you are setting viridian=1 for a Linux HVM guest. Initially when
I did the Hyper-V emulation work on Xen, this configuration flag would be set only
for Windows guests since the idea was to run the "enlightened" Windows on Xen.
While the current Xen emulation code does not emulate "Partition Reference Counter"
there is no guarantee that Xen would not do this in the future. Perhaps dealing with this issue
by identifying the guest (via the viridian domain or not) may be a safer approach?
Regards,
K. Y
>
> Signed-off-by: Olaf Hering <olaf@...fle.de>
> Cc: stable@...nel.org
> Cc: KY Srinivasan <kys@...rosoft.com>
> Cc: Greg KH <gregkh@...uxfoundation.org>
> ---
> arch/x86/kernel/cpu/mshyperv.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
> index 0a630dd..646d192 100644
> --- a/arch/x86/kernel/cpu/mshyperv.c
> +++ b/arch/x86/kernel/cpu/mshyperv.c
> @@ -68,7 +68,8 @@ static void __init ms_hyperv_init_platform(void)
> printk(KERN_INFO "HyperV: features 0x%x, hints 0x%x\n",
> ms_hyperv.features, ms_hyperv.hints);
>
> - clocksource_register_hz(&hyperv_cs, NSEC_PER_SEC/100);
> + if (ms_hyperv.features & HV_X64_MSR_TIME_REF_COUNT_AVAILABLE)
> + clocksource_register_hz(&hyperv_cs, NSEC_PER_SEC/100);
> }
>
> const __refconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
> --
> 1.8.1.1
>
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists