[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] migration: Improve QMP documentation
From: |
Markus Armbruster |
Subject: |
Re: [Qemu-devel] [PATCH] migration: Improve QMP documentation |
Date: |
Fri, 22 Feb 2013 14:03:31 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux) |
Juan Quintela <address@hidden> writes:
> Signed-off-by: Juan Quintela <address@hidden>
> ---
> qmp-commands.hx | 50 ++++++++++++++++++++++++++++++--------------------
> 1 file changed, 30 insertions(+), 20 deletions(-)
>
> diff --git a/qmp-commands.hx b/qmp-commands.hx
> index 799adea..6d037bd 100644
> --- a/qmp-commands.hx
> +++ b/qmp-commands.hx
> @@ -644,7 +644,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
> @@ -667,7 +667,7 @@ EQMP
>
> SQMP
> query-migrate-cache-size
> ----------------------
> +------------------------
>
> Show cache size to be used by XBZRLE migration
>
> @@ -2419,6 +2419,7 @@ SQMP
> query-migrate
> -------------
>
> +
> Migration status.
>
> Return a json-object. If migration is active there will be another
> json-object
Extra blank line; please drop this hunk.
> @@ -2438,25 +2439,34 @@ The main json-object contains the following:
> total amount in ms for downtime that was calculated on
> 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 containing the same byte. They
> + are sent over the wire as a single byte (json-int)
I'm confused. Do you mean pages that are entirely filled with the same
byte? Or pages with contents identical to some other, non-duplicate
page?
Sure we want to promise these are sent as a single byte?
> + - "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)
Begs the question who wants "normal" then.
Why don't "upper levels" want duplicate-bytes, too?
A page is either sent normally (and counted in "normal"), or as
duplicate (and counted in "duplicate"), or XBZRLE compressed. Correct?
> - "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 amount in bytes (json-int)
"disk amount" sounds weird. "disk size"? "size of disk"?
> - "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": total XBZRLE bytes transferred as xbzrle pages
Is this the number of bytes before or after compression?
> - "pages": number of XBZRLE compressed pages
If "bytes" is after compression: why don't "upper levels" want #bytes
before compression, like they want "normal-bytes" rather than "normal"?
> - - "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
> @@ -2567,11 +2577,11 @@ EQMP
>
> SQMP
> migrate-set-capabilities
> --------
> +------------------------
>
> Enable/Disable migration capabilities
>
> -- "xbzrle": xbzrle support
> +- "xbzrle": XBZRLE support
>
> Arguments:
>
Extra points for attention to detail :)
> @@ -2590,7 +2600,7 @@ EQMP
> },
> SQMP
> query-migrate-capabilities
> --------
> +--------------------------
>
> Query current migration capabilities