Messages in this thread | | | Date | Mon, 8 Oct 2018 16:12:23 +0800 | From | Yi Sun <> | Subject | Re: [tip:x86/hyperv] x86/hyperv: Enable PV qspinlock for Hyper-V |
| |
On 18-10-02 13:38:55, Juergen Gross wrote: > > +static void hv_qlock_wait(u8 *byte, u8 val) > > +{ > > + unsigned long msr_val; > > + > > + if (READ_ONCE(*byte) != val) > > + return; > > + > > + /* > > + * 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. > > > Juergen
Thank you for the suggestion! That is a possible case. I will submit a new version in soon.
BRs, Yi Sun
| |