This series adds ARMv8.3/8.4 nested virtualization support in KVM mode.
To enable nested virtualization for a guest, the host must expose EL2
support via QEMU command line switches:
-machine virt,accel=kvm,virtualization=on
Inspired on Haibo Xu's previous work [0][1], Marc Zyngier's kvmtool branch [2]
and kernel patches [3] on nested virtualization for aarch64, this has been
tested on an Ampere implementation.
This series adapts previous work on top of v7.2.0, it considers comments given
at the time and preserves authorship of the original patches.
[0]:
https://lore.kernel.org/qemu-devel/[email protected]/
[1]:
https://lore.kernel.org/qemu-devel/[email protected]/
[2]:
https://git.kernel.org/pub/scm/linux/kernel/git/maz/kvmtool.git/log/?h=arm64/nv-5.16
[3]:
https://lore.kernel.org/linux-arm-kernel/[email protected]/
Miguel Luis (5):
linux-headers: [kvm,arm64] add the necessary definitions to match host
kernel
hw/intc/gicv3: add support for setting KVM vGIC maintenance IRQ
target/arm/kvm: add helper to detect EL2 when using KVM
target/arm: enable feature ARM_FEATURE_EL2 if EL2 is supported
arm/virt: provide virtualization extensions to the guest
hw/arm/virt.c | 8 +++++++-
hw/intc/arm_gicv3_common.c | 1 +
hw/intc/arm_gicv3_kvm.c | 25 +++++++++++++++++++++++++
include/hw/intc/arm_gicv3_common.h | 1 +
linux-headers/asm-arm64/kvm.h | 2 ++
linux-headers/linux/kvm.h | 1 +
target/arm/cpu.h | 2 +-
target/arm/kvm64.c | 21 +++++++++++++++++++++
target/arm/kvm_arm.h | 12 ++++++++++++
9 files changed, 71 insertions(+), 2 deletions(-)
--
2.39.2