qemu-e2k/hw/core
Stefan Hajnoczi cf03a152c5 qdev: add IOThreadVirtQueueMappingList property type
virtio-blk and virtio-scsi devices will need a way to specify the
mapping between IOThreads and virtqueues. At the moment all virtqueues
are assigned to a single IOThread or the main loop. This single thread
can be a CPU bottleneck, so it is necessary to allow finer-grained
assignment to spread the load.

Introduce DEFINE_PROP_IOTHREAD_VQ_MAPPING_LIST() so devices can take a
parameter that maps virtqueues to IOThreads. The command-line syntax for
this new property is as follows:

  --device '{"driver":"foo","iothread-vq-mapping":[{"iothread":"iothread0","vqs":[0,1,2]},...]}'

IOThreads are specified by name and virtqueues are specified by 0-based
index.

It will be common to simply assign virtqueues round-robin across a set
of IOThreads. A convenient syntax that does not require specifying
individual virtqueue indices is available:

  --device '{"driver":"foo","iothread-vq-mapping":[{"iothread":"iothread0"},{"iothread":"iothread1"},...]}'

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-ID: <20231220134755.814917-4-stefanha@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2023-12-21 22:49:28 +01:00
..
bus.c
clock-vmstate.c
clock.c
cpu-common.c cpu: Call plugin hooks only when ready 2023-11-08 15:15:23 +00:00
cpu-sysemu.c memory: follow Error API guidelines 2023-10-19 23:13:27 +02:00
fw-path-provider.c
generic-loader.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
gpio.c
guest-loader.c
guest-loader.h
hotplug-stubs.c
hotplug.c
irq.c
Kconfig
loader-fit.c
loader.c hw/core: skip loading debug on all failures 2023-11-23 14:10:06 +00:00
machine-hmp-cmds.c qapi: Add query-memory-devices support to hv-balloon 2023-11-06 14:08:10 +01:00
machine-qmp-cmds.c hw/core: Move machine-qmp-cmds.c into the target independent source set 2023-05-16 09:14:18 +02:00
machine-smp.c CPU topology: extend with s390 specifics 2023-10-20 07:16:53 +02:00
machine.c hw: Add compat machines for 9.0 2023-12-20 10:29:23 +01:00
meson.build meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
nmi.c
null-machine.c
numa.c numa: Check for qemu_strtosz_MiB error 2023-06-02 12:29:27 -05:00
or-irq.c
platform-bus.c
ptimer.c
qdev-clock.c
qdev-fw.c
qdev-hotplug.c
qdev-prop-internal.h
qdev-properties-system.c qdev: add IOThreadVirtQueueMappingList property type 2023-12-21 22:49:28 +01:00
qdev-properties.c qdev-properties: alias all object class properties 2023-12-21 22:49:28 +01:00
qdev.c
register.c
reset.c
resettable.c
split-irq.c
stream.c
sysbus-fdt.c
sysbus.c
trace-events trace-events: remove the remaining vcpu trace events 2023-06-01 11:05:05 -04:00
trace.h
uboot_image.h
vm-change-state-handler.c qdev: Add qdev_add_vm_change_state_handler_full() 2023-09-11 08:34:05 +02:00
vmstate-if.c