On 2023/4/24 18:57, Jiri Denemark wrote:
On Fri, Apr 21, 2023 at 17:39:12 +0800, Jiang Jiacheng wrote:
>
> Thank you for your reply and review, I'd appreciate for you to do that.
>
> And I'd also like to confirm that we have the following usages after the
> modification.
> for non-parallel migration, we can use
>
> --compressed
> default to use XBZRLE for migration
>
> --compressed --comp-methods ...
> use the specificed methods for migration
>
> --comp-methods ...
> use the specificed methods for migration, and set the corresponding cap
>
> and those are forbidden since the method isn't supported with
> non-parallel migration
>
> [--compressed] --comp-methods=zlib
> [--compressed] --comp-methods=zstd
Correct.
> for parallel migration, we have to enable the cap using "--parallel",
> and can use like:
>
> --parallel
> default to NONE compression method for parallel migration
>
> --parallel --comp-methods ...
> use the specificed methods for parallel migration
>
> --parallel --compressed --comp-methods ...
> use the specificed methods for parallel migration, it's same as the
> above
>
> and those are forbidden since the method isn't supported with parallel
> migration
>
> --parallel [--compressed] --comp-methods=mt
> --parallel [--compressed] --comp-methods=xbzrle
Right, but see below...
> In particular,
>
> --parallel --compressed
>
> is forbiddene because it leads to a result that NONE compression method
> is chosen but compressed flag is set.
> And I test it on libvirt-6.2.0 with qemu-6.2.0, '--parallel
> --compressed' will set cap 'xbzrle' and 'multifd' both to true,
which I
> think is unreasonable though the migration is succeed.
Hmm, that would mean xbzrle is supported even for parallel migrations
and we should not break this functionality. I experimented a bit and
both mt and xbzrle compression methods seem to work with parallel
migration. Even query-migrate reports compression statistics that
suggest it actually works since they are similar for both normal and
--parallel migrations.
On the other hand according to Juan from QEMU none of them is compatible
with parallel migration. I will try to discuss this a bit more with him,
but so far I think we should allow both xbzrle and mt with parallel
migration to avoid breaking things people might be using.
I found that there is a patch about this in qemu, which disables multifd
capability explicitly when compression=on. Maybe xbzrle have the same
problem as mt?
ref:https://github.com/qemu/qemu/commit/6f39c90b86b9d3772779f873ed88aaa75...
Thanks,
Jiang Jiacheng