Hi, this series updates kvmtool to support some new KVM kernel features related to the virtual GIC. The first half of the series is mostly from Marc and has been lingering around for some while, the second part is a slightly revised and updated version of the virtual GICv3 support series.
We now use the KVM_CREATE_DEVICE interface to create a virtual GIC and only fall back to the now legacy KVM_CREATE_IRQCHIP call if the former is not supported by the kernel. Also we use two new features the KVM_CREATE_DEVICE interface introduces: * We now set the number of actually used interrupts to avoid allocating too many of them without ever using them. * We tell the kernel explicitly that we are finished with the GIC initialisation. This is a requirement for future VGIC versions. The final five patches introduce virtual GICv3 support, so on supported hardware (and given kernel support) the user can ask KVM to emulate a GICv3, lifting the 8 VCPU limit of KVM. This is done by specifying "--gicv3" on the command line. As the kernel currently only supports this on ARM64, this parameter is valid for the arm64 kvmtool build. But as the GIC is shared in kvmtool, I had to add 9/11 to not break the build on ARM. This series goes on top of the latest kvmtool version from Pekka's github repo, which has seen a merge of the Linux 3.18 kernel base just recently (master branch): https://github.com/penberg/linux-kvm.git For your convenience this series is also available in the kvmtool-gicv3 branch of: git://linux-arm.org/linux-ap.git http://linux-arm.org/linux-ap.git Cheers, Andre. Andre Przywara (7): kvmtool: add new VGIC_GRP definition (pulled from 3.19-rc1) kvmtool: finish VGIC initialisation explicitly kvmtool: prepare for instantiating different IRQ chip devices kvmtool: public header definitions from GICv3 emulation patch series kvmtool: add required GICv3 defines also to ARM kvmtool: add support for supplying GICv3 redistributor addresses kvmtool: add command line parameter to instantiate a vGICv3 Marc Zyngier (4): kvmtool: AArch64: Reserve two 64k pages for GIC CPU interface kvmtool: AArch{32,64}: use KVM_CREATE_DEVICE & co to instanciate the GIC kvmtool: irq: add irq__get_nr_allocated_lines kvmtool: AArch{32,64}: dynamically configure the number of GIC interrupts arch/arm64/include/uapi/asm/kvm.h | 7 + include/uapi/linux/kvm.h | 2 + tools/kvm/arm/aarch32/arm-cpu.c | 2 +- tools/kvm/arm/aarch32/include/kvm/kvm-arch.h | 8 + tools/kvm/arm/aarch64/arm-cpu.c | 5 +- tools/kvm/arm/aarch64/include/kvm/kvm-arch.h | 2 +- .../kvm/arm/aarch64/include/kvm/kvm-config-arch.h | 4 +- tools/kvm/arm/gic.c | 178 ++++++++++++++++++-- tools/kvm/arm/include/arm-common/gic.h | 9 +- tools/kvm/arm/include/arm-common/kvm-arch.h | 18 +- tools/kvm/arm/include/arm-common/kvm-config-arch.h | 1 + tools/kvm/arm/kvm-cpu.c | 4 +- tools/kvm/arm/kvm.c | 7 +- tools/kvm/include/kvm/irq.h | 1 + tools/kvm/irq.c | 5 + 15 files changed, 228 insertions(+), 25 deletions(-) -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html