mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 17:53:56 -06:00
blockdev: add x-blockdev-set-iothread testing command
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 <stefanha@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 20171206144550.22295-9-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
fbcc6923b0
commit
ca00bbb153
2 changed files with 77 additions and 0 deletions
|
@ -3949,3 +3949,39 @@
|
|||
'data' : { 'parent': 'str',
|
||||
'*child': 'str',
|
||||
'*node': 'str' } }
|
||||
|
||||
##
|
||||
# @x-blockdev-set-iothread:
|
||||
#
|
||||
# Move @node and its children into the @iothread. If @iothread is null 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 or null for the main loop
|
||||
#
|
||||
# Note: this command is experimental and intended for test cases that need
|
||||
# control over IOThreads only.
|
||||
#
|
||||
# Since: 2.12
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# 1. Move a node into an IOThread
|
||||
# -> { "execute": "x-blockdev-set-iothread",
|
||||
# "arguments": { "node-name": "disk1",
|
||||
# "iothread": "iothread0" } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
# 2. Move a node into the main loop
|
||||
# -> { "execute": "x-blockdev-set-iothread",
|
||||
# "arguments": { "node-name": "disk1",
|
||||
# "iothread": null } }
|
||||
# <- { "return": {} }
|
||||
#
|
||||
##
|
||||
{ 'command': 'x-blockdev-set-iothread',
|
||||
'data' : { 'node-name': 'str',
|
||||
'iothread': 'StrOrNull' } }
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue