This is based on Peter's target-arm.next. This is candidate for 10.1.
For gaining virt functionality in KVM accelerated L1, The host needs to
be booted with "kvm-arm.mode=nested" option and qemu needs to be invoked
with: -machine virt,virtualization=on.
This series can be found at:
https://github.com/eauger/qemu/tree/v10.0.0-nv-v7
Original version from Miguel:
[1] https://lore.kernel.org/all/20230227163718.62003-1-miguel.luis@oracle.com/
version from Haibo:
[2] https://lore.kernel.org/qemu-devel/cover.1617281290.git.haibo.xu@linaro.org/
History:
v6 -> v7:
- rebase on Peter's target-arm.next. as a result linux header update could be
dropped. Faced a small conflict in hw/arm/virt: Allow virt extensions with KVM
due to recently landed hw/arm/virt: Make EL2 accelerator check an accept-list.
I dared to keep Richard's R-b though.
v5 -> v6:
- linux header update against v6.16-rc2
v4 -> v5:
- rebase on top of v10.0.0
v3 -> v4:
- fix: only set maint_irq if vms->virt
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 (4):
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
include/hw/intc/arm_gicv3_common.h | 1 +
target/arm/kvm_arm.h | 7 +++++++
hw/arm/virt.c | 13 ++++++++++++-
hw/intc/arm_gicv3_common.c | 1 +
hw/intc/arm_gicv3_kvm.c | 21 +++++++++++++++++++++
target/arm/kvm-stub.c | 5 +++++
target/arm/kvm.c | 21 +++++++++++++++++++++
7 files changed, 68 insertions(+), 1 deletion(-)
--
2.49.0