This patch series implements in-kernel emulation of the XICS interrupt controller architecture defined in PAPR (Power Architecture Platform Requirements, the document that defines IBM's pSeries platform architecture). One of the things I have done in this version is to provide a way for this to coexist with other interrupt controller emulations. The XICS emulation exports a vector of function pointers that the generic book3s code uses to call in to it. Other emulations could set this vector to point to their own functions. (I realize that Scott Wood's recently-posted patch series uses an entirely orthogonal approach and may or may not find this useful.) The interface defined here consists of: * KVM_CREATE_IRQCHIP_ARGS: like KVM_CREATE_IRQCHIP but takes an argument struct containing a `type' field, specifying what overall interrupt controller architecture to emulate, and a `param' field (unused by the XICS emulation). This is only called once per VM, before VCPUs are created. * KVM_IRQCHIP_SET_SOURCES: used to create and configure interrupt sources in bulk. The notion of "interrupt source" is fairly generic; a source has an identifying number (20 bits in the current implementation), a priority, a destination (a vcpu number or potentially a vcpu group identifier), plus flags indicating edge/level sensitivity, a masked bit, and a pending bit. * KVM_IRQCHIP_GET_SOURCES: used to query the configuration and status of interrupt sources in bulk. * A 64-bit one_reg identifier, KVM_REG_PPC_ICP_STATE, used to get and set per-vcpu interrupt controller state (per-vcpu priority, interrupt status, and pending IPI and interrupt state). I believe this corresponds reasonably well to what was discussed at KVM Forum. This series is against Alex's kvm-ppc-queue branch, although it also applies cleanly on the kvm tree's next branch. Paul. -- 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