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

Reply via email to