This is my take on Wanpeng's optimization, whose effect I've now measured with vmexit.flat. Indeed, without patch 3 the new tscdeadline_immed benchmark is 50% slower with preemption_timer=1 than with preemption_timer=0. Patch 1 refactors start_hv_timer to prepare for the next one and to simplify Wanpeng's patch (a lot). Patch 2 avoids a bug that I didn't catch in my earlier review: kvm_x86_ops->set_timer must not be called directly when the TSC goes backwards. Paolo Paolo Bonzini (2): KVM: lapic: reorganize start_hv_timer KVM: lapic: reorganize restart_apic_timer Wanpeng Li (1): KVM: LAPIC: Fix lapic timer injection delay arch/x86/kvm/lapic.c | 116 ++++++++++++++++++++++++++++----------------------- arch/x86/kvm/lapic.h | 2 +- arch/x86/kvm/vmx.c | 3 +- arch/x86/kvm/x86.c | 8 ++-- 4 files changed, 71 insertions(+), 58 deletions(-) -- 1.8.3.1