qemu-e2k/docs
Gavin Shan f40408a9fe 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>
2022-12-15 11:18:19 +00:00
..
_templates
about watchdog: remove -watchdog option 2022-09-29 11:40:28 +02:00
config
devel qapi: Start to elide redundant has_FOO in generated C 2022-12-13 18:31:37 +01:00
interop docs: add firmware feature flags 2022-10-12 11:02:44 +02:00
specs pci-ids: drop list of modern virtio devices 2022-10-12 12:01:11 +02:00
sphinx docs/sphinx: fix compatibility with sphinx < 1.8 2022-01-05 11:10:13 +01:00
sphinx-static docs/sphinx: add 's' keyboard binding to focus search 2021-11-08 12:27:23 +04:00
spin
system hw/arm/virt: Add 'compact-highmem' property 2022-12-15 11:18:19 +00:00
tools Fix some typos in documentation and comments 2022-11-05 20:35:45 +01:00
user linux-user: Remove the deprecated ppc64abi32 target 2022-02-09 13:29:38 +00:00
block-replication.txt docs/block-replication.txt: Fix replication top-id command demo 2021-12-17 11:35:00 +01:00
bypass-iommu.txt
COLO-FT.txt docs: Use double quotes instead of single quotes for COLO 2021-11-22 15:02:38 +01:00
colo-proxy.txt
conf.py sphinx: change default language to 'en' 2022-06-27 10:39:03 +01:00
defs.rst.inc
igd-assign.txt
image-fuzzer.txt docs: Render binary names as monospaced text 2021-11-22 15:02:38 +01:00
index.rst
memory-hotplug.txt
meson.build meson, configure: move --with-pkgversion, CONFIG_STAMP to meson 2022-05-07 07:46:58 +02:00
multi-thread-compression.txt
multiseat.txt docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
nvdimm.txt
pci_expander_bridge.txt
pcie_pci_bridge.txt
pcie_sriov.txt docs: Replace Qemu -> QEMU 2022-04-26 12:38:44 +02:00
pcie.txt
pvrdma.txt
qcow2-cache.txt
qdev-device-use.txt
qemu-option-trace.rst.inc
qemupciserial.inf
rdma.txt
spice-port-fqdn.txt
throttle.txt docs: Drop deprecated 'props' from object-add 2021-11-22 15:02:38 +01:00
u2f.txt docs: Spell QEMU all caps 2021-11-19 10:16:58 +01:00
xbzrle.txt
xen-save-devices-state.txt