On 12/05/2017 04:41 AM, Stefan Hajnoczi wrote: > Currently there is no easy way for iotests to ensure that a BDS is bound > to a particular IOThread. Normally the virtio-blk device calls > blk_set_aio_context() when dataplane is enabled during guest driver > initialization. This never happens in iotests since -machine > accel=qtest means there is no guest activity (including device driver > initialization). > > This patch adds a QMP command to explicitly assign IOThreads in test > cases. See qapi/block-core.json for a description of the command. > > Signed-off-by: Stefan Hajnoczi <[email protected]> > ---
> +##
> +# @x-blockdev-set-iothread:
> +#
> +# Move @node and its children into the @iothread. If @iothread is empty then
> +# move @node and its children into the main loop.
> +#
> +# The node must not be attached to a BlockBackend.
> +#
> +# @node-name: the name of the block driver node
> +#
> +# @iothread: the name of the IOThread object
> +#
> +# 2. Move a node into the main loop
> +# -> { "execute": "x-blockdev-set-iothread",
> +# "arguments": { "node-name": "disk1",
> +# "iothread": "" } }
Eww. Special casing of the empty string. Would it be better design to
have iothread be optional, and to omit it to move a node into the main
loop? Or use the StrOrNull type to allow JSON null instead of "" to
mean the main loop?
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3266
Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature
