v2: * Rebase onto Kevin's block pull request The following changes since commit c400bddb916268394e352f82809eb4728424a5b1:
Merge remote-tracking branch 'mreitz/tags/pull-block-for-kevin-2015-11-10' into queue-block (2015-11-10 14:59:26 +0100) are available in the git repository at: git://github.com/stefanha/qemu.git tags/block-pull-request for you to fetch changes up to 7651e1c68acdaf60954668540c9df778397631d6: block: Update copyright of the accounting code (2015-11-10 14:48:26 +0000) ---------------------------------------------------------------- ---------------------------------------------------------------- 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 Fam Zheng (15): block: Add more types for tracked request block: Track flush requests block: Track discard requests iscsi: Emulate commands in iscsi_aio_ioctl as iscsi_ioctl block: Add ioctl parameter fields to BlockRequest block: Emulate bdrv_ioctl with bdrv_aio_ioctl and track both block: Drop BlockDriver.bdrv_ioctl block: Introduce BlockDriver.bdrv_drain callback qed: Implement .bdrv_drain backup: Extract dirty bitmap handling as a separate function blockjob: Introduce reference count and fix reference to job->bs blockjob: Add .commit and .abort block job actions blockjob: Add "completed" and "ret" in BlockJob blockjob: Simplify block_job_finish_sync block: Add block job transactions John Snow (6): iotests: add transactional incremental backup test block: rename BlkTransactionState and BdrvActionOps block/backup: Rely on commit/abort for cleanup block: Add BlockJobTxn support to backup_run block: add transactional properties iotests: 124 - transactional failure test Stefan Hajnoczi (1): tests: add BlockJobTxn unit test block.c | 19 ++++++- block/accounting.c | 123 ++++++++++++++++++++++++++++++++++++++++++-- block/backup.c | 50 +++++++++++++----- block/block-backend.c | 1 + block/io.c | 150 ++++++++++++++++++++++++++++++++++++++++++++++-------- block/iscsi.c | 73 ++++++++++++++------------- block/mirror.c | 2 +- block/qapi.c | 51 +++++++++++++++++++ block/qed.c | 13 +++++ block/raw-posix.c | 8 --- block/raw_bsd.c | 6 --- blockdev.c | 485 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------- blockjob.c | 189 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ docs/bitmaps.md | 6 +-- 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/block/block.h | 18 +++++-- include/block/block_int.h | 23 +++++++-- include/block/blockjob.h | 85 +++++++++++++++++++++++++++++-- include/qemu/timed-average.h | 64 +++++++++++++++++++++++ qapi-schema.json | 56 ++++++++++++++++++-- qapi/block-core.json | 103 ++++++++++++++++++++++++++++++++++++- qemu-img.c | 3 -- qemu-io-cmds.c | 9 ++++ qmp-commands.hx | 82 +++++++++++++++++++++++++++--- tests/Makefile | 7 +++ tests/qemu-iotests/124 | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- tests/qemu-iotests/124.out | 4 +- tests/qemu-iotests/136 | 349 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/136.out | 5 ++ tests/qemu-iotests/group | 1 + tests/test-blockjob-txn.c | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/test-timed-average.c | 90 +++++++++++++++++++++++++++++++++ util/Makefile.objs | 1 + util/timed-average.c | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 42 files changed, 2618 insertions(+), 296 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-blockjob-txn.c create mode 100644 tests/test-timed-average.c create mode 100644 util/timed-average.c