This patch series adds support for the architected timer for the guest. It relies on the VGIC code to inject timer interrupts. Some of the aspects are quite ugly, like the offloading of the host interrupt handler to KVM, and the host switch from virtual to physical timer. If someone has a better idea, I'm all ears. It is also available as a branch there: git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git kvm-arm-timer-3.4-rc7 Marc Zyngier (10): ARM: arch_timers: enable the use of the virtual timer ARM: arch_timers: register a time/cycle counter ARM: arch_timers: give the virtual timer its own interrupt handler ARM: arch_timers: dynamic switch to physical timer and virtual timer offloading ARM: KVM: Allow the host to use the physical timer from PL1 ARM: KVM: VGIC: Implement kvm_vgic_get_current_vcpu() ARM: KVM: arch_timers: Add minimal infrastructure ARM: KVM: arch_timers: Add guest timer core support ARM: KVM: arch_timers: Add timer world switch ARM: KVM: arch_timers: Wire the init code and config option arch/arm/include/asm/arch_timer.h | 14 ++ arch/arm/include/asm/kvm_arch_timer.h | 59 ++++++ arch/arm/include/asm/kvm_host.h | 5 + arch/arm/include/asm/kvm_vgic.h | 6 + arch/arm/kernel/arch_timer.c | 330 +++++++++++++++++++++++++++------ arch/arm/kernel/asm-offsets.c | 8 + arch/arm/kvm/Kconfig | 7 + arch/arm/kvm/Makefile | 1 + arch/arm/kvm/arm.c | 13 ++ arch/arm/kvm/init.S | 5 + arch/arm/kvm/interrupts.S | 66 +++++++- arch/arm/kvm/timer.c | 158 ++++++++++++++++ arch/arm/kvm/vgic.c | 9 + 13 files changed, 620 insertions(+), 61 deletions(-) create mode 100644 arch/arm/include/asm/kvm_arch_timer.h create mode 100644 arch/arm/kvm/timer.c -- 1.7.7.1