From: Eric Blake <eblake@redhat.com>
To: Liliang <liangx.z.li@intel.com>, qemu-devel@nongnu.org
Cc: Li Liang <liang.z.li@intel.com>,
armbru@redhat.com, lcapitulino@redhat.com
Subject: Re: [Qemu-devel] [PATCH 1/2] migration: Implement a multiple compress threads feature to accelerate live migration
Date: Tue, 04 Nov 2014 17:13:29 +0100 [thread overview]
Message-ID: <5458FB29.3090804@redhat.com> (raw)
In-Reply-To: <1414734011-16001-1-git-send-email-liangx.z.li@intel.com>
[-- Attachment #1: Type: text/plain, Size: 4786 bytes --]
On 10/31/2014 06:40 AM, Liliang wrote:
> From: Li Liang <liang.z.li@intel.com>
>
[metacomment] This message does not contain an 'In-Reply-To' header, and
thus does not appear threaded in spite of the name indicating that it is
part of a series. You generally want to make sure that all patches in a
series are in reply to the 0/n cover letter.
> Instead of sending the guest memory directly, this solution compress the
> ram page before sending, after receiving, the data will be decompressed.
> This feature can help to reduce the data transferred about 60%, this
> is very useful when the network bandwidth is limited, and the migration
> time can also be reduced about 80%. The feature is off by default,
> fllowing the document docs/multiple-compression-threads.txt for
s/fllowing/following/
Umm, that file doesn't exist in the tree yet. But I finally located
your 2/2 patch that proposes to add it; I suggest you rebase the series
to propose the docs first (for more rationale why, look at
http://wiki.qemu.org/Contribute/SubmitAPatch)
> information to use it.
>
> Signed-off-by: Li Liang <liang.z.li@intel.com>
> ---
> +++ b/qapi-schema.json
> @@ -497,7 +497,7 @@
> # Since: 1.2
> ##
> { 'enum': 'MigrationCapability',
> - 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks'] }
> + 'data': ['xbzrle', 'rdma-pin-all', 'auto-converge', 'zero-blocks', 'compress'] }
Missing documentation of the 'compress' flag, including the fact that it
is '(since 2.3)'.
>
> ##
> # @MigrationCapabilityStatus
> @@ -1382,6 +1382,88 @@
> { 'command': 'query-migrate-cache-size', 'returns': 'int' }
>
> ##
> +# @migrate-set-compress-level
> +#
> +# Set compress level
> +#
> +# @value: compress level int
> +#
> +# The compress level will be an integer between 0 and 9.
> +# The compress level can be modified before and during ongoing migration
> +#
> +# Returns: nothing on success
> +#
> +# Since: 1.2
Wrong. This was not part of qemu 1.2. The earliest it can be included
is 2.3.
Also, I'm not a fan of adding yet more one-off migration tunable
commands. I have had threads in the mailing list archives before about
a proposal to make migration tunables more generic (right now,
MigrationCapability is a set of boolean-only fields, but I had a
proposal that would make it a union type where we could then add integer
capabilities, and then your compression level would set the actual
integer capability rather than just being a boolean). Alas, I'm not in
a good position to search the archives for my previous proposals at the
moment, or I would point you to a URL of the archived message...
> +##
> +{ 'command': 'migrate-set-compress-level', 'data': {'value': 'int'} }
> +
> +##
> +# @query-migrate-compress-level
> +#
> +# query compress level
> +#
> +# Returns: compress level int
> +#
> +# Since: 1.2
Again, should be 2.3, and may be overkill if we instead enhance the
existing migration capabilities to express multiple types (my same
proposal mentioned above).
> +##
> +{ 'command': 'query-migrate-compress-level', 'returns': 'int' }
> +
> +##
> +# @migrate-set-compress-threads
> +#
> +# Set compress threads
> +#
> +# @value: compress threads int
> +#
> +# The compress thread count is an integer between 1 and 255.
> +# The compress level can be modified only before migration
> +#
> +# Returns: nothing on success
> +#
> +# Since: 1.2
Same story.
> +##
> +{ 'command': 'migrate-set-compress-threads', 'data': {'value': 'int'} }
> +
> +##
> +# @query-migrate-compress-threads
> +#
> +# query compress threads
> +#
> +# Returns: compress threads int
> +#
> +# Since: 1.2
and again
> +##
> +{ 'command': 'query-migrate-compress-threads', 'returns': 'int' }
> +
> +##
> +##
> +# @migrate-set-decompress-threads
> +#
> +# Set decompress threads
> +#
> +# @value: decompress threads int
> +#
> +# The decompress thread count is an integer between 1 and 64.
> +# The decompress level can be modified only before migration
> +#
> +# Returns: nothing on success
> +#
> +# Since: 1.2
and again. Why is this limited to 64 threads, when compression is
allowed 255 threads?
> +##
> +{ 'command': 'migrate-set-decompress-threads', 'data': {'value': 'int'} }
> +
> +##
> +# @query-migrate-decompress-threads
> +#
> +# query decompress threads
> +#
> +# Returns: decompress threads int
> +#
> +# Since: 1.2
and again
> +##
> +{ 'command': 'query-migrate-decompress-threads', 'returns': 'int' }
> +
> +##
> # @ObjectPropertyInfo:
> #
> # @name: the name of the property
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 539 bytes --]
prev parent reply other threads:[~2014-11-04 16:13 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-31 5:40 [Qemu-devel] [PATCH 1/2] migration: Implement a multiple compress threads feature to accelerate live migration Liliang
2014-11-03 3:25 ` Li, Liang Z
2014-11-04 16:13 ` Eric Blake [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5458FB29.3090804@redhat.com \
--to=eblake@redhat.com \
--cc=armbru@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=liang.z.li@intel.com \
--cc=liangx.z.li@intel.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.