[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.DEB.2.21.1810021412060.12704@nanos.tec.linutronix.de>
Date: Tue, 2 Oct 2018 14:13:14 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Juergen Gross <jgross@...e.com>
cc: linux-kernel@...r.kernel.org, mingo@...nel.org,
sthemmin@...rosoft.com, mikelley@...rosoft.com, kys@...rosoft.com,
haiyangz@...rosoft.com, yi.y.sun@...ux.intel.com, hpa@...or.com
Subject: Re: [tip:x86/hyperv] x86/hyperv: Enable PV qspinlock for Hyper-V
On Tue, 2 Oct 2018, Juergen Gross wrote:
> Sorry for noticing this only now, but I have been fighting with
> Xen PV qspinlocks last weekend:
>
> > + /*
> > + * Read HV_X64_MSR_GUEST_IDLE MSR can trigger the guest's
> > + * transition to the idle power state which can be exited
> > + * by an IPI even if IF flag is disabled.
> > + */
>
> What if interrupts are enabled? Won't a kick happening here just
> interrupt and then the following rdmsr result in a hang?
>
> I believe the correct way would be to:
>
> - disable interrupts before above READ_ONCE() and restore them
> after the rdmsrl()
>
> - return early if in_nmi()
>
> similar as the kvm specific variant is doing it.
Interesting question. I zapped the last commit for now until this is
clarified.
Thanks,
tglx
Powered by blists - more mailing lists