[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 1/6] migration: Add multi-thread compress method
From: |
Markus Armbruster |
Subject: |
Re: [PATCH 1/6] migration: Add multi-thread compress method |
Date: |
Fri, 27 Nov 2020 10:48:22 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) |
Kevin, Max, suggest to skip right to Qcow2CompressionType.
Zeyu Jin <jinzeyu@huawei.com> writes:
> A multi-thread compress method parameter is added to hold the method we
> are going to use. By default the 'zlib' method is used to maintain the
> compatibility as before.
>
> Signed-off-by: Zeyu Jin <jinzeyu@huawei.com>
> Signed-off-by: Ying Fang <fangying1@huawei.com>
[...]
> diff --git a/qapi/migration.json b/qapi/migration.json
> index 3c75820527..2ed6a55b92 100644
> --- a/qapi/migration.json
> +++ b/qapi/migration.json
> @@ -525,6 +525,19 @@
> 'data': [ 'none', 'zlib',
> { 'name': 'zstd', 'if': 'defined(CONFIG_ZSTD)' } ] }
>
> +##
> +# @CompressMethod:
> +#
> +# An enumeration of multi-thread compression methods.
> +#
> +# @zlib: use zlib compression method.
> +#
> +# Since: 6.0
> +#
> +##
> +{ 'enum': 'CompressMethod',
> + 'data': [ 'zlib' ] }
> +
> ##
> # @BitmapMigrationBitmapAlias:
> #
> @@ -599,6 +612,9 @@
> # compression, so set the decompress-threads to the
> number about 1/4
> # of compress-threads is adequate.
> #
> +# @compress-method: Set compression method to use in multi-thread
> compression.
> +# Defaults to zlib. (Since 6.0)
We already have @multifd-compression. Why do we need to control the two
separately? Can you give a use case for different settings?
If we do want two parameters: the names @compress-method and
@multifd-compression are inconsistent. According to your comment,
@compress-method applies only to multi-thread compression. That leads
me to suggest renaming it to @multi-thread-compression.
After PATCH 4, CompressMethod is almost the same as MultiFDCompression:
{ 'enum': 'CompressMethod',
'data': [ 'zlib' ] }
'data': [ 'zlib', { 'name': 'zstd', 'if': 'defined(CONFIG_ZSTD)' } ] }
{ 'enum': 'MultiFDCompression',
'data': [ 'none', 'zlib',
{ 'name': 'zstd', 'if': 'defined(CONFIG_ZSTD)' } ] }
The difference is member 'none'. Why does compression 'none' make sense
for multi-fd, but not for multi-thread?
If the difference is wanted: the names are inconsistent. Less of an
issue than member names, because type names are not externally visible.
Let's make them consistent anyway.
Hmm, there's also Qcow2CompressionType. That's another conversation;
I'll start a new thread for it.
[...]