qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]