This event is emitted when an operation completes, for which a
BLOCK_IO_DELAY event has previously been emitted.

Signed-off-by: Hanna Czenczek <[email protected]>
---
 qapi/block.json | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/qapi/block.json b/qapi/block.json
index 5f9f5c28050..38f293dd32d 100644
--- a/qapi/block.json
+++ b/qapi/block.json
@@ -660,6 +660,9 @@
 # Note that delays deliberately incurred by throttling do count
 # towards the operation duration.
 #
+# This event will only be emitted once per request and action.  When
+# the operation does finish, a `BLOCK_IO_DONE` event is emitted.
+#
 # @qom-path: path to the block device object in the QOM tree
 #
 # @operation: I/O operation
@@ -686,3 +689,33 @@
       'action': 'BlockErrorAction',
       '*offset': 'uint64',
       'bytes': 'uint64' } }
+
+##
+# @BLOCK_IO_DONE:
+#
+# Emitted on completion for disk operations that previously emitted a
+# `BLOCK_IO_DELAY` event.
+#
+# @qom-path: path to the block device object in the QOM tree
+#
+# @operation: I/O operation
+#
+# @latency-ns: Full duration of the operation (in nanoseconds)
+#
+# @offset: Request offset in the guest disk (in bytes), if available
+#
+# @bytes: Request length
+#
+# @failed: If true, this request failed for any reason.  If false, the
+#     request succeeded.
+#
+# Since: 11.2
+##
+{ 'event': 'BLOCK_IO_DONE',
+  'data': {
+      'qom-path': 'str',
+      'operation': 'IoAccountingOperation',
+      'latency-ns': 'uint64',
+      '*offset': 'uint64',
+      'bytes': 'uint64',
+      'failed': 'bool' } }
-- 
2.55.0


Reply via email to