Hi, This patch set contains a fully working implementation of the in-kernel MPIC from Scott with a few fixups and a new version of my irqfd generalization patch set. v1 -> v2: - depend on CONFIG_ defines rather than __KVM defines - fix compile issues - fix the kvm_irqchip{,s} typo v2 -> v3: - make mpic pointer type safe - add wmb before setting global mpic variable - make eoi notification happen unlockedly - add IRQ routing documentation - announce mpic availability after its creation - fix pr_debug again I have refrained from touching IA64 at all in this patch set. It's marked as BROKEN, I doubt it even compiles at all today. The only sensible thing to do would be to remove all of IA64 kvm code from the kernel tree, but that is out of scope for this patch set and definitely should not gate it. Alex Alexander Graf (11): KVM: Add KVM_IRQCHIP_NUM_PINS in addition to KVM_IOAPIC_NUM_PINS KVM: Introduce CONFIG_HAVE_KVM_IRQ_ROUTING KVM: Drop __KVM_HAVE_IOAPIC condition on irq routing KVM: Remove kvm_get_intr_delivery_bitmask KVM: Move irq routing to generic code KVM: Extract generic irqchip logic into irqchip.c KVM: Move irq routing setup to irqchip.c KVM: Move irqfd resample cap handling to generic code KVM: PPC: Support irq routing and irqfd for in-kernel MPIC KVM: PPC: MPIC: Add support for KVM_IRQ_LINE KVM: PPC: MPIC: Restrict to e500 platforms Scott Wood (6): kvm: add device control API kvm/ppc/mpic: import hw/openpic.c from QEMU kvm/ppc/mpic: remove some obviously unneeded code kvm/ppc/mpic: adapt to kernel style and environment kvm/ppc/mpic: in-kernel MPIC emulation kvm/ppc/mpic: add KVM_CAP_IRQ_MPIC Documentation/virtual/kvm/api.txt | 78 ++ Documentation/virtual/kvm/devices/README | 1 + Documentation/virtual/kvm/devices/mpic.txt | 48 + arch/powerpc/include/asm/kvm_host.h | 24 +- arch/powerpc/include/asm/kvm_ppc.h | 30 + arch/powerpc/include/uapi/asm/kvm.h | 9 + arch/powerpc/kvm/Kconfig | 12 + arch/powerpc/kvm/Makefile | 3 + arch/powerpc/kvm/booke.c | 12 +- arch/powerpc/kvm/irq.h | 17 + arch/powerpc/kvm/mpic.c | 1876 ++++++++++++++++++++++++++++ arch/powerpc/kvm/powerpc.c | 55 +- arch/x86/include/asm/kvm_host.h | 2 + arch/x86/kvm/Kconfig | 1 + arch/x86/kvm/Makefile | 2 +- arch/x86/kvm/x86.c | 1 - include/linux/kvm_host.h | 53 +- include/trace/events/kvm.h | 12 +- include/uapi/linux/kvm.h | 33 +- virt/kvm/Kconfig | 3 + virt/kvm/assigned-dev.c | 30 - virt/kvm/eventfd.c | 6 +- virt/kvm/irq_comm.c | 194 +--- virt/kvm/irqchip.c | 237 ++++ virt/kvm/kvm_main.c | 170 +++- 25 files changed, 2659 insertions(+), 250 deletions(-) create mode 100644 Documentation/virtual/kvm/devices/README create mode 100644 Documentation/virtual/kvm/devices/mpic.txt create mode 100644 arch/powerpc/kvm/irq.h create mode 100644 arch/powerpc/kvm/mpic.c create mode 100644 virt/kvm/irqchip.c -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html