On Tue, 24 Mar 2020 at 23:24, Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> wrote: > > Wanpeng Li <kernellwp@xxxxxxxxx> writes: > > > From: Wanpeng Li <wanpengli@xxxxxxxxxxx> > > > > The timer is disarmed when switching between TSC deadline and other modes, > > we should set everything to disarmed state, however, LAPIC timer can be > > emulated by preemption timer, it still works if vmx->hv_deadline_timer is > > not -1. This patch also cancels preemption timer when disarm LAPIC timer. > > > > Signed-off-by: Wanpeng Li <wanpengli@xxxxxxxxxxx> > > --- > > arch/x86/kvm/lapic.c | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > > index 338de38..a38f1a8 100644 > > --- a/arch/x86/kvm/lapic.c > > +++ b/arch/x86/kvm/lapic.c > > @@ -1445,6 +1445,8 @@ static void limit_periodic_timer_frequency(struct kvm_lapic *apic) > > } > > } > > > > +static void cancel_hv_timer(struct kvm_lapic *apic); > > + > > Nitpick: cancel_hv_timer() is only 4 lines long so I'd suggest we move > it instead of adding a forward declaration. There are other preemption timer operations like start_hv_timer etc around cancel_hv_timer, so it is not that suitable to move directly. Wanpeng