--- x/arch/x86/kvm/hyperv.c +++ y/arch/x86/kvm/hyperv.c @@ -657,10 +657,8 @@ static int stimer_start(struct kvm_vcpu_ stimer->index, time_now, stimer->exp_time); - hrtimer_start(&stimer->timer, - ktime_add_ns(ktime_now, - 100 * (stimer->exp_time - time_now)), - HRTIMER_MODE_ABS); + hrtimer_forward_now(&stimer->timer, + ns_to_ktime(100 * (stimer->exp_time - time_now))); return 0; } stimer->exp_time = stimer->count; @@ -679,9 +677,7 @@ static int stimer_start(struct kvm_vcpu_ stimer->index, time_now, stimer->count); - hrtimer_start(&stimer->timer, - ktime_add_ns(ktime_now, 100 * (stimer->count - time_now)), - HRTIMER_MODE_ABS); + hrtimer_forward_now(&stimer->timer, ns_to_ktime(100 * (stimer->count - time_now))); return 0; }