qemu-e2k/include/qemu
Andrew Jones 0df9142d27 target/arm/cpu64: max cpu: Introduce sve<N> properties
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>
2019-11-01 20:40:59 +00:00
..
atomic128.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
atomic.h include/qemu/atomic.h: Add signal_barrier 2019-07-14 12:19:00 +02:00
base64.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
bcd.h
bitmap.h bitmap: Add bitmap_copy_with_{src|dst}_offset() 2019-07-15 15:39:02 +02:00
bitops.h target/arm/cpu64: max cpu: Introduce sve<N> properties 2019-11-01 20:40:59 +00:00
bswap.h
buffer.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
co-shared-resource.h util: introduce SharedResource 2019-10-28 11:22:31 +01:00
compiler.h include: Move endof() up from hw/virtio/virtio.h 2019-10-28 11:51:07 +01:00
config-file.h
coroutine_int.h
coroutine.h coroutine: Add qemu_co_mutex_assert_locked() 2019-10-25 15:18:38 +02:00
cpuid.h
crc32c.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
ctype.h
cutils.h cutils: Move size_to_str() from "qemu-common.h" to "qemu/cutils.h" 2019-09-19 11:57:34 +02:00
drm.h
envlist.h
error-report.h
event_notifier.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
fifo8.h Include migration/vmstate.h less 2019-08-16 13:31:52 +02:00
fifo32.h
filemonitor.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
futex.h
guest-random.h
hbitmap.h util/hbitmap: strict hbitmap_reset 2019-10-17 17:02:32 -04:00
help_option.h
host-utils.h
id.h
int128.h
iov.h block/qcow2: implement .bdrv_co_pwritev(_compressed)_part 2019-08-27 14:58:42 +01:00
iova-tree.h
jhash.h
job.h job: drop job_drain 2019-09-10 08:58:43 +02:00
lockable.h
log-for-trace.h
log.h plugin: add qemu_plugin_outs helper 2019-10-28 15:12:38 +00:00
main-loop.h
memfd.h linux-user: add memfd_create 2019-09-11 08:46:17 +02:00
mmap-alloc.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
module.h module: return success on module load 2019-08-21 16:29:57 +02:00
notify.h xen / notify: introduce a new XenWatchList abstraction 2019-09-24 12:18:47 +01:00
option_int.h
option.h
osdep.h core: replace getpagesize() with qemu_real_host_page_size 2019-10-26 15:38:06 +02:00
path.h
plugin-memory.h plugins: implement helpers for resolving hwaddr 2019-10-28 15:12:38 +00:00
plugin.h plugin: add core code 2019-10-28 15:12:38 +00:00
pmem.h
processor.h
qdist.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qemu-plugin.h plugin: add qemu_plugin_outs helper 2019-10-28 15:12:38 +00:00
qemu-print.h
qht.h
qsp.h
queue.h queue: add QTAILQ_REMOVE_SEVERAL 2019-10-28 15:12:38 +00:00
range.h Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00
ratelimit.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
rcu_queue.h
rcu.h rcu: Add automatically released rcu_read_lock variants 2019-10-11 14:19:49 +01:00
readline.h
seqlock.h
sockets.h socket: Add backlog parameter to socket_listen 2019-09-03 23:24:42 +02:00
stats64.h
sys_membarrier.h
systemd.h
thread-posix.h
thread-win32.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
thread.h qemu-thread: Add qemu_cond_timedwait 2019-09-16 17:13:06 +02:00
throttle-options.h
throttle.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
timed-average.h
timer.h util/qemu-timer: refactor deadline calculation for external timers 2019-08-20 17:26:21 +02:00
typedefs.h sysemu: Move the VMChangeStateEntry typedef to qemu/typedefs.h 2019-08-16 13:31:53 +02:00
unicode.h
units.h
uri.h
uuid.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
vfio-helpers.h
win_dump_defs.h
xattr.h
xxhash.h