[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC v3 0/5] ARM Nested Virt Support
From: |
Eric Auger |
Subject: |
[RFC v3 0/5] ARM Nested Virt Support |
Date: |
Tue, 26 Mar 2024 19:22:34 +0100 |
This series adds ARM Nested Virtualization support in KVM mode.
This is a respin of previous contributions from Miguel [1] and Haibo [2].
This was tested with Marc's v11 [3] on Ampere HW with fedora L1 guest and
L2 guests booted without EDK2. However it does not work yet with
EDK2 but it looks unrelated to this qemu integration (host hard lockups).
The host needs to be booted with "kvm-arm.mode=nested" option and
qemu needs to be invoked with :
-machine virt,virtualization=on
Known issues:
- Does not work on hosts supporting both SVE and NV2. KVM does not
support both SVE and NV2 and the current qemu integration attempts to
creates a scracth VM with both if those are exposed by the host.
- L2 guest featuring EDK2 does not work. This produces hard lockups on host
- Migration does not work. After ages one gets on the destination side:
qemu-system-aarch64: error while loading state for instance 0x0 of device 'cpu'
qemu-system-aarch64: Failed to put registers after init: Invalid argument
This series can be found at:
https://github.com/eauger/qemu/tree/v9.0-nv-rfcv3
Previous version from Miguel:
[1] https://lore.kernel.org/all/20230227163718.62003-1-miguel.luis@oracle.com/
Previous version from Haibo:
[2] https://lore.kernel.org/qemu-devel/cover.1617281290.git.haibo.xu@linaro.org/
[3] Based on Marc's kvm-arm64/nv-6.9-sr-enforcement branch
[PATCH v11 00/43] KVM: arm64: Nested Virtualization support (FEAT_NV2 only)
https://lore.kernel.org/linux-arm-kernel/20231120131027.854038-1-maz@kernel.org/T/
available at:
https://github.com/eauger/linux/tree/v6.8-rc1-nv2-sr-enforcement
---
v2 -> v3:
- KVM EL2 only is set if virtualization option is set
- fixes regression with virtualization=off
- Add checks against unsupported GIC configs until the kernel does
Haibo Xu (5):
[Placeholder] headers: Partial headers update for NV2 enablement
hw/arm: Allow 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
hw/arm/virt: Allow virt extensions with KVM
hw/arm/virt.c | 13 ++++++++++++-
hw/intc/arm_gicv3_common.c | 1 +
hw/intc/arm_gicv3_kvm.c | 21 +++++++++++++++++++++
include/hw/intc/arm_gicv3_common.h | 1 +
linux-headers/asm-arm64/kvm.h | 1 +
linux-headers/linux/kvm.h | 1 +
target/arm/kvm.c | 21 +++++++++++++++++++++
target/arm/kvm_arm.h | 12 ++++++++++++
8 files changed, 70 insertions(+), 1 deletion(-)
--
2.41.0
- [RFC v3 0/5] ARM Nested Virt Support,
Eric Auger <=
- [RFC v3 1/5] [Placeholder] headers: Partial headers update for NV2 enablement, Eric Auger, 2024/03/26
- [RFC v3 3/5] target/arm/kvm: Add helper to detect EL2 when using KVM, Eric Auger, 2024/03/26
- [RFC v3 2/5] hw/arm: Allow setting KVM vGIC maintenance IRQ, Eric Auger, 2024/03/26
- [RFC v3 4/5] target/arm: Enable feature ARM_FEATURE_EL2 if EL2 is supported, Eric Auger, 2024/03/26
- [RFC v3 5/5] hw/arm/virt: Allow virt extensions with KVM, Eric Auger, 2024/03/26