blockdev: Mark {insert, remove}-medium experimental

While in the long term we want throttling to be its own block filter
BDS, in the short term we want it to be part of the BB instead of a BDS;
even in the long term we may want legacy throttling to be automatically
tied to the BB.

blockdev-insert-medium and blockdev-remove-medium do not retain
throttling information in the BB (deliberately so). Therefore, using
them means tying this information to a BDS, which would break the model
described above. (The same applies to other flags such as
detect_zeroes.) We probably want to move this information to the BB or
its own filter BDS before blockdev-{insert,remove}-medium can be
considered completely stable.

Therefore, mark these functions experimental for the time being.

Suggested-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Acked-by: Kevin Wolf <kwolf@redhat.com>
Message-id: 1449847385-13986-2-git-send-email-mreitz@redhat.com
Reviewed-by: Eric Blake <eblake@redhat.com>
[PMM: fixed format nit (underlining) in qmp-commands.hx]
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Max Reitz 2015-12-11 16:23:05 +01:00 committed by Peter Maydell
parent 3fd3c4b37c
commit 6e0abc251d
5 changed files with 45 additions and 33 deletions

View file

@ -4203,27 +4203,30 @@ Example:
EQMP
{
.name = "blockdev-remove-medium",
.name = "x-blockdev-remove-medium",
.args_type = "device:s",
.mhandler.cmd_new = qmp_marshal_blockdev_remove_medium,
.mhandler.cmd_new = qmp_marshal_x_blockdev_remove_medium,
},
SQMP
blockdev-remove-medium
----------------------
x-blockdev-remove-medium
------------------------
Removes a medium (a block driver state tree) from a block device. That block
device's tray must currently be open (unless there is no attached guest device).
If the tray is open and there is no medium inserted, this will be a no-op.
This command is still a work in progress and is considered experimental.
Stay away from it unless you want to help with its development.
Arguments:
- "device": block device name (json-string)
Example:
-> { "execute": "blockdev-remove-medium",
-> { "execute": "x-blockdev-remove-medium",
"arguments": { "device": "ide1-cd0" } }
<- { "error": { "class": "GenericError",
@ -4240,7 +4243,7 @@ Example:
<- { "return": {} }
-> { "execute": "blockdev-remove-medium",
-> { "execute": "x-blockdev-remove-medium",
"arguments": { "device": "ide1-cd0" } }
<- { "return": {} }
@ -4248,19 +4251,22 @@ Example:
EQMP
{
.name = "blockdev-insert-medium",
.name = "x-blockdev-insert-medium",
.args_type = "device:s,node-name:s",
.mhandler.cmd_new = qmp_marshal_blockdev_insert_medium,
.mhandler.cmd_new = qmp_marshal_x_blockdev_insert_medium,
},
SQMP
blockdev-insert-medium
----------------------
x-blockdev-insert-medium
------------------------
Inserts a medium (a block driver state tree) into a block device. That block
device's tray must currently be open (unless there is no attached guest device)
and there must be no medium inserted already.
This command is still a work in progress and is considered experimental.
Stay away from it unless you want to help with its development.
Arguments:
- "device": block device name (json-string)
@ -4276,7 +4282,7 @@ Example:
<- { "return": {} }
-> { "execute": "blockdev-insert-medium",
-> { "execute": "x-blockdev-insert-medium",
"arguments": { "device": "ide1-cd0",
"node-name": "node0" } }