On 23.10.26 08:04, Markus Armbruster wrote:
Hanna Czenczek <[email protected]> writes:

On 20.10.26 07:59, Markus Armbruster wrote:
Hanna Czenczek <[email protected]> writes:

This enum gives more information than IoOperationType (which is used for
the rerror/werror distinction) to identify operation types for block
accounting.

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

diff --git a/qapi/block.json b/qapi/block.json
index 0a88d405a26..8f4a71733c1 100644
--- a/qapi/block.json
+++ b/qapi/block.json
@@ -629,3 +629,23 @@
               'command': 'str' },
     'features': [ 'unstable' ],
     'allow-preconfig': true }
+
+##
+# @IoAccountingOperation:
+#
+# I/O operation types as they are tracked by block accounting.
Can we have a link to suitable docs on block accounting?
Which do you have in mind?
Hey, I asked first!

:)

Two ideas to find candidates:

1. How is IoAccountingOperation going to be used?

    I can see events BLOCK_IO_DELAY and BLOCK_IO_DONE.  Documentation
    there calls it "disk operation" in the event description and "I/O
    operation" in the argument description.  Not a peep about
    "accounting".  Might "tracked by block accounting" be about
    implementation?  Or asked differently: why would the user care about
    block accounting here?

Good question, the user presumably indeed won’t care. It is only going to be used for those two events, so maybe it makes most sense to merge those three patches (`IoAccountingOperation`, `BLOCK_IO_DELAY`, `BLOCK_IO_DONE`), so I can immediately refer to those events instead of accounting.

(The internal reasoning is that I don’t want this to deviate from the existing accounting too much, so that maybe the accounting code can later be switched to use the same request boundaries as this series introduces, and then switch its enum over to this QAPI variant. But absolutely not relevant to users, correct.)

2. Assuming "block accounting" is actually relevant for the user: what
    are the QMP interfaces related to it?

The best is probably the `BlockDeviceStats` keys for the different latency histograms, which could be a map of this new enum to histograms instead… But given the above, probably best to just drop this.

Hanna

Also, I’m not sure whether these are suitable, because they are the operation 
types used by block accounting, but for now, accounting cookies 
(block/accounting.c) use their own non-QAPI enum (enum BlockAcctType).
[...]


Reply via email to