aboutsummaryrefslogtreecommitdiff
path: root/docs/system/arm
diff options
context:
space:
mode:
authorGavin Shan <gshan@redhat.com>2022-12-14 14:27:06 +0000
committerPeter Maydell <peter.maydell@linaro.org>2022-12-15 11:18:19 +0000
commitf40408a9fe5d1db70a75a33d2b26c8af8a5d57b0 (patch)
tree80db51f1149dfddc8dc848e5586cb298955fad2a /docs/system/arm
parent4a4ff9edc6a8fdc76082af5b41b059217138c09b (diff)
downloadqemu-f40408a9fe5d1db70a75a33d2b26c8af8a5d57b0.zip
qemu-f40408a9fe5d1db70a75a33d2b26c8af8a5d57b0.tar.gz
qemu-f40408a9fe5d1db70a75a33d2b26c8af8a5d57b0.tar.bz2
hw/arm/virt: Add 'compact-highmem' property
After the improvement to high memory region address assignment is applied, the memory layout can be changed, introducing possible migration breakage. For example, VIRT_HIGH_PCIE_MMIO memory region is disabled or enabled when the optimization is applied or not, with the following configuration. The configuration is only achievable by modifying the source code until more properties are added to allow users selectively disable those high memory regions. pa_bits = 40; vms->highmem_redists = false; vms->highmem_ecam = false; vms->highmem_mmio = true; # qemu-system-aarch64 -accel kvm -cpu host \ -machine virt-7.2,compact-highmem={on, off} \ -m 4G,maxmem=511G -monitor stdio Region compact-highmem=off compact-highmem=on ---------------------------------------------------------------- MEM [1GB 512GB] [1GB 512GB] HIGH_GIC_REDISTS2 [512GB 512GB+64MB] [disabled] HIGH_PCIE_ECAM [512GB+256MB 512GB+512MB] [disabled] HIGH_PCIE_MMIO [disabled] [512GB 1TB] In order to keep backwords compatibility, we need to disable the optimization on machine, which is virt-7.1 or ealier than it. It means the optimization is enabled by default from virt-7.2. Besides, 'compact-highmem' property is added so that the optimization can be explicitly enabled or disabled on all machine types by users. Signed-off-by: Gavin Shan <gshan@redhat.com> Reviewed-by: Eric Auger <eric.auger@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Marc Zyngier <maz@kernel.org> Tested-by: Zhenyu Zhang <zhenyzha@redhat.com> Message-id: 20221029224307.138822-7-gshan@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'docs/system/arm')
-rw-r--r--docs/system/arm/virt.rst4
1 files changed, 4 insertions, 0 deletions
diff --git a/docs/system/arm/virt.rst b/docs/system/arm/virt.rst
index 20442ea..4454706 100644
--- a/docs/system/arm/virt.rst
+++ b/docs/system/arm/virt.rst
@@ -94,6 +94,10 @@ highmem
address space above 32 bits. The default is ``on`` for machine types
later than ``virt-2.12``.
+compact-highmem
+ Set ``on``/``off`` to enable/disable the compact layout for high memory regions.
+ The default is ``on`` for machine types later than ``virt-7.2``.
+
gic-version
Specify the version of the Generic Interrupt Controller (GIC) to provide.
Valid values are: