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.
Jirka