[PATCH v4 0/3] KVM: s390: Improve floating IRQ injection behavior
Janosch Frank <[email protected]>
| Newsgroups | org.kernel.vger.linux-s390,org.kernel.vger.kvm |
|---|---|
| Message-ID | <[email protected]> |
Multiple fixes for the floating IRQ handling triggered by the firq kvm-unit-test sometimes failing for pv vms. Only waking up cpus which are enabled, re-kicking after the instruction notification for pv cpus and a general redistribution of IRQs on entry (pending guidance from performance measurements). The floating part of floating IRQs can make it difficult to make absolutely sure that an IRQ is actually delivered, especially if the OS doesn't regularly have the masks open. We might miss mask enablements if the intervention bits don't get set properly and the kicks might end up nowhere. v4: - Replaced pv check with mask check which does not need locks - Fixed bitnum to bitmask translations that Sashiko rightfully complained about v3: - Separated code into two patches - Added a patch that fixes service injections for PV vms - Added IRQ filtering and kick all if no cpu is enabled - Fixed the IO pend type translation v2: - Rebase onto master - Added IRQ type check before delivering Janosch Frank (3): KVM: s390: Improve floating IRQ injection behavior KVM: s390: Kick PV cpus at the right time for service irqs KVM: s390: Add opportunistic floating IRQ injection arch/s390/include/asm/kvm_host.h | 1 + arch/s390/kvm/intercept.c | 9 ++ arch/s390/kvm/interrupt.c | 153 ++++++++++++++++++++++++++----- arch/s390/kvm/kvm-s390.c | 3 + arch/s390/kvm/kvm-s390.h | 2 + 5 files changed, 147 insertions(+), 21 deletions(-) -- 2.53.0