summary refs log tree commit diff stats
path: root/qmp-commands.hx
diff options
context:
space:
mode:
authorAnthony Liguori <aliguori@us.ibm.com>2013-01-28 14:46:45 -0600
committerAnthony Liguori <aliguori@us.ibm.com>2013-01-28 14:46:45 -0600
commit503cb22e055dcf477f9147fa1a3b8ae17c86c9b0 (patch)
tree8f3a92ac9041eaf4180da135280daa266955cad8 /qmp-commands.hx
parent6cebf7afac9287f7bcaeb0d8fd64fd7b75e3fa2c (diff)
parent67bec53d9f2ccd3aa7d37a7e0689122587929220 (diff)
downloadfocaccia-qemu-503cb22e055dcf477f9147fa1a3b8ae17c86c9b0.tar.gz
focaccia-qemu-503cb22e055dcf477f9147fa1a3b8ae17c86c9b0.zip
Merge remote-tracking branch 'kwolf/for-anthony' into staging
# By Paolo Bonzini (14) and others
# Via Kevin Wolf
* kwolf/for-anthony: (24 commits)
  ide: Add fall through annotations
  block: Create proper size file for disk mirror
  ahci: Add migration support
  ahci: Change data types in preparation for migration
  ahci: Remove unused AHCIDevice fields
  hbitmap: add assertion on hbitmap_iter_init
  mirror: do nothing on zero-sized disk
  block/vdi: Check for bad signature
  block/vdi: Improved return values from vdi_open
  block/vdi: Improve debug output for signature
  block: Use error code EMEDIUMTYPE for wrong format in some block drivers
  block: Add special error code for wrong format
  mirror: support arbitrarily-sized iterations
  mirror: support more than one in-flight AIO operation
  mirror: add buf-size argument to drive-mirror
  mirror: switch mirror_iteration to AIO
  mirror: allow customizing the granularity
  block: allow customizing the granularity of the dirty bitmap
  block: return count of dirty sectors, not chunks
  mirror: perform COW if the cluster size is bigger than the granularity
  ...
Diffstat (limited to 'qmp-commands.hx')
-rw-r--r--qmp-commands.hx10
1 files changed, 9 insertions, 1 deletions
diff --git a/qmp-commands.hx b/qmp-commands.hx
index f0f7d2b395..f58a8411ea 100644
--- a/qmp-commands.hx
+++ b/qmp-commands.hx
@@ -1004,7 +1004,8 @@ EQMP
     {
         .name       = "drive-mirror",
         .args_type  = "sync:s,device:B,target:s,speed:i?,mode:s?,format:s?,"
-                      "on-source-error:s?,on-target-error:s?",
+                      "on-source-error:s?,on-target-error:s?,"
+                      "granularity:i?,buf-size:i?",
         .mhandler.cmd_new = qmp_marshal_input_drive_mirror,
     },
 
@@ -1028,6 +1029,9 @@ Arguments:
   file/device (NewImageMode, optional, default 'absolute-paths')
 - "speed": maximum speed of the streaming job, in bytes per second
   (json-int)
+- "granularity": granularity of the dirty bitmap, in bytes (json-int, optional)
+- "buf_size": maximum amount of data in flight from source to target, in bytes
+  (json-int, default 10M)
 - "sync": what parts of the disk image should be copied to the destination;
   possibilities include "full" for all the disk, "top" for only the sectors
   allocated in the topmost image, or "none" to only replicate new I/O
@@ -1037,6 +1041,10 @@ Arguments:
 - "on-target-error": the action to take on an error on the target
   (BlockdevOnError, default 'report')
 
+The default value of the granularity is the image cluster size clamped
+between 4096 and 65536, if the image format defines one.  If the format
+does not define a cluster size, the default value of the granularity
+is 65536.
 
 
 Example: