[libvirt] [PATCHv4 03/15] qemu: improve efficiency of dd during snapshots

Daniel P. Berrange berrange at redhat.com
Thu Mar 10 11:59:56 UTC 2011


On Wed, Mar 09, 2011 at 06:45:43PM -0700, Eric Blake wrote:
> POSIX states about dd:
> 
> If the bs=expr operand is specified and no conversions other than
> sync, noerror, or notrunc are requested, the data returned from each
> input block shall be written as a separate output block; if the read
> returns less than a full block and the sync conversion is not
> specified, the resulting output block shall be the same size as the
> input block. If the bs=expr operand is not specified, or a conversion
> other than sync, noerror, or notrunc is requested, the input shall be
> processed and collected into full-sized output blocks until the end of
> the input is reached.
> 
> Since we aren't using conv=sync, there is no zero-padding, but our
> use of bs= means that a short read results in a short write.  If
> instead we use ibs= and obs=, then short reads are collected and dd
> only has to do a single write, which can make dd more efficient.
> 
> * src/qemu/qemu_monitor.c (qemuMonitorMigrateToFile):
> Avoid 'dd bs=', since it can cause short writes.
> ---
>  src/qemu/qemu_monitor.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)

ACK

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list