All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/9] KVM: Hyper-V SynIC timers
@ 2015-11-30 16:22 ` Andrey Smetanin
  0 siblings, 0 replies; 34+ messages in thread
From: Andrey Smetanin @ 2015-11-30 16:22 UTC (permalink / raw)
  To: kvm
  Cc: Gleb Natapov, Haiyang Zhang, qemu-devel, Roman Kagan,
	Denis V. Lunev, Paolo Bonzini, Vitaly Kuznetsov,
	K. Y. Srinivasan

Per Hyper-V specification (and as required by Hyper-V-aware guests),
SynIC provides 4 per-vCPU timers.  Each timer is programmed via a pair
of MSRs, and signals expiration by delivering a special format message
to the configured SynIC message slot and triggering the corresponding
synthetic interrupt.

Note: as implemented by this patch, all periodic timers are "lazy"
(i.e. if the vCPU wasn't scheduled for more than the timer period the
timer events are lost), regardless of the corresponding configuration
MSR.  If deemed necessary, the "catch up" mode (the timer period is
shortened until the timer catches up) will be implemented later.

The Hyper-V SynIC timers support is required to load winhv.sys
inside Windows guest on which guest VMBus devices depends on.

This patches depends on Hyper-V SynIC patches previosly sent.

Changes v2:
* Hyper-V headers patches split and fixes
* Use remainder to calculate peridic timer expiration time

Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com>
CC: Gleb Natapov <gleb@kernel.org>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: "K. Y. Srinivasan" <kys@microsoft.com>
CC: Haiyang Zhang <haiyangz@microsoft.com>
CC: Vitaly Kuznetsov <vkuznets@redhat.com>
CC: Roman Kagan <rkagan@virtuozzo.com>
CC: Denis V. Lunev <den@openvz.org>
CC: qemu-devel@nongnu.org

Andrey Smetanin (9):
  drivers/hv: Replace enum hv_message_type by u32
  drivers/hv: Move HV_SYNIC_STIMER_COUNT into Hyper-V UAPI x86 header
  drivers/hv: Move struct hv_message into UAPI Hyper-V x86 header
  drivers/hv: Move struct hv_timer_message_payload into UAPI Hyper-V x86
    header
  kvm/x86: Rearrange func's declarations inside Hyper-V header
  kvm/x86: Added Hyper-V vcpu_to_hv_vcpu()/hv_vcpu_to_vcpu() helpers
  kvm/x86: Hyper-V internal helper to read MSR HV_X64_MSR_TIME_REF_COUNT
  kvm/x86: Hyper-V SynIC message slot pending clearing at SINT ack
  kvm/x86: Hyper-V SynIC timers

 arch/x86/include/asm/kvm_host.h    |  13 ++
 arch/x86/include/uapi/asm/hyperv.h |  90 ++++++++++
 arch/x86/kvm/hyperv.c              | 360 ++++++++++++++++++++++++++++++++++++-
 arch/x86/kvm/hyperv.h              |  54 ++++--
 arch/x86/kvm/x86.c                 |   9 +
 drivers/hv/hv.c                    |   4 +-
 drivers/hv/hyperv_vmbus.h          |  92 +---------
 include/linux/kvm_host.h           |   3 +
 8 files changed, 516 insertions(+), 109 deletions(-)

-- 
2.4.3

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

end of thread, other threads:[~2015-12-04 18:12 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-30 16:22 [PATCH v2 0/9] KVM: Hyper-V SynIC timers Andrey Smetanin
2015-11-30 16:22 ` [Qemu-devel] " Andrey Smetanin
2015-11-30 16:22 ` [PATCH v2 1/9] drivers/hv: replace enum hv_message_type by u32 Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin
2015-12-02 12:22   ` Paolo Bonzini
2015-12-02 12:22     ` [Qemu-devel] " Paolo Bonzini
2015-12-04 14:33     ` Denis V. Lunev
2015-12-04 14:33       ` [Qemu-devel] " Denis V. Lunev
2015-12-04 14:41       ` Paolo Bonzini
2015-12-04 14:41         ` [Qemu-devel] " Paolo Bonzini
2015-12-04 16:55         ` Denis V. Lunev
2015-12-04 16:55           ` [Qemu-devel] " Denis V. Lunev
2015-12-04 17:38           ` Paolo Bonzini
2015-12-04 17:38             ` [Qemu-devel] " Paolo Bonzini
2015-12-04 18:00             ` Denis V. Lunev
2015-12-04 18:00               ` [Qemu-devel] " Denis V. Lunev
2015-12-04 18:12               ` Paolo Bonzini
2015-12-04 18:12                 ` [Qemu-devel] " Paolo Bonzini
2015-11-30 16:22 ` [PATCH v2 2/9] drivers/hv: Move HV_SYNIC_STIMER_COUNT into Hyper-V UAPI x86 header Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin
2015-11-30 16:22 ` [PATCH v2 3/9] drivers/hv: Move struct hv_message into UAPI Hyper-V " Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin
2015-11-30 16:22 ` [PATCH v2 4/9] drivers/hv: Move struct hv_timer_message_payload " Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin
2015-11-30 16:22 ` [PATCH v2 5/9] kvm/x86: Rearrange func's declarations inside Hyper-V header Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin
2015-11-30 16:22 ` [PATCH v2 6/9] kvm/x86: Added Hyper-V vcpu_to_hv_vcpu()/hv_vcpu_to_vcpu() helpers Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin
2015-11-30 16:22 ` [PATCH v2 7/9] kvm/x86: Hyper-V internal helper to read MSR HV_X64_MSR_TIME_REF_COUNT Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin
2015-11-30 16:22 ` [PATCH v2 8/9] kvm/x86: Hyper-V SynIC message slot pending clearing at SINT ack Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin
2015-11-30 16:22 ` [PATCH v2 9/9] kvm/x86: Hyper-V SynIC timers Andrey Smetanin
2015-11-30 16:22   ` [Qemu-devel] " Andrey Smetanin

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.