[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC 0/6] KVM/ARM: Dynamic and larger GPA size
From: |
Eric Auger |
Subject: |
[Qemu-devel] [RFC 0/6] KVM/ARM: Dynamic and larger GPA size |
Date: |
Wed, 20 Jun 2018 15:07:27 +0200 |
At the moment the guest physical address space is limited to 40b
due to KVM limitations. [1] bumps this limitation and allows to
create a VM with up to 52b GPA address space.
With this series, QEMU creates a virt VM with the max IPA range
reported by the host kernel or 40b by default.
This choice can be overriden by using the -machine kvm-type=<bits>
option with bits within [40, 52]. If <bits> are not supported by
the host, the legacy 40b value is used.
It is an RFC as [1] is not upstream. This is not material for
QEMU 3.0 due to the kernel dependency. Also the EDK2 FW has a
fixed limit at 40b PA. Note at the moment there is no device or
RAM laid out after 1TB (40b) in virt machine model address space.
This will be addressed in a separate series.
Best Regards
Eric
kernel dependency:
[1] [PATCH v2 00/17] kvm: arm64: Dynamic & 52bit IPA support
https://lkml.org/lkml/2018/3/27/437
For testing, use my kernel branch:
https://github.com/eauger/linux/tree/4.16.0-rc3-Suzuki-52b-IPA-v2
This QEMU series can be found at:
https://github.com/eauger/qemu/tree/v2.12.0-ipa-rfc
Tests:
- On Cavium Gigabyte, a 48b VM was created.
- Migration tests were performed between kernel supporting the
feature and destination kernel not suporting it
Eric Auger (6):
linux-headers: Partial update for KVM/ARM
KVM_ARM_GET_MAX_VM_PHYS_SHIFT
hw/boards: Add a MachineState parameter to kvm_type callback
kvm: add kvm_get_max_vm_phys_shift
hw/arm/virt: Add virt-3.0 machine type
hw/arm/virt: support kvm_type property
hw/arm/virt: handle max_vm_phys_shift conflicts on migration
accel/kvm/kvm-all.c | 9 +++-
accel/stubs/kvm-stub.c | 5 +++
hw/arm/virt.c | 102 +++++++++++++++++++++++++++++++++++++++---
hw/ppc/mac_newworld.c | 2 +-
hw/ppc/mac_oldworld.c | 2 +-
hw/ppc/spapr.c | 2 +-
include/hw/arm/virt.h | 3 ++
include/hw/boards.h | 2 +-
include/sysemu/kvm.h | 1 +
linux-headers/asm-arm/kvm.h | 15 -------
linux-headers/asm-arm64/kvm.h | 6 ---
linux-headers/linux/kvm.h | 6 +++
12 files changed, 124 insertions(+), 31 deletions(-)
--
2.5.5
- [Qemu-devel] [RFC 0/6] KVM/ARM: Dynamic and larger GPA size,
Eric Auger <=
- [Qemu-devel] [RFC 1/6] linux-headers: Partial update for KVM/ARM KVM_ARM_GET_MAX_VM_PHYS_SHIFT, Eric Auger, 2018/06/20
- [Qemu-devel] [RFC 3/6] kvm: add kvm_get_max_vm_phys_shift, Eric Auger, 2018/06/20
- [Qemu-devel] [RFC 2/6] hw/boards: Add a MachineState parameter to kvm_type callback, Eric Auger, 2018/06/20
- [Qemu-devel] [RFC 4/6] hw/arm/virt: Add virt-3.0 machine type, Eric Auger, 2018/06/20
- [Qemu-devel] [RFC 6/6] hw/arm/virt: handle max_vm_phys_shift conflicts on migration, Eric Auger, 2018/06/20
- [Qemu-devel] [RFC 5/6] hw/arm/virt: support kvm_type property, Eric Auger, 2018/06/20