mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-04 08:13:54 -06:00
Merge remote-tracking branch 'quintela/migration.next' into staging
# By Peter Lieven (9) and others # Via Juan Quintela * quintela/migration.next: (22 commits) Use qemu_put_buffer_async for guest memory pages Add qemu_put_buffer_async Use writev ops if available Store the data to send also in iovec Update bytes_xfer in qemu_put_byte Add socket_writev_buffer function Add QemuFileWritevBuffer QemuFileOps migration: use XBZRLE only after bulk stage migration: do not search dirty pages in bulk stage migration: do not sent zero pages in bulk stage migration: add an indicator for bulk state of ram migration migration: search for zero instead of dup pages bitops: unroll while loop in find_next_bit() buffer_is_zero: use vector optimizations if possible cutils: add a function to find non-zero content in a buffer move vector definitions to qemu-common.h savevm: Fix bugs in the VMSTATE_VBUFFER_MULTIPLY definition savevm: Add VMSTATE_STRUCT_VARRAY_POINTER_UINT32 savevm: Add VMSTATE_FLOAT64 helpers savevm: Add VMSTATE_UINTTL_EQUAL helper ...
This commit is contained in:
commit
18501ae6e8
13 changed files with 375 additions and 87 deletions
|
@ -666,7 +666,7 @@ EQMP
|
|||
|
||||
SQMP
|
||||
migrate-set-cache-size
|
||||
---------------------
|
||||
----------------------
|
||||
|
||||
Set cache size to be used by XBZRLE migration, the cache size will be rounded
|
||||
down to the nearest power of 2
|
||||
|
@ -689,7 +689,7 @@ EQMP
|
|||
|
||||
SQMP
|
||||
query-migrate-cache-size
|
||||
---------------------
|
||||
------------------------
|
||||
|
||||
Show cache size to be used by XBZRLE migration
|
||||
|
||||
|
@ -2453,32 +2453,43 @@ The main json-object contains the following:
|
|||
- Possible values: "active", "completed", "failed", "cancelled"
|
||||
- "total-time": total amount of ms since migration started. If
|
||||
migration has ended, it returns the total migration
|
||||
time (json-int)
|
||||
time (json-int)
|
||||
- "downtime": only present when migration has finished correctly
|
||||
total amount in ms for downtime that happened (json-int)
|
||||
- "expected-downtime": only present while migration is active
|
||||
total amount in ms for downtime that was calculated on
|
||||
the last bitmap round (json-int)
|
||||
the last bitmap round (json-int)
|
||||
- "ram": only present if "status" is "active", it is a json-object with the
|
||||
following RAM information (in bytes):
|
||||
- "transferred": amount transferred (json-int)
|
||||
- "remaining": amount remaining (json-int)
|
||||
- "total": total (json-int)
|
||||
- "duplicate": number of duplicated pages (json-int)
|
||||
- "normal" : number of normal pages transferred (json-int)
|
||||
- "normal-bytes" : number of normal bytes transferred (json-int)
|
||||
following RAM information:
|
||||
- "transferred": amount transferred in bytes (json-int)
|
||||
- "remaining": amount remaining to transfer in bytes (json-int)
|
||||
- "total": total amount of memory in bytes (json-int)
|
||||
- "duplicate": number of pages filled entirely with the same
|
||||
byte (json-int)
|
||||
These are sent over the wire much more efficiently.
|
||||
- "skipped": number of skipped zero pages (json-int)
|
||||
- "normal" : number of whole pages transfered. I.e. they
|
||||
were not sent as duplicate or xbzrle pages (json-int)
|
||||
- "normal-bytes" : number of bytes transferred in whole
|
||||
pages. This is just normal pages times size of one page,
|
||||
but this way upper levels don't need to care about page
|
||||
size (json-int)
|
||||
- "disk": only present if "status" is "active" and it is a block migration,
|
||||
it is a json-object with the following disk information (in bytes):
|
||||
- "transferred": amount transferred (json-int)
|
||||
- "remaining": amount remaining (json-int)
|
||||
- "total": total (json-int)
|
||||
it is a json-object with the following disk information:
|
||||
- "transferred": amount transferred in bytes (json-int)
|
||||
- "remaining": amount remaining to transfer in bytes json-int)
|
||||
- "total": total disk size in bytes (json-int)
|
||||
- "xbzrle-cache": only present if XBZRLE is active.
|
||||
It is a json-object with the following XBZRLE information:
|
||||
- "cache-size": XBZRLE cache size
|
||||
- "bytes": total XBZRLE bytes transferred
|
||||
- "cache-size": XBZRLE cache size in bytes
|
||||
- "bytes": number of bytes transferred for XBZRLE compressed pages
|
||||
- "pages": number of XBZRLE compressed pages
|
||||
- "cache-miss": number of cache misses
|
||||
- "overflow": number of XBZRLE overflows
|
||||
- "cache-miss": number of XBRZRLE page cache misses
|
||||
- "overflow": number of times XBZRLE overflows. This means
|
||||
that the XBZRLE encoding was bigger than just sent the
|
||||
whole page, and then we sent the whole page instead (as as
|
||||
normal page).
|
||||
|
||||
Examples:
|
||||
|
||||
1. Before the first migration
|
||||
|
@ -2589,11 +2600,11 @@ EQMP
|
|||
|
||||
SQMP
|
||||
migrate-set-capabilities
|
||||
-------
|
||||
------------------------
|
||||
|
||||
Enable/Disable migration capabilities
|
||||
|
||||
- "xbzrle": xbzrle support
|
||||
- "xbzrle": XBZRLE support
|
||||
|
||||
Arguments:
|
||||
|
||||
|
@ -2612,7 +2623,7 @@ EQMP
|
|||
},
|
||||
SQMP
|
||||
query-migrate-capabilities
|
||||
-------
|
||||
--------------------------
|
||||
|
||||
Query current migration capabilities
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue