On Tue, 18 Jun 2019 at 05:32, Radim Krčmář <rkrcmar@xxxxxxxxxx> wrote: > > 2019-06-17 19:24+0800, Wanpeng Li: > > From: Wanpeng Li <wanpengli@xxxxxxxxxxx> > > > > Wait before calling posted-interrupt deliver function directly to add > > advance timer support to pi_inject_timer. > > > > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx> > > Cc: Radim Krčmář <rkrcmar@xxxxxxxxxx> > > Cc: Marcelo Tosatti <mtosatti@xxxxxxxxxx> > > Signed-off-by: Wanpeng Li <wanpengli@xxxxxxxxxxx> > > --- > > Please merge this patch with [2/5], so bisection doesn't break. Agreed. > > > arch/x86/kvm/lapic.c | 6 ++++-- > > arch/x86/kvm/lapic.h | 2 +- > > arch/x86/kvm/svm.c | 2 +- > > arch/x86/kvm/vmx/vmx.c | 2 +- > > 4 files changed, 7 insertions(+), 5 deletions(-) > > > > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > > index 1a31389..1a31ba5 100644 > > --- a/arch/x86/kvm/lapic.c > > +++ b/arch/x86/kvm/lapic.c > > @@ -1462,6 +1462,8 @@ static void apic_timer_expired(struct kvm_lapic *apic, bool can_pi_inject) > > return; > > > > if (can_pi_inject && posted_interrupt_inject_timer(apic->vcpu)) { > > + if (apic->lapic_timer.timer_advance_ns) > > + kvm_wait_lapic_expire(vcpu, true); > > From where does kvm_wait_lapic_expire() take > apic->lapic_timer.expired_tscdeadline? Sorry, I failed to understand this. https://git.kernel.org/pub/scm/virt/kvm/kvm.git/tree/arch/x86/kvm/lapic.c?h=queue#n1541 We can get apic->lapic_timer.expired_tscdeadline in kvm_wait_lapic_expire() directly. Regards, Wanpeng Li