Re: [PATCH] KVM: LAPIC: Reset timer_advance_ns to 1000 after adaptive tuning goes insane

From: Paolo Bonzini
Date: Fri Jul 05 2019 - 05:50:50 EST


On 05/07/19 11:40, Wanpeng Li wrote:
> From: Wanpeng Li <wanpengli@xxxxxxxxxxx>
>
> Reset timer_advance_ns to the default value 1000ns after adaptive tuning
> goes insane which can happen sporadically in product environment.
>
> Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> Cc: Radim KrÄmÃÅ <rkrcmar@xxxxxxxxxx>
> Signed-off-by: Wanpeng Li <wanpengli@xxxxxxxxxxx>
> ---
> arch/x86/kvm/lapic.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
> index 05d8934..454d3dd 100644
> --- a/arch/x86/kvm/lapic.c
> +++ b/arch/x86/kvm/lapic.c
> @@ -1549,7 +1549,7 @@ static inline void adjust_lapic_timer_advance(struct kvm_vcpu *vcpu,
> if (abs(advance_expire_delta) < LAPIC_TIMER_ADVANCE_ADJUST_DONE)
> apic->lapic_timer.timer_advance_adjust_done = true;
> if (unlikely(timer_advance_ns > 5000)) {
> - timer_advance_ns = 0;
> + timer_advance_ns = 1000;
> apic->lapic_timer.timer_advance_adjust_done = true;

Do you also want to reset timer_advance_adjust_done to false?

Paolo

> }
> apic->lapic_timer.timer_advance_ns = timer_advance_ns;
>