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 kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/mailman/listinfo/kvmarm