0df9142d27
Introduce cpu properties to give fine control over SVE vector lengths. We introduce a property for each valid length up to the current maximum supported, which is 2048-bits. The properties are named, e.g. sve128, sve256, sve384, sve512, ..., where the number is the number of bits. See the updates to docs/arm-cpu-features.rst for a description of the semantics and for example uses. Note, as sve-max-vq is still present and we'd like to be able to support qmp_query_cpu_model_expansion with guests launched with e.g. -cpu max,sve-max-vq=8 on their command lines, then we do allow sve-max-vq and sve<N> properties to be provided at the same time, but this is not recommended, and is why sve-max-vq is not mentioned in the document. If sve-max-vq is provided then it enables all lengths smaller than and including the max and disables all lengths larger. It also has the side-effect that no larger lengths may be enabled and that the max itself cannot be disabled. Smaller non-power-of-two lengths may, however, be disabled, e.g. -cpu max,sve-max-vq=4,sve384=off provides a guest the vector lengths 128, 256, and 512 bits. This patch has been co-authored with Richard Henderson, who reworked the target/arm/cpu64.c changes in order to push all the validation and auto-enabling/disabling steps into the finalizer, resulting in a nice LOC reduction. Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Eric Auger <eric.auger@redhat.com> Tested-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com> Reviewed-by: Beata Michalska <beata.michalska@linaro.org> Message-id: 20191031142734.8590-5-drjones@redhat.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org> |
||
---|---|---|
.. | ||
config | ||
devel | ||
interop | ||
specs | ||
sphinx | ||
spin | ||
amd-memory-encryption.txt | ||
arm-cpu-features.rst | ||
barrier.txt | ||
block-replication.txt | ||
bootindex.txt | ||
can.txt | ||
ccid.txt | ||
COLO-FT.txt | ||
colo-proxy.txt | ||
conf.py | ||
cpu-hotplug.rst | ||
generic-loader.txt | ||
hyperv.txt | ||
igd-assign.txt | ||
image-fuzzer.txt | ||
index.rst | ||
memory-hotplug.txt | ||
microvm.rst | ||
multi-thread-compression.txt | ||
multiseat.txt | ||
nvdimm.txt | ||
pci_expander_bridge.txt | ||
pcie_pci_bridge.txt | ||
pcie.txt | ||
pr-manager.rst | ||
pvrdma.txt | ||
qcow2-cache.txt | ||
qdev-device-use.txt | ||
qemu_logo.pdf | ||
qemu-block-drivers.texi | ||
qemu-cpu-models.texi | ||
qemupciserial.inf | ||
rdma.txt | ||
replay.txt | ||
security.texi | ||
spice-port-fqdn.txt | ||
throttle.txt | ||
usb2.txt | ||
usb-storage.txt | ||
vfio-ap.txt | ||
virtio-balloon-stats.txt | ||
virtio-net-failover.rst | ||
virtio-pmem.rst | ||
xbzrle.txt | ||
xen-save-devices-state.txt |