KVM hacking on the Apple M1 SoC has shown that kvmtool (and other
VMMs) make pretty poor use of the IPA space parameter (read: do not
use it and just pass 0). This results in a guest that cannot boot
(recent kernels will just send the VMM packing), and in general means
we don't benefit from smaller page tables at stage-2.
This series does three things:
- It switches kvmtool away from the default 40bit, allowing large VMs
to be created (I have booted a 4TB VM)
- It reduces the requested IPA space to be as small as possible
- It tells the user why the VM cannot boot when the IPA space required
exceeds that of the HW
With these changes, kvmtool is able to spawn a VM on IPA-challenged
systems such the Apple M1.
* From v1:
- Use KVM_VM_TYPE_ARM_IPA_SIZE()
- Rebased on a recent HEAD
Marc Zyngier (3):
kvmtool: Abstract KVM_VM_TYPE into a weak function
kvmtool: arm64: Use the maximum supported IPA size when creating the
VM
kvmtool: arm64: Configure VM with the minimal required IPA space
arm/aarch64/include/kvm/kvm-arch.h | 19 ++++++++++++++---
arm/aarch64/kvm.c | 33 ++++++++++++++++++++++++++++++
include/kvm/kvm.h | 1 +
kvm.c | 7 ++++++-
4 files changed, 56 insertions(+), 4 deletions(-)
--
2.30.2
_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm