From: Christoffer Dall <christoffer.dall@linaro.org> To: kvmarm@lists.cs.columbia.edu, linux-arm-kernel@lists.infradead.org Cc: Marc Zyngier <marc.zyngier@arm.com>, Andre Przywara <andre.przywara@arm.com>, kvm@vger.kernel.org Subject: [PATCH v8 0/9] Handle forwarded level-triggered interrupts Date: Wed, 13 Dec 2017 11:45:53 +0100 [thread overview] Message-ID: <20171213104602.16383-1-christoffer.dall@linaro.org> (raw) This series is an alternative approach to Eric Auger's direct EOI setup patches [1] in terms of the KVM VGIC support. The idea is to maintain existing semantics for the VGIC for mapped level-triggered IRQs and also support the timer using mapped IRQs with the same VGIC support as VFIO interrupts. Based on v4.15-rc1. Also available at: git://git.kernel.org/pub/scm/linux/kernel/git/cdall/linux.git level-mapped-v8 Changes since v7: - Cleanup stale commentary - Updated documentation (patch 9/9 is new in this version) - Added Eric's reviewed-by tags Changes since v6: - Removed double semi-colon - Changed another confusing conditional in patch 6 - Fixed typos in commit message and comments Changes since v5: - Rebased on v4.15-rc1 - Changed comment on preemption code as suggested by Andre - Fixed white space and confusing conditionals as suggested by Drew Changes since v4: - Rebased on the timer optimization series merged in the v4.15 merge window, which caused a fair amount of modifications to patch 3. - Added a static key to disable the sync operations when no VMs are using userspace irqchips to further optimize the performance - Fixed extra semicolon in vgic-mmio.c - Added commentary as requested during review - Dropped what was patch 4, because it was merged as part of GICv4 support. - Factored out the VGIC input level function change as separate patch (helps bisect and debugging), before providing a function for the timer. Changes since v3: - Added a number of patches and moved patches around a bit. - Check for uaccesses in the mmio handler functions - Fixed bugs in the mmio handler functions Changes since v2: - Removed patch 5 from v2 and integrating the changes in what's now patch 5 to make it easier to reuse code when adding VFIO integration. - Changed the virtual distributor MMIO handling to use the pending_latch and more closely match the semantics of SPENDR and CPENDR for both level and edge mapped interrupts. Changes since v1: - Added necessary changes to the timer (Patch 1) - Added handling of guest MMIO accesses to the virtual distributor (Patch 4) - Addressed Marc's comments from the initial RFC (mostly renames) Thanks, -Christoffer [1]: https://lists.cs.columbia.edu/pipermail/kvmarm/2017-June/026072.html Christoffer Dall (9): KVM: arm/arm64: Remove redundant preemptible checks KVM: arm/arm64: Factor out functionality to get vgic mmio requester_vcpu KVM: arm/arm64: Don't cache the timer IRQ level KVM: arm/arm64: vgic: Support level-triggered mapped interrupts KVM: arm/arm64: Support a vgic interrupt line level sample function KVM: arm/arm64: Support VGIC dist pend/active changes for mapped IRQs KVM: arm/arm64: Provide a get_input_level for the arch timer KVM: arm/arm64: Avoid work when userspace iqchips are not used KVM: arm/arm64: Update timer and forwarded irq documentation Documentation/virtual/kvm/arm/vgic-mapped-irqs.txt | 50 +++++---- include/kvm/arm_arch_timer.h | 2 + include/kvm/arm_vgic.h | 13 ++- virt/kvm/arm/arch_timer.c | 112 ++++++++++---------- virt/kvm/arm/arm.c | 2 - virt/kvm/arm/vgic/vgic-mmio.c | 115 +++++++++++++++++---- virt/kvm/arm/vgic/vgic-v2.c | 29 ++++++ virt/kvm/arm/vgic/vgic-v3.c | 29 ++++++ virt/kvm/arm/vgic/vgic.c | 41 +++++++- virt/kvm/arm/vgic/vgic.h | 8 ++ 10 files changed, 292 insertions(+), 109 deletions(-) -- 2.14.2
WARNING: multiple messages have this Message-ID (diff)
From: christoffer.dall@linaro.org (Christoffer Dall) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH v8 0/9] Handle forwarded level-triggered interrupts Date: Wed, 13 Dec 2017 11:45:53 +0100 [thread overview] Message-ID: <20171213104602.16383-1-christoffer.dall@linaro.org> (raw) This series is an alternative approach to Eric Auger's direct EOI setup patches [1] in terms of the KVM VGIC support. The idea is to maintain existing semantics for the VGIC for mapped level-triggered IRQs and also support the timer using mapped IRQs with the same VGIC support as VFIO interrupts. Based on v4.15-rc1. Also available at: git://git.kernel.org/pub/scm/linux/kernel/git/cdall/linux.git level-mapped-v8 Changes since v7: - Cleanup stale commentary - Updated documentation (patch 9/9 is new in this version) - Added Eric's reviewed-by tags Changes since v6: - Removed double semi-colon - Changed another confusing conditional in patch 6 - Fixed typos in commit message and comments Changes since v5: - Rebased on v4.15-rc1 - Changed comment on preemption code as suggested by Andre - Fixed white space and confusing conditionals as suggested by Drew Changes since v4: - Rebased on the timer optimization series merged in the v4.15 merge window, which caused a fair amount of modifications to patch 3. - Added a static key to disable the sync operations when no VMs are using userspace irqchips to further optimize the performance - Fixed extra semicolon in vgic-mmio.c - Added commentary as requested during review - Dropped what was patch 4, because it was merged as part of GICv4 support. - Factored out the VGIC input level function change as separate patch (helps bisect and debugging), before providing a function for the timer. Changes since v3: - Added a number of patches and moved patches around a bit. - Check for uaccesses in the mmio handler functions - Fixed bugs in the mmio handler functions Changes since v2: - Removed patch 5 from v2 and integrating the changes in what's now patch 5 to make it easier to reuse code when adding VFIO integration. - Changed the virtual distributor MMIO handling to use the pending_latch and more closely match the semantics of SPENDR and CPENDR for both level and edge mapped interrupts. Changes since v1: - Added necessary changes to the timer (Patch 1) - Added handling of guest MMIO accesses to the virtual distributor (Patch 4) - Addressed Marc's comments from the initial RFC (mostly renames) Thanks, -Christoffer [1]: https://lists.cs.columbia.edu/pipermail/kvmarm/2017-June/026072.html Christoffer Dall (9): KVM: arm/arm64: Remove redundant preemptible checks KVM: arm/arm64: Factor out functionality to get vgic mmio requester_vcpu KVM: arm/arm64: Don't cache the timer IRQ level KVM: arm/arm64: vgic: Support level-triggered mapped interrupts KVM: arm/arm64: Support a vgic interrupt line level sample function KVM: arm/arm64: Support VGIC dist pend/active changes for mapped IRQs KVM: arm/arm64: Provide a get_input_level for the arch timer KVM: arm/arm64: Avoid work when userspace iqchips are not used KVM: arm/arm64: Update timer and forwarded irq documentation Documentation/virtual/kvm/arm/vgic-mapped-irqs.txt | 50 +++++---- include/kvm/arm_arch_timer.h | 2 + include/kvm/arm_vgic.h | 13 ++- virt/kvm/arm/arch_timer.c | 112 ++++++++++---------- virt/kvm/arm/arm.c | 2 - virt/kvm/arm/vgic/vgic-mmio.c | 115 +++++++++++++++++---- virt/kvm/arm/vgic/vgic-v2.c | 29 ++++++ virt/kvm/arm/vgic/vgic-v3.c | 29 ++++++ virt/kvm/arm/vgic/vgic.c | 41 +++++++- virt/kvm/arm/vgic/vgic.h | 8 ++ 10 files changed, 292 insertions(+), 109 deletions(-) -- 2.14.2
next reply other threads:[~2017-12-13 10:45 UTC|newest] Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-12-13 10:45 Christoffer Dall [this message] 2017-12-13 10:45 ` [PATCH v8 0/9] Handle forwarded level-triggered interrupts Christoffer Dall 2017-12-13 10:45 ` [PATCH v8 1/9] KVM: arm/arm64: Remove redundant preemptible checks Christoffer Dall 2017-12-13 10:45 ` Christoffer Dall 2017-12-13 10:45 ` [PATCH v8 2/9] KVM: arm/arm64: Factor out functionality to get vgic mmio requester_vcpu Christoffer Dall 2017-12-13 10:45 ` Christoffer Dall 2017-12-13 10:45 ` [PATCH v8 3/9] KVM: arm/arm64: Don't cache the timer IRQ level Christoffer Dall 2017-12-13 10:45 ` Christoffer Dall 2017-12-13 19:38 ` Marc Zyngier 2017-12-13 19:38 ` Marc Zyngier 2017-12-19 14:17 ` Julien Thierry 2017-12-19 14:17 ` Julien Thierry 2017-12-19 20:35 ` Christoffer Dall 2017-12-19 20:35 ` Christoffer Dall 2017-12-13 10:45 ` [PATCH v8 4/9] KVM: arm/arm64: vgic: Support level-triggered mapped interrupts Christoffer Dall 2017-12-13 10:45 ` Christoffer Dall 2017-12-13 10:45 ` [PATCH v8 5/9] KVM: arm/arm64: Support a vgic interrupt line level sample function Christoffer Dall 2017-12-13 10:45 ` Christoffer Dall 2017-12-13 10:45 ` [PATCH v8 6/9] KVM: arm/arm64: Support VGIC dist pend/active changes for mapped IRQs Christoffer Dall 2017-12-13 10:45 ` Christoffer Dall 2017-12-13 10:46 ` [PATCH v8 7/9] KVM: arm/arm64: Provide a get_input_level for the arch timer Christoffer Dall 2017-12-13 10:46 ` Christoffer Dall 2017-12-13 19:45 ` Marc Zyngier 2017-12-13 19:45 ` Marc Zyngier 2017-12-13 10:46 ` [PATCH v8 8/9] KVM: arm/arm64: Avoid work when userspace iqchips are not used Christoffer Dall 2017-12-13 10:46 ` Christoffer Dall 2017-12-13 20:05 ` Marc Zyngier 2017-12-13 20:05 ` Marc Zyngier 2017-12-19 13:34 ` Christoffer Dall 2017-12-19 13:34 ` Christoffer Dall 2017-12-19 13:55 ` Marc Zyngier 2017-12-19 13:55 ` Marc Zyngier 2017-12-19 14:18 ` Christoffer Dall 2017-12-19 14:18 ` Christoffer Dall 2017-12-19 14:32 ` Marc Zyngier 2017-12-19 14:32 ` Marc Zyngier 2017-12-13 10:46 ` [PATCH v8 9/9] KVM: arm/arm64: Update timer and forwarded irq documentation Christoffer Dall 2017-12-13 10:46 ` Christoffer Dall 2017-12-13 20:15 ` Marc Zyngier 2017-12-13 20:15 ` Marc Zyngier 2017-12-19 20:29 ` Christoffer Dall 2017-12-19 20:29 ` Christoffer Dall 2017-12-19 20:35 ` Marc Zyngier 2017-12-19 20:35 ` Marc Zyngier
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20171213104602.16383-1-christoffer.dall@linaro.org \ --to=christoffer.dall@linaro.org \ --cc=andre.przywara@arm.com \ --cc=kvm@vger.kernel.org \ --cc=kvmarm@lists.cs.columbia.edu \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=marc.zyngier@arm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.