Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1699519 > unrolled thread

Re: [PATCH] kvm: x86: fix a race condition result to lost INIT

Started byWanpeng Li <kernellwp@gmail.com>
First post2017-07-30 14:00 +0200
Last post2017-07-30 14:00 +0200
Articles 1 — 1 participant

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH] kvm: x86: fix a race condition result to lost INIT Wanpeng Li <kernellwp@gmail.com> - 2017-07-30 14:00 +0200

#1699519 — Re: [PATCH] kvm: x86: fix a race condition result to lost INIT

FromWanpeng Li <kernellwp@gmail.com>
Date2017-07-30 14:00 +0200
SubjectRe: [PATCH] kvm: x86: fix a race condition result to lost INIT
Message-ID<u8V33-8gx-13@gated-at.bofh.it>
2017-07-30 19:33 GMT+08:00  <peng.hao2@zte.com.cn>:
>
>
>
>
>>2017-07-30 18:42 GMT+08:00  <peng.hao2@zte.com.cn>:
>
>>>> 2017-07-31 0:24 GMT+08:00 Peng Hao <peng.hao2@zte.com.cn>:
>>>
>>>> > when SMP VM start, AP may lost INIT because of receiving INIT between
>>>> > kvm_vcpu_ioctl_x86_get/set_vcpu_events.
>>>> >
>>>> >    vcpu 0                             vcpu 1
>>>> >                                kvm_vcpu_ioctl_x86_get_vcpu_events
>>>> >                                        events->smi.latched_init=0
>>>> >  send INIT to vcpu1
>>>> >    set vcpu1's pending_events
>>>> >                                kvm_vcpu_ioctl_x86_set_vcpu_events
>>>> >                                     events->smi.latched_init == 0
>>>> >                                       clear INIT in pending_events
>>>> > I don't think it need set/clear kernel state according to userspace's
>>>> > info.
>>>> >
>>>> > Signed-off-by: Peng Hao <peng.hao2@zte.com.cn>
>>>> > ---
>>>> >  arch/x86/kvm/x86.c | 6 ------
>>>> >  1 file changed, 6 deletions(-)
>>>> >
>>>> > diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
>>>> > index 6c7266f..393a7b7 100644
>>>> > --- a/arch/x86/kvm/x86.c
>>>> > +++ b/arch/x86/kvm/x86.c
>>>> > @@ -3157,12 +3157,6 @@ static int
>>>> > kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu,
>>>> >                         vcpu->arch.hflags |= HF_SMM_INSIDE_NMI_MASK;
>>>> >                 else
>>>> >                         vcpu->arch.hflags &= ~HF_SMM_INSIDE_NMI_MASK;
>>>> > -               if (lapic_in_kernel(vcpu)) {
>>>> > -                       if (events->smi.latched_init)
>>>> > -                               set_bit(KVM_APIC_INIT,
>>>> > &vcpu->arch.apic->pending_events);
>>>
>>>> This is not correct, you will lose the INIT after live migration. I
>>>> just send out another patch to fix it. Thanks for the report.
>>>
>>> yes, you're right. I should modify on qemu not kernel.
>
>>There is a patch here to fix it in kvm, https://lkml.org/lkml/2017/7/30/72
>
>>>
>
> I was affected by sipi, kernel never report  valid sipi to user space,

How you afftected by SIPI? In addition, you reported the lost of INIT.
Is it observed by your workload or by code review?

Regards,
Wanpeng Li

>
> we don't care whether sipi is lost  after migration. Why?
>
>>>> > -                       else
>>>> > -                               clear_bit(KVM_APIC_INIT,
>>>> > &vcpu->arch.apic->pending_events);
>>>> > -               }
>>>> >         }
>
>
>

[toc] | [standalone]


Back to top | Article view | linux.kernel


csiph-web