--- 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; } --- x/drivers/nvme/host/tcp.c +++ y/drivers/nvme/host/tcp.c @@ -3046,6 +3046,8 @@ static int __init nvme_tcp_init_module(v if (wq_unbound) wq_flags |= WQ_UNBOUND; + else + wq_flags |= WQ_PERCPU; nvme_tcp_wq = alloc_workqueue("nvme_tcp_wq", wq_flags, 0); if (!nvme_tcp_wq)