All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] kvm/x86: Remove Hyper-V SynIC timer stopping
@ 2015-12-14 15:33 ` Andrey Smetanin
  0 siblings, 0 replies; 10+ messages in thread
From: Andrey Smetanin @ 2015-12-14 15:33 UTC (permalink / raw)
  To: kvm; +Cc: Gleb Natapov, Paolo Bonzini, qemu-devel, Roman Kagan, Denis V. Lunev

It's possible that guest send us Hyper-V EOM at the middle
of Hyper-V SynIC timer running, so we start processing of Hyper-V
SynIC timers in vcpu context and stop the Hyper-V SynIC timer
uncoditionally and lose time expiration which Windows 2012R2 guest
expects.

The patch fixes such situation by not stopping Hyper-V SynIC timer
at all, because it's safe to restart it without stop in vcpu context
and timer callback always returns HRTIMER_NORESTART.

Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com>
CC: Gleb Natapov <gleb@kernel.org>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Roman Kagan <rkagan@virtuozzo.com>
CC: Denis V. Lunev <den@openvz.org>
CC: qemu-devel@nongnu.org

---
 arch/x86/kvm/hyperv.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/x86/kvm/hyperv.c b/arch/x86/kvm/hyperv.c
index 8ff8829..f34f666 100644
--- a/arch/x86/kvm/hyperv.c
+++ b/arch/x86/kvm/hyperv.c
@@ -598,7 +598,6 @@ void kvm_hv_process_stimers(struct kvm_vcpu *vcpu)
 	for (i = 0; i < ARRAY_SIZE(hv_vcpu->stimer); i++)
 		if (test_and_clear_bit(i, hv_vcpu->stimer_pending_bitmap)) {
 			stimer = &hv_vcpu->stimer[i];
-			stimer_stop(stimer);
 			if (stimer->config & HV_STIMER_ENABLE) {
 				time_now = get_time_ref_counter(vcpu->kvm);
 				if (time_now >= stimer->exp_time)
-- 
2.4.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-12-16 17:54 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-12-14 15:33 [PATCH v1] kvm/x86: Remove Hyper-V SynIC timer stopping Andrey Smetanin
2015-12-14 15:33 ` [Qemu-devel] " Andrey Smetanin
2015-12-14 16:09 ` Paolo Bonzini
2015-12-14 16:09   ` [Qemu-devel] " Paolo Bonzini
2015-12-14 16:48   ` Andrey Smetanin
2015-12-14 16:48     ` [Qemu-devel] " Andrey Smetanin
2015-12-14 17:01   ` Andrey Smetanin
2015-12-14 17:01     ` [Qemu-devel] " Andrey Smetanin
2015-12-16 17:54     ` Paolo Bonzini
2015-12-16 17:54       ` [Qemu-devel] " Paolo Bonzini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.