> -----邮件原件----- > 发件人: Sean Christopherson <seanjc@xxxxxxxxxx> > 发送时间: 2021年7月27日 9:26 > 收件人: Li,Rongqing <lirongqing@xxxxxxxxx> > 抄送: Wanpeng Li <kernellwp@xxxxxxxxx>; Paolo Bonzini > <pbonzini@xxxxxxxxxx>; Ingo Molnar <mingo@xxxxxxxxxx>; Peter Zijlstra > <peterz@xxxxxxxxxxxxx>; kvm <kvm@xxxxxxxxxxxxxxx>; LKML > <linux-kernel@xxxxxxxxxxxxxxx> > 主题: Re: 答复: [PATCH] KVM: Consider SMT idle status when halt polling > > Rather than disallowing halt-polling entirely, on x86 it should be sufficient to > simply have the hardware thread yield to its sibling(s) via PAUSE. It probably > won't get back all performance, but I would expect it to be close. > > This compiles on all KVM architectures, and AFAICT the intended usage of > cpu_relax() is identical for all architectures. > Reasonable, thanks, I will resend it -Li > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index > 6980dabe9df5..a07ecb3c67fb 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -3111,6 +3111,7 @@ void kvm_vcpu_block(struct kvm_vcpu *vcpu) > goto out; > } > poll_end = cur = ktime_get(); > + cpu_relax(); > } while (kvm_vcpu_can_poll(cur, stop)); > } >