[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 00/36] A peek at the current block job patches
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [RFC PATCH 00/36] A peek at the current block job patches |
Date: |
Fri, 15 Jun 2012 17:05:23 +0200 |
Hi all, this is the current state of my block job patches for 1.2.
Everything is there except multiple in-flight operations in the mirroring
job. Mirroring testcases are especially missing; mirroring error
reporting and QMP commands are tested very lightly, which is expected
to change when testcases are added.
The first 17 patches are ready for inclusion, but they depend on three
patches currently in Luiz's queue:
- kvm: add missing include files
- net: add missing include file
- qmp: do not include monitor.h from qapi-types-core.h
They also depend on the blkdebug changes that I have already posted.
Because of the web of dependencies I'm conservatively tagging everything
as RFC. Reviewed-bys are nevertheless welcome, especially on those
patches. If you want to tinker with this, everything is available at
git://github.com/bonzini/qemu.git in branch blkmirror-job-1.2.
The series includes a generalization of the dirty bitmap API to use
a trie-like hierarchical bitmap and to allow arbitrary granularity. This
is accessible through an extra argument of the QMP drive-mirror command.
Paolo Bonzini (36):
qapi: generalize documentation of streaming commands
qerror/block: introduce QERR_BLOCK_JOB_NOT_ACTIVE
block: move job APIs to separate files
block: add block_job_query
block: add support for job pause/resume
qmp: add block-job-pause and block-job-resume
qemu-iotests: add test for pausing a streaming operation
block: rename block_job_complete to block_job_completed
block: rename BlockErrorAction, BlockQMPEventAction
block: move BlockdevOnError declaration to QAPI
block: reorganize io error code
block: sort BlockDeviceIoStatus errors by severity
block: introduce block job error
stream: add on_error argument
qemu-iotests: add tests for streaming error handling
block: add bdrv_query_info
block: add bdrv_query_stats
block: make device optional in BlockInfo
block: add target info to QMP query-blockjobs command
block: forward bdrv_iostatus_reset to block job
block: introduce new dirty bitmap functionality
block: add mirror job
qmp: add drive-mirror command
mirror: support querying target file
mirror: add support for on_source_error/on_target_error
block: live snapshot documentation tweaks
block: add bdrv_ensure_backing_file
block: add block-job-complete
mirror: implement completion
add hierarchical bitmap data type and test cases
block: implement dirty bitmap using HBitmap
block: make round_to_clusters public
mirror: perform COW if the cluster size is bigger than the granularity
block: return count of dirty sectors, not chunks
block: allow customizing the granularity of the dirty bitmap
mirror: allow customizing the granularity
Makefile.objs | 5 +-
QMP/qmp-events.txt | 27 +++
block-migration.c | 8 +-
block.c | 486 ++++++++++++++++-------------------------
block.h | 37 ++--
block/Makefile.objs | 3 +-
block/mirror.c | 347 +++++++++++++++++++++++++++++
block/stream.c | 33 ++-
block_int.h | 191 +++-------------
blockdev.c | 224 ++++++++++++++++---
blockjob.c | 269 +++++++++++++++++++++++
blockjob.h | 272 +++++++++++++++++++++++
hbitmap.c | 371 +++++++++++++++++++++++++++++++
hbitmap.h | 51 +++++
hmp-commands.hx | 73 ++++++-
hmp.c | 65 +++++-
hmp.h | 4 +
hw/fdc.c | 4 +-
hw/ide/core.c | 20 +-
hw/scsi-disk.c | 23 +-
hw/scsi-generic.c | 4 +-
hw/virtio-blk.c | 19 +-
monitor.c | 1 +
monitor.h | 1 +
qapi-schema.json | 214 ++++++++++++++++--
qemu-tool.c | 6 +
qerror.c | 12 +
qerror.h | 9 +
qmp-commands.hx | 68 +++++-
tests/Makefile | 2 +
tests/qemu-iotests/030 | 166 +++++++++++++-
tests/qemu-iotests/iotests.py | 7 +
tests/test-hbitmap.c | 369 +++++++++++++++++++++++++++++++
trace-events | 14 +-
34 files changed, 2828 insertions(+), 577 deletions(-)
create mode 100644 block/mirror.c
create mode 100644 blockjob.c
create mode 100644 blockjob.h
create mode 100644 hbitmap.c
create mode 100644 hbitmap.h
create mode 100644 tests/test-hbitmap.c
--
1.7.10.2
- [Qemu-devel] [RFC PATCH 00/36] A peek at the current block job patches,
Paolo Bonzini <=
- [Qemu-devel] [RFC PATCH 01/36] qapi: generalize documentation of streaming commands, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 02/36] qerror/block: introduce QERR_BLOCK_JOB_NOT_ACTIVE, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 04/36] block: add block_job_query, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 03/36] block: move job APIs to separate files, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 06/36] qmp: add block-job-pause and block-job-resume, Paolo Bonzini, 2012/06/15
- [Qemu-devel] [RFC PATCH 05/36] block: add support for job pause/resume, Paolo Bonzini, 2012/06/15