>>sub PVE::QemuServer::set_migration_caps {
>>my ($vmid) = @_;
>>
>>my $capability = {};
>>my $capability2 = {};
>>
>>...
>>
>>PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate-set-capabilities",
>>capabilities => [ $capability, $capability2 ]);
>>}
Ok, I'll do like this
>>Does this break migration if VM is started with older KVM?
I'll test.
I have tested with same qemu version, with source with auto-converge disable
and destination with auto-converge enable,it's works fine.
So, I think it should works, but I don't known if qmp will die or not if trying
to enable an unavailable capability.
I think the best way could be to test which capability is available for current
running qemu version, with qmp query-migrate-capabilities.
----- Mail original -----
De: "Dietmar Maurer" <[email protected]>
À: "Alexandre Derumier" <[email protected]>, [email protected]
Envoyé: Mercredi 8 Janvier 2014 06:38:03
Objet: RE: [pve-devel] [PATCH] migration : enable auto-converge capability
Hi Alexandre,
first, sorry for the delay.
Comments inline:
> diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm index
> d980f0b..a6c0ada 100644
> --- a/PVE/QemuMigrate.pm
> +++ b/PVE/QemuMigrate.pm
> @@ -385,12 +385,16 @@ sub phase2 {
> $self->log('info', "migrate_set_downtime error: $@") if $@;
> }
>
> - my $capabilities = {};
> - $capabilities->{capability} = "xbzrle";
> - $capabilities->{state} = JSON::false;
> + my $capability = {};
> + my $capability2 = {};
> +
> + $capability->{capability} = "xbzrle";
> + $capability->{state} = JSON::false;
> + $capability2->{capability} = "auto-converge";
> + $capability2->{state} = JSON::true;
We use the same code at two locations, so it is maybe worth to factor out:
sub get_migrate_caps {
return [....];
}
or maybe:
sub PVE::QemuServer::set_migration_caps {
my ($vmid) = @_;
my $capability = {};
my $capability2 = {};
...
PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate-set-capabilities",
capabilities => [ $capability, $capability2 ]);
}
>
> eval {
> - PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate-set-
> capabilities", capabilities => [$capabilities]);
> + PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate-set-
> capabilities",
> +capabilities => [ $capability, $capability2 ]);
> };
Does this break migration if VM is started with older KVM?
> #set cachesize 10% of the total memory diff --git a/PVE/QemuServer.pm
> b/PVE/QemuServer.pm index a5576a6..ffad5f2 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -3160,10 +3160,17 @@ sub vm_start {
> }
>
> if ($migratedfrom) {
> - my $capabilities = {};
> - $capabilities->{capability} = "xbzrle";
> - $capabilities->{state} = JSON::true;
> - eval { vm_mon_cmd_nocheck($vmid, "migrate-set-capabilities",
> capabilities => [$capabilities]); };
> + my $capability = {};
> + my $capability2 = {};
> +
> + $capability->{capability} = "xbzrle";
> + $capability->{state} = JSON::false;
> + $capability2->{capability} = "auto-converge";
> + $capability2->{state} = JSON::true;
> +
> + eval {
> + PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate-set-
> capabilities", capabilities => [ $capability, $capability2 ]);
> + };
> warn $@ if $@;
>
> if ($spice_port) {
> --
> 1.7.10.4
>
> _______________________________________________
> pve-devel mailing list
> [email protected]
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
_______________________________________________
pve-devel mailing list
[email protected]
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel