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. > 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? (I think it would be best to take the functional core of kvm_wait_lapic_expire() and make it into a function that takes the expired_tscdeadline as an argument.) Thanks.