[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v5 10/18] hw/arm/virt: Bump the 255GB initial RAM li
From: |
Eric Auger |
Subject: |
[Qemu-devel] [PATCH v5 10/18] hw/arm/virt: Bump the 255GB initial RAM limit |
Date: |
Wed, 23 Jan 2019 11:14:50 +0100 |
Now we have the extended memory map (high IO regions beyond the
scalable RAM) and dynamic IPA range support at KVM/ARM level
we can bump the legacy 255GB initial RAM limit. The actual maximum
RAM size now depends on the physical CPU and host kernel.
Signed-off-by: Eric Auger <address@hidden>
---
hw/arm/virt.c | 26 +++++++-------------------
1 file changed, 7 insertions(+), 19 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index a89ffbf4d7..61c3bb1cef 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -93,22 +93,9 @@
#define PLATFORM_BUS_NUM_IRQS 64
-/* RAM limit in GB. Since VIRT_MEM starts at the 1GB mark, this means
- * RAM can go up to the 256GB mark, leaving 256GB of the physical
- * address space unallocated and free for future use between 256G and 512G.
- * If we need to provide more RAM to VMs in the future then we need to:
- * * allocate a second bank of RAM starting at 2TB and working up
- * * fix the DT and ACPI table generation code in QEMU to correctly
- * report two split lumps of RAM to the guest
- * * fix KVM in the host kernel to allow guests with >40 bit address spaces
- * (We don't want to fill all the way up to 512GB with RAM because
- * we might want it for non-RAM purposes later. Conversely it seems
- * reasonable to assume that anybody configuring a VM with a quarter
- * of a terabyte of RAM will be doing it on a host with more than a
- * terabyte of physical address space.)
- */
-#define RAMLIMIT_GB 255
-#define RAMLIMIT_BYTES (RAMLIMIT_GB * 1024ULL * 1024 * 1024)
+/* Legacy RAM limit in GB (< version 4.0) */
+#define LEGACY_RAMLIMIT_GB 255
+#define LEGACY_RAMLIMIT_BYTES (LEGACY_RAMLIMIT_GB * GiB)
/* Addresses and sizes of our components.
* 0..128MB is space for a flash device so we can run bootrom code such as
UEFI.
@@ -149,7 +136,7 @@ static const MemMapEntry a15memmap[] = {
[VIRT_PCIE_MMIO] = { 0x10000000, 0x2eff0000 },
[VIRT_PCIE_PIO] = { 0x3eff0000, 0x00010000 },
[VIRT_PCIE_ECAM] = { 0x3f000000, 0x01000000 },
- [VIRT_MEM] = { 0x40000000, RAMLIMIT_BYTES },
+ [VIRT_MEM] = { 0x40000000, LEGACY_RAMLIMIT_BYTES },
};
/* Memory map beyond the RAM */
@@ -1456,8 +1443,9 @@ static void machvirt_init(MachineState *machine)
vms->smp_cpus = smp_cpus;
- if (machine->ram_size > vms->memmap[VIRT_MEM].size) {
- error_report("mach-virt: cannot model more than %dGB RAM",
RAMLIMIT_GB);
+ if (!vms->extended_memmap && machine->ram_size > LEGACY_RAMLIMIT_GB) {
+ error_report("mach-virt: cannot model more than %dGB RAM",
+ LEGACY_RAMLIMIT_GB);
exit(1);
}
--
2.20.1
- [Qemu-devel] [PATCH v5 00/18] ARM virt: Initial RAM expansion and PCDIMM/NVDIMM support, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 07/18] kvm: add kvm_arm_get_max_vm_phys_shift, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 05/18] hw/arm/virt: Move memory map initialization into machvirt_init, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 03/18] hw/arm/boot: introduce fdt_add_memory_node helper, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 06/18] hw/boards: Add a MachineState parameter to kvm_type callback, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 04/18] hw/arm/virt: Split the memory map description, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 09/18] hw/arm/virt: Implement kvm_type function for 4.0 machine, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 08/18] vl: Set machine ram_size, maxram_size and ram_slots earlier, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 12/18] hw/arm/boot: Expose the PC-DIMM nodes in the DT, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 11/18] hw/arm/virt: Add memory hotplug framework, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 10/18] hw/arm/virt: Bump the 255GB initial RAM limit,
Eric Auger <=
- [Qemu-devel] [PATCH v5 02/18] linux-headers: Update to v5.0-rc2, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 13/18] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 15/18] nvdimm: use configurable ACPI IO base and size, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 14/18] hw/arm/virt: Allocate device_memory, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 17/18] hw/arm/boot: Expose the pmem nodes in the DT, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 16/18] hw/arm/virt: Add nvdimm hot-plug infrastructure, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 18/18] hw/arm/virt: Add nvdimm and nvdimm-persistence options, Eric Auger, 2019/01/23
- [Qemu-devel] [PATCH v5 01/18] update-linux-headers.sh: Copy new headers, Eric Auger, 2019/01/23