On 07/15/2013 04:55 AM, Peter Lieven wrote:
this patch adds an efficient encoding for zero blocks by
adding a new flag indiciating a block is completly zero.
s/indiciating/indicating/
s/completly/completely/
additionally bdrv_write_zeros() is used at the destination
to efficiently write these zeroes.
v2->v3:
patch revision history belongs outside of the commit message proper...
- changed type of flags in blk_send() from int to uint64_t
- added migration capability setting to enable sending
of zero blocks.
Signed-off-by: Peter Lieven <address@hidden>
---
...here, after the --- separator.
block-migration.c | 29 +++++++++++++++++++++++------
include/migration/migration.h | 1 +
migration.c | 9 +++++++++
qapi-schema.json | 7 ++++++-
4 files changed, 39 insertions(+), 7 deletions(-)
+++ b/qapi-schema.json
@@ -613,10 +613,15 @@
# Disabled by default. Experimental: may (or may not) be renamed
after
# further testing is complete. (since 1.6)
#
+# @zero-blocks: During storage migration encode blocks of zeroes efficiently.
This
+# essentially saves 1MB of zeroes per block on the wire. Enabling
requires
+# source and target VM to support this feature. Disabled by default.
(since 1.6)
Does this capability have to be explicitly set on the receiving end, or
can it be automatic? I'd prefer automatic - where only the sending end
has to explicitly turn on the optimization.