[pve-devel] [PATCH] since qemu 1.7 xbzrle is AUTOMATICALLY enabled in the end of transfer - we need to explicit disable all feature we do not want

Stefan Priebe s.priebe at profihost.ag
Sun Feb 9 15:24:04 CET 2014


Am 09.02.2014 14:45, schrieb Alexandre DERUMIER:
> Good catch !

Thanks!

> I see in migration.c
> static MigrationState *migrate_init(const MigrationParams *params)
> {
>      ...
>      bool enabled_capabilities[MIGRATION_CAPABILITY_MAX];
>
> So I think that all capabilities are enabled by default now.
>
> (BTW, any chance that xbzlre is related to your migration swap error ?)

Yes it's exactly xbzrle - that was the reason i detected that it was 
enabled.

>
> I see 2recents commits in qemu
>
> "migration:fix free XBZRLE decoded_buf wrong"
> http://git.qemu.org/?p=qemu.git;a=commit;h=905f26f2221e139ac0e7317ddac158c50f5cf876
>
> "Set xbzrle buffers to NULL after freeing them to avoid double free errors"
> http://git.qemu.org/?p=qemu.git;a=commit;h=f6c6483b259a2395ee44cfa966f622e0f2dbe2ae

I won't try them ;-) xbzrle is just unstable since a long time i don't 
believe it's suddenly stable ;-)

> ----- Mail original -----
>
> De: "Stefan Priebe" <s.priebe at profihost.ag>
> À: pve-devel at pve.proxmox.com
> Envoyé: Samedi 8 Février 2014 20:20:55
> Objet: [pve-devel] [PATCH] since qemu 1.7 xbzrle is AUTOMATICALLY enabled in the end of transfer - we need to explicit disable all feature we do not want
>
>
> Signed-off-by: Stefan Priebe <s.priebe at profihost.ag>
> ---
> PVE/QemuServer.pm | 8 +++-----
> 1 file changed, 3 insertions(+), 5 deletions(-)
>
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 8e2184e..3bb9820 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -3162,12 +3162,10 @@ sub set_migration_caps {
> my $supported_capabilities = vm_mon_cmd_nocheck($vmid, "query-migrate-capabilities");
>
> for my $supported_capability (@$supported_capabilities) {
> - if ($enabled_cap->{$supported_capability->{capability}} eq 1) {
> - push @$cap_ref, {
> - capability => $supported_capability->{capability},
> - state => JSON::true,
> + push @$cap_ref, {
> + capability => $supported_capability->{capability},
> + state => ($enabled_cap->{$supported_capability->{capability}}) ? JSON::true : JSON::false,
> };
> - }
> }
>
> vm_mon_cmd_nocheck($vmid, "migrate-set-capabilities", capabilities => $cap_ref);
>



More information about the pve-devel mailing list