qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 0/6] KVM/ARM: Dynamic and larger GPA size
@ 2018-06-20 13:07 Eric Auger
  2018-06-20 13:07 ` [Qemu-devel] [RFC 1/6] linux-headers: Partial update for KVM/ARM KVM_ARM_GET_MAX_VM_PHYS_SHIFT Eric Auger
                   ` (5 more replies)
  0 siblings, 6 replies; 19+ messages in thread
From: Eric Auger @ 2018-06-20 13:07 UTC (permalink / raw)
  To: eric.auger.pro, eric.auger, qemu-devel, qemu-arm, peter.maydell
  Cc: dgilbert, agraf, david, drjones, wei, suzuki.poulose

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

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2018-07-10 10:07 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-20 13:07 [Qemu-devel] [RFC 0/6] KVM/ARM: Dynamic and larger GPA size Eric Auger
2018-06-20 13:07 ` [Qemu-devel] [RFC 1/6] linux-headers: Partial update for KVM/ARM KVM_ARM_GET_MAX_VM_PHYS_SHIFT Eric Auger
2018-06-20 13:07 ` [Qemu-devel] [RFC 2/6] hw/boards: Add a MachineState parameter to kvm_type callback Eric Auger
2018-06-21  0:36   ` David Gibson
2018-06-20 13:07 ` [Qemu-devel] [RFC 3/6] kvm: add kvm_get_max_vm_phys_shift Eric Auger
2018-06-21  0:37   ` David Gibson
2018-06-21 11:23     ` Auger Eric
2018-06-20 13:07 ` [Qemu-devel] [RFC 4/6] hw/arm/virt: Add virt-3.0 machine type Eric Auger
2018-06-20 13:07 ` [Qemu-devel] [RFC 5/6] hw/arm/virt: support kvm_type property Eric Auger
2018-06-20 17:15   ` Dr. David Alan Gilbert
2018-06-21 10:05     ` Auger Eric
2018-06-27 12:01       ` Dr. David Alan Gilbert
2018-07-03 11:55   ` Andrew Jones
2018-07-03 12:31     ` Auger Eric
2018-07-03 12:47       ` Andrew Jones
2018-07-03 13:20         ` Suzuki K Poulose
2018-07-09 17:26       ` Thomas Huth
2018-07-10 10:07         ` Auger Eric
2018-06-20 13:07 ` [Qemu-devel] [RFC 6/6] hw/arm/virt: handle max_vm_phys_shift conflicts on migration Eric Auger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).