The architected timer integration with the VGIC had some shortcomings in that certain guest operations weren't fully supported. This series tries to address these problems in providing level-triggered semantics for the arch timer and VGIC integration and seeks to clarify the behavior when setting/clearing the active state on the physical distributor. It also fixes a few other bugs in the VGIC code and finally adds support for edge-triggered forwarded interrupts. The edge-triggered forwarded interrupts code is untested but probably better to clearly do something wrong and raise a warning. Changes since v2: - Various spelling and comment fixes - Clarified timer example in Documentation and fixed EOIMode=1 explanation - Added spin lock around process_queued_irq as pointed out by Andre. Changes since v1: - Sent out bug fixes for active state and UEFI reset as separate patches. - Fixed various spelling nits - Rewrote proposed documentation file trying to address Eric's and Marc's comments - Rewrote kvm_timer_update_irq and kvm_timer_update_state according to Marc's suggestion (thanks!) - Added additional patch to support edge-triggered forwarded interrupts. Christoffer Dall (8): KVM: Add kvm_arch_vcpu_{un}blocking callbacks arm/arm64: KVM: arch_timer: Only schedule soft timer on vcpu_block arm/arm64: KVM: vgic: Factor out level irq processing on guest exit arm/arm64: KVM: Implement GICD_ICFGR as RO for PPIs arm/arm64: KVM: Use appropriate define in VGIC reset code arm/arm64: KVM: Add forwarded physical interrupts documentation arm/arm64: KVM: Rework the arch timer to use level-triggered semantics arm/arm64: KVM: Support edge-triggered forwarded interrupts Documentation/virtual/kvm/arm/vgic-mapped-irqs.txt | 186 +++++++++++++++++++++ arch/arm/kvm/arm.c | 21 ++- arch/mips/include/asm/kvm_host.h | 2 + arch/powerpc/include/asm/kvm_host.h | 2 + arch/s390/include/asm/kvm_host.h | 2 + arch/x86/include/asm/kvm_host.h | 3 + include/kvm/arm_arch_timer.h | 4 +- include/kvm/arm_vgic.h | 3 - include/linux/kvm_host.h | 2 + virt/kvm/arm/arch_timer.c | 149 +++++++++++------ virt/kvm/arm/vgic.c | 172 +++++++++---------- virt/kvm/kvm_main.c | 3 + 12 files changed, 408 insertions(+), 141 deletions(-) create mode 100644 Documentation/virtual/kvm/arm/vgic-mapped-irqs.txt -- 2.1.2.330.g565301e.dirty _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm