aboutsummaryrefslogtreecommitdiff
path: root/qapi/block-core.json
diff options
context:
space:
mode:
authorMarkus Armbruster <armbru@redhat.com>2021-10-28 12:25:13 +0200
committerMarkus Armbruster <armbru@redhat.com>2021-10-29 15:55:52 +0200
commit9fb49daabfb0052f05981e5a484cd0d3bf283fc6 (patch)
tree6ca985d6dedba2aa20688af81afd16b8d40f9ff5 /qapi/block-core.json
parenta3c45b3e62962f99338716b1347cfb0d427cea44 (diff)
qapi: Mark unstable QMP parts with feature 'unstable'
Add special feature 'unstable' everywhere the name starts with 'x-', except for InputBarrierProperties member x-origin and MemoryBackendProperties member x-use-canonical-path-for-ramblock-id, because these two are actually stable. Signed-off-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Acked-by: John Snow <jsnow@redhat.com> Message-Id: <20211028102520.747396-3-armbru@redhat.com>
Diffstat (limited to 'qapi/block-core.json')
-rw-r--r--qapi/block-core.json123
1 files changed, 90 insertions, 33 deletions
diff --git a/qapi/block-core.json b/qapi/block-core.json
index 6d3217abb6..ce2c1352cb 100644
--- a/qapi/block-core.json
+++ b/qapi/block-core.json
@@ -1438,6 +1438,9 @@
#
# @x-perf: Performance options. (Since 6.0)
#
+# Features:
+# @unstable: Member @x-perf is experimental.
+#
# Note: @on-source-error and @on-target-error only affect background
# I/O. If an error occurs during a guest write request, the device's
# rerror/werror actions will be used.
@@ -1452,7 +1455,9 @@
'*on-source-error': 'BlockdevOnError',
'*on-target-error': 'BlockdevOnError',
'*auto-finalize': 'bool', '*auto-dismiss': 'bool',
- '*filter-node-name': 'str', '*x-perf': 'BackupPerf' } }
+ '*filter-node-name': 'str',
+ '*x-perf': { 'type': 'BackupPerf',
+ 'features': [ 'unstable' ] } } }
##
# @DriveBackup:
@@ -1916,9 +1921,13 @@
#
# Get the block graph.
#
+# Features:
+# @unstable: This command is meant for debugging.
+#
# Since: 4.0
##
-{ 'command': 'x-debug-query-block-graph', 'returns': 'XDbgBlockGraph' }
+{ 'command': 'x-debug-query-block-graph', 'returns': 'XDbgBlockGraph',
+ 'features': [ 'unstable' ] }
##
# @drive-mirror:
@@ -2257,6 +2266,9 @@
#
# Get bitmap SHA256.
#
+# Features:
+# @unstable: This command is meant for debugging.
+#
# Returns: - BlockDirtyBitmapSha256 on success
# - If @node is not a valid block device, DeviceNotFound
# - If @name is not found or if hashing has failed, GenericError with an
@@ -2265,7 +2277,8 @@
# Since: 2.10
##
{ 'command': 'x-debug-block-dirty-bitmap-sha256',
- 'data': 'BlockDirtyBitmap', 'returns': 'BlockDirtyBitmapSha256' }
+ 'data': 'BlockDirtyBitmap', 'returns': 'BlockDirtyBitmapSha256',
+ 'features': [ 'unstable' ] }
##
# @blockdev-mirror:
@@ -2495,27 +2508,57 @@
#
# Properties for throttle-group objects.
#
-# The options starting with x- are aliases for the same key without x- in
-# the @limits object. As indicated by the x- prefix, this is not a stable
-# interface and may be removed or changed incompatibly in the future. Use
-# @limits for a supported stable interface.
-#
# @limits: limits to apply for this throttle group
#
+# Features:
+# @unstable: All members starting with x- are aliases for the same key
+# without x- in the @limits object. This is not a stable
+# interface and may be removed or changed incompatibly in
+# the future. Use @limits for a supported stable
+# interface.
+#
# Since: 2.11
##
{ 'struct': 'ThrottleGroupProperties',
'data': { '*limits': 'ThrottleLimits',
- '*x-iops-total' : 'int', '*x-iops-total-max' : 'int',
- '*x-iops-total-max-length' : 'int', '*x-iops-read' : 'int',
- '*x-iops-read-max' : 'int', '*x-iops-read-max-length' : 'int',
- '*x-iops-write' : 'int', '*x-iops-write-max' : 'int',
- '*x-iops-write-max-length' : 'int', '*x-bps-total' : 'int',
- '*x-bps-total-max' : 'int', '*x-bps-total-max-length' : 'int',
- '*x-bps-read' : 'int', '*x-bps-read-max' : 'int',
- '*x-bps-read-max-length' : 'int', '*x-bps-write' : 'int',
- '*x-bps-write-max' : 'int', '*x-bps-write-max-length' : 'int',
- '*x-iops-size' : 'int' } }
+ '*x-iops-total': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-total-max': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-total-max-length': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-read': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-read-max': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-read-max-length': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-write': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-write-max': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-write-max-length': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-total': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-total-max': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-total-max-length': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-read': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-read-max': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-read-max-length': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-write': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-write-max': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-bps-write-max-length': { 'type': 'int',
+ 'features': [ 'unstable' ] },
+ '*x-iops-size': { 'type': 'int',
+ 'features': [ 'unstable' ] } } }
##
# @block-stream:
@@ -2916,6 +2959,7 @@
# read-only when the last writer is detached. This
# allows giving QEMU write permissions only on demand
# when an operation actually needs write access.
+# @unstable: Member x-check-cache-dropped is meant for debugging.
#
# Since: 2.9
##
@@ -2926,7 +2970,8 @@
'*aio': 'BlockdevAioOptions',
'*drop-cache': {'type': 'bool',
'if': 'CONFIG_LINUX'},
- '*x-check-cache-dropped': 'bool' },
+ '*x-check-cache-dropped': { 'type': 'bool',
+ 'features': [ 'unstable' ] } },
'features': [ { 'name': 'dynamic-auto-read-only',
'if': 'CONFIG_POSIX' } ] }
@@ -4041,13 +4086,16 @@
# future requests before a successful reconnect will
# immediately fail. Default 0 (Since 4.2)
#
+# Features:
+# @unstable: Member @x-dirty-bitmap is experimental.
+#
# Since: 2.9
##
{ 'struct': 'BlockdevOptionsNbd',
'data': { 'server': 'SocketAddress',
'*export': 'str',
'*tls-creds': 'str',
- '*x-dirty-bitmap': 'str',
+ '*x-dirty-bitmap': { 'type': 'str', 'features': [ 'unstable' ] },
'*reconnect-delay': 'uint32' } }
##
@@ -4865,13 +4913,17 @@
# and replacement of an active keyslot
# (possible loss of data if IO error happens)
#
+# Features:
+# @unstable: This command is experimental.
+#
# Since: 5.1
##
{ 'command': 'x-blockdev-amend',
'data': { 'job-id': 'str',
'node-name': 'str',
'options': 'BlockdevAmendOptions',
- '*force': 'bool' } }
+ '*force': 'bool' },
+ 'features': [ 'unstable' ] }
##
# @BlockErrorAction:
@@ -5242,16 +5294,18 @@
#
# @node: the name of the node that will be added.
#
-# Note: this command is experimental, and its API is not stable. It
-# does not support all kinds of operations, all kinds of children, nor
-# all block drivers.
+# Features:
+# @unstable: This command is experimental, and its API is not stable. It
+# does not support all kinds of operations, all kinds of
+# children, nor all block drivers.
#
-# FIXME Removing children from a quorum node means introducing gaps in the
-# child indices. This cannot be represented in the 'children' list of
-# BlockdevOptionsQuorum, as returned by .bdrv_refresh_filename().
+# FIXME Removing children from a quorum node means introducing
+# gaps in the child indices. This cannot be represented in the
+# 'children' list of BlockdevOptionsQuorum, as returned by
+# .bdrv_refresh_filename().
#
-# Warning: The data in a new quorum child MUST be consistent with that of
-# the rest of the array.
+# Warning: The data in a new quorum child MUST be consistent
+# with that of the rest of the array.
#
# Since: 2.7
#
@@ -5280,7 +5334,8 @@
{ 'command': 'x-blockdev-change',
'data' : { 'parent': 'str',
'*child': 'str',
- '*node': 'str' } }
+ '*node': 'str' },
+ 'features': [ 'unstable' ] }
##
# @x-blockdev-set-iothread:
@@ -5297,8 +5352,9 @@
# @force: true if the node and its children should be moved when a BlockBackend
# is already attached
#
-# Note: this command is experimental and intended for test cases that need
-# control over IOThreads only.
+# Features:
+# @unstable: This command is experimental and intended for test cases that
+# need control over IOThreads only.
#
# Since: 2.12
#
@@ -5320,7 +5376,8 @@
{ 'command': 'x-blockdev-set-iothread',
'data' : { 'node-name': 'str',
'iothread': 'StrOrNull',
- '*force': 'bool' } }
+ '*force': 'bool' },
+ 'features': [ 'unstable' ] }
##
# @QuorumOpType: