Am 26.09.2012 17:56, schrieb Paolo Bonzini:
> Hi all, this is the resubmission of my block job patches, originally
> meant for 1.2.  This still does not include a persistent dirty bitmap,
> which I hope to post in October.
> 
> The patches are organized as follows:
> 
> 01-13   preparatory work for block job errors, including support for
>         pausing and resuming jobs
> 
> 14-18   introduce block job errors, and add support in block-stream

Completed review of patches 1-18 now. Do you think it would make sense
to split them off and do a v3 while the review goes on for the rest of
the series? Dealing with huge series is hard for me as a reviewer, and
probably for you as an author as well.

> 19-25   preparatory work for block mirroring: new commands/concepts
>         and creating new functions out of existing code.
> 
> 26-33   introduce a simple version of mirroring.  The initial patch
>         add the mirroring logic, followed by the ability to switch to
>         the destination of migration and to handle errors during the job.
>         All these changes come with testcases.  Removing the ability to
>         query the target file is the main change from v1.

We can probably make a similar cut at patch 33 if necessary.

> 34-41   These patches introduce the first optimizations, namely supporting
>         an arbitrary granularity for the dirty bitmap.  The current default,
>         1M, is too coarse to let the job converge quickly and in almost
>         real-time.  These patches reimplement the block device dirty bitmap
>         to allow efficient iteration, and add cluster copy-on-write logic.
>         Cluster copy-on-write is needed because management will want to
>         start the copy before the backing file is in place in the destination;
>         if mirroring takes care of copy-on-write, BDRV_O_NO_BACKING can be
>         used even if the granularity is smaller than the cluster size.
> 
> 42-45   A second round optimizations, replacing serialized read-write
>         operations with multiple asynchronous I/O operations.  The various
>         in-flight operations can be of arbitrary size.  The initial copy
>         will end up reading large chunks sequentially (10M by default),
>         while subsequent passes can mimic more closely the guest's I/O
>         patterns.

Kevin

Reply via email to