xemu/qapi
Philippe Mathieu-Daudé f25e7ab2b0 block/nvme: Add driver statistics for access alignment and hw errors
Keep statistics of some hardware errors, and number of
aligned/unaligned I/O accesses.

QMP example booting a full RHEL 8.3 aarch64 guest:

{ "execute": "query-blockstats" }
{
    "return": [
        {
            "device": "",
            "node-name": "drive0",
            "stats": {
                "flush_total_time_ns": 6026948,
                "wr_highest_offset": 3383991230464,
                "wr_total_time_ns": 807450995,
                "failed_wr_operations": 0,
                "failed_rd_operations": 0,
                "wr_merged": 3,
                "wr_bytes": 50133504,
                "failed_unmap_operations": 0,
                "failed_flush_operations": 0,
                "account_invalid": false,
                "rd_total_time_ns": 1846979900,
                "flush_operations": 130,
                "wr_operations": 659,
                "rd_merged": 1192,
                "rd_bytes": 218244096,
                "account_failed": false,
                "idle_time_ns": 2678641497,
                "rd_operations": 7406,
            },
            "driver-specific": {
                "driver": "nvme",
                "completion-errors": 0,
                "unaligned-accesses": 2959,
                "aligned-accesses": 4477
            },
            "qdev": "/machine/peripheral-anon/device[0]/virtio-backend"
        }
    ]
}

Suggested-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Acked-by: Markus Armbruster <armbru@redhat.com>
Message-id: 20201001162939.1567915-1-philmd@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2020-10-23 13:42:16 +01:00
..
acpi.json qapi: Extract ACPI commands to 'acpi.json' 2020-09-29 15:41:36 +02:00
audio.json qapi: Fix indentation, again 2020-09-07 17:13:19 +02:00
authz.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
block-core.json block/nvme: Add driver statistics for access alignment and hw errors 2020-10-23 13:42:16 +01:00
block-export.json nbd: Deprecate nbd-server-add/remove 2020-10-02 15:46:40 +02:00
block.json qapi/block.json: Add newline after "Example:" for block-latency-histogram-set 2020-09-29 17:55:39 +02:00
char.json qapi: Document event VSERPORT_CHANGE is rate-limited 2020-09-03 09:58:26 +02:00
common.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
control.json qapi: Fix indentation, again 2020-09-07 17:13:19 +02:00
crypto.json qapi/: fix some comment spelling errors 2020-09-17 20:41:08 +02:00
dump.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
error.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
introspect.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
job.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
machine-target.json cpu: Introduce CPU model deprecation API 2020-10-14 15:28:54 -04:00
machine.json qapi: Restrict 'query-kvm' command to machine code 2020-10-21 05:00:44 +02:00
meson.build qapi: introduce replay.json for record/replay-related stuff 2020-10-06 08:34:49 +02:00
migration.json qapi: Restrict Xen migration commands to migration.json 2020-10-21 05:00:44 +02:00
misc-target.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
misc.json qapi: Restrict Xen migration commands to migration.json 2020-10-21 05:00:44 +02:00
net.json qapi: Fix indentation, again 2020-09-07 17:13:19 +02:00
opts-visitor.c qapi: Make visitor functions taking Error ** return bool, not void 2020-07-10 15:18:08 +02:00
pci.json qapi: Extract PCI commands to 'pci.json' 2020-09-29 15:41:36 +02:00
pragma.json qapi: Create 'pragma' module 2020-03-06 17:21:28 +01:00
qapi-clone-visitor.c qapi: Make visitor functions taking Error ** return bool, not void 2020-07-10 15:18:08 +02:00
qapi-dealloc-visitor.c qapi: Make visitor functions taking Error ** return bool, not void 2020-07-10 15:18:08 +02:00
qapi-schema.json qapi: introduce replay.json for record/replay-related stuff 2020-10-06 08:34:49 +02:00
qapi-util.c qemu-common: Move qemu_isalnum() etc. to qemu/ctype.h 2019-06-11 20:22:09 +02:00
qapi-visit-core.c qapi: Purge error_propagate() from QAPI core 2020-07-10 15:18:08 +02:00
qdev.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
qmp-dispatch.c qmp: Move dispatcher to a coroutine 2020-10-09 07:08:20 +02:00
qmp-event.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
qmp-registry.c qmp: Move dispatcher to a coroutine 2020-10-09 07:08:20 +02:00
qobject-input-visitor.c keyval: Parse help options 2020-10-15 16:06:27 +02:00
qobject-output-visitor.c qapi: Make visitor functions taking Error ** return bool, not void 2020-07-10 15:18:08 +02:00
qom.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
rdma.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
replay.json replay: implement replay-seek command 2020-10-06 08:34:49 +02:00
rocker.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
run-state.json qapi/run-state.json: introduce memory failure event 2020-10-04 18:36:23 +02:00
sockets.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
string-input-visitor.c error: Eliminate error_propagate() with Coccinelle, part 1 2020-07-10 15:18:08 +02:00
string-output-visitor.c qapi: Make visitor functions taking Error ** return bool, not void 2020-07-10 15:18:08 +02:00
tpm.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
trace-events trace-events: Shorten file names in comments 2019-03-22 16:18:07 +00:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
trace.json qapi: Add blank lines before bulleted lists 2020-02-15 11:41:50 +01:00
transaction.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00
ui.json schemas: Add vim modeline 2020-08-03 08:28:08 +02:00