Here's a new version of the extended I/O accounting patches. This one is rebased on top of the current master, has a few minor documentation fixes and drops the 'supports_stats' field completely.
Regards, Berto v3: - Rebased on top of the current master and on Max's BlockBackend series v7 - patch 4: minor documentation fixes - patch 5: s/miliseconds/nanoseconds/ - patch 6: dropped, there's no "supports_stats" anymore - patch 7 (now 6): explain why block_acct_invalid() does not update total_time_ns[] - patch 12 (now 11): don't initialize BlockAcctCookie to { 0 }, it's not needed v2: https://lists.gnu.org/archive/html/qemu-block/2015-10/msg00161.html - First complete implementation of the new statistics v1: https://lists.gnu.org/archive/html/qemu-devel/2015-06/msg03321.html - Initial series containing only the timed average infrastructure. Alberto Garcia (21): xen_disk: Account for flush operations ide: Account for write operations correctly block: define 'clock_type' for the accounting code util: Infrastructure for computing recent averages block: Add idle_time_ns to BlockDeviceStats block: Add statistics for failed and invalid I/O operations block: Allow configuring whether to account failed and invalid ops block: Compute minimum, maximum and average I/O latencies block: Add average I/O queue depth to BlockDeviceTimedStats block: New option to define the intervals for collecting I/O statistics qemu-io: Account for failed, invalid and flush operations block: Use QEMU_CLOCK_VIRTUAL for the accounting code in qtest mode iotests: Add test for the block device statistics nvme: Account for failed and invalid operations virtio-blk: Account for failed and invalid operations xen_disk: Account for failed and invalid operations atapi: Account for failed and invalid operations ide: Account for failed and invalid operations macio: Account for failed operations scsi-disk: Account for failed operations block: Update copyright of the accounting code block/accounting.c | 123 ++++++++++++++- block/block-backend.c | 1 + block/qapi.c | 51 +++++++ blockdev.c | 53 +++++++ hmp.c | 4 +- hw/block/nvme.c | 11 +- hw/block/virtio-blk.c | 4 +- hw/block/xen_disk.c | 27 +++- hw/ide/atapi.c | 31 ++-- hw/ide/core.c | 12 +- hw/ide/macio.c | 12 +- hw/scsi/scsi-disk.c | 46 ++++-- include/block/accounting.h | 28 ++++ include/qemu/timed-average.h | 64 ++++++++ qapi/block-core.json | 103 ++++++++++++- qemu-io-cmds.c | 9 ++ qmp-commands.hx | 80 +++++++++- tests/Makefile | 4 + tests/qemu-iotests/136 | 349 +++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/136.out | 5 + tests/qemu-iotests/group | 1 + tests/test-timed-average.c | 90 +++++++++++ util/Makefile.objs | 1 + util/timed-average.c | 227 ++++++++++++++++++++++++++++ 24 files changed, 1288 insertions(+), 48 deletions(-) create mode 100644 include/qemu/timed-average.h create mode 100644 tests/qemu-iotests/136 create mode 100644 tests/qemu-iotests/136.out create mode 100644 tests/test-timed-average.c create mode 100644 util/timed-average.c -- 2.6.1