linux/arch/x86/kvm
Andrey Smetanin 1f4b34f825 kvm/x86: Hyper-V SynIC timers
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.

Changes v2:
* Use remainder to calculate periodic timer expiration time

Signed-off-by: Andrey Smetanin <asmetanin@virtuozzo.com>
Reviewed-by: Roman Kagan <rkagan@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
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2015-12-16 18:49:45 +01:00
..
assigned-dev.c KVM: x86: move kvm_set_irq_inatomic to legacy device assignment 2015-11-04 16:24:36 +01:00
assigned-dev.h KVM: x86: move device assignment out of kvm_host.h 2014-11-24 16:53:50 +01:00
cpuid.c s390: A bunch of fixes and optimizations for interrupt and time 2015-11-05 16:26:26 -08:00
cpuid.h kvm: svm: Only propagate next_rip when guest supports it 2015-10-16 10:32:17 +02:00
emulate.c KVM: x86: allow RSM from 64-bit mode 2015-11-04 16:24:38 +01:00
hyperv.c kvm/x86: Hyper-V SynIC timers 2015-12-16 18:49:45 +01:00
hyperv.h kvm/x86: Hyper-V SynIC timers 2015-12-16 18:49:45 +01:00
i8254.c KVM: x86: Split the APIC from the rest of IRQCHIP. 2015-10-01 15:06:26 +02:00
i8254.h KVM: move iodev.h from virt/kvm/ to include/kvm 2015-03-26 21:43:12 +00:00
i8259.c KVM: x86: clean/fix memory barriers in irqchip_in_kernel 2015-07-30 16:02:56 +02:00
ioapic.c kvm/x86: split ioapic-handled and EOI exit bitmaps 2015-11-25 17:24:21 +01:00
ioapic.h kvm/x86: split ioapic-handled and EOI exit bitmaps 2015-11-25 17:24:21 +01:00
iommu.c KVM: count number of assigned devices 2015-07-10 13:25:26 +02:00
irq_comm.c kvm/x86: Hyper-V synthetic interrupt controller 2015-11-25 17:24:22 +01:00
irq.c kvm/x86: per-vcpu apicv deactivation support 2015-11-25 17:24:21 +01:00
irq.h KVM: x86: Add support for local interrupt requests from userspace 2015-10-01 15:06:29 +02:00
Kconfig KVM: x86: select IRQ_BYPASS_MANAGER 2015-10-01 15:06:52 +02:00
kvm_cache_regs.h KVM: x86: API changes for SMM support 2015-06-04 16:01:11 +02:00
lapic.c kvm/x86: Hyper-V synthetic interrupt controller 2015-11-25 17:24:22 +01:00
lapic.h kvm/x86: Hyper-V synthetic interrupt controller 2015-11-25 17:24:22 +01:00
Makefile kvm/x86: move Hyper-V MSR's/hypercall code into hyperv.c file 2015-07-23 08:27:06 +02:00
mmu_audit.c KVM: x86: MMU: Remove is_rmap_spte() and use is_shadow_present_pte() 2015-11-25 17:26:35 +01:00
mmu.c KVM: x86: MMU: Remove unused parameter parent_pte from kvm_mmu_get_page() 2015-11-26 15:31:36 +01:00
mmu.h KVM: x86: merge handle_mmio_page_fault and handle_mmio_page_fault_common 2015-11-10 12:06:03 +01:00
mmutrace.h tracing: Rename ftrace_event.h to trace_events.h 2015-05-13 14:05:12 -04:00
mtrr.c KVM: MTRR: Use default type for non-MTRR-covered gfn before WARN_ON 2015-08-05 12:47:21 +02:00
paging_tmpl.h KVM: x86: MMU: Remove unused parameter parent_pte from kvm_mmu_get_page() 2015-11-26 15:31:36 +01:00
pmu_amd.c KVM: x86/vPMU: Fix unnecessary signed extension for AMD PERFCTRn 2015-08-11 15:19:41 +02:00
pmu_intel.c KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch 2015-06-23 14:12:14 +02:00
pmu.c KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch 2015-06-23 14:12:14 +02:00
pmu.h KVM: x86/vPMU: Define kvm_pmu_ops to support vPMU function dispatch 2015-06-23 14:12:14 +02:00
svm.c KVM: svm: add support for RDTSCP 2015-11-25 17:24:22 +01:00
trace.h KVM: x86: correctly print #AC in traces 2015-11-25 17:24:23 +01:00
tss.h
vmx.c kvm/x86: per-vcpu apicv deactivation support 2015-11-25 17:24:21 +01:00
x86.c kvm/x86: Hyper-V SynIC timers 2015-12-16 18:49:45 +01:00
x86.h x86/fpu: Rename XSAVE macros 2015-09-14 12:21:46 +02:00