[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 - Profihost AG s.priebe at profihost.ag
Mon Feb 10 10:02:33 CET 2014


Am 10.02.2014 09:52, schrieb Alexandre DERUMIER:
> I have done tests with current proxmox code, and xbzrle is disable by default

OK strange.

> capabilities: xbzrle: off x-rdma-pin-all: off auto-converge: on zero-blocks: off 
> Migration status: active
> total time: 762 milliseconds
> expected downtime: 100 milliseconds
> setup: 19 milliseconds
> transferred ram: 46709 kbytes
> throughput: 121.57 mbps
> remaining ram: 143232 kbytes
> total ram: 2105944 kbytes
> duplicate: 478626 pages
> skipped: 0 pages
> normal: 12051 pages
> normal bytes: 48204 kbytes
> 
> 
> forcing capability
> ------------------
> 
> capabilities: xbzrle: on x-rdma-pin-all: off auto-converge: on zero-blocks: off 
> Migration status: active
> total time: 712 milliseconds
> expected downtime: 100 milliseconds
> setup: 19 milliseconds
> transferred ram: 52873 kbytes
> throughput: 397.83 mbps
> remaining ram: 141216 kbytes
> total ram: 2105944 kbytes
> duplicate: 478622 pages
> skipped: 0 pages
> normal: 12559 pages
> normal bytes: 50236 kbytes
> cache size: 134217728 bytes
> xbzrle transferred: 0 kbytes
> xbzrle pages: 0 pages
> xbzrle cache miss: 0
> xbzrle overflow : 0
> 
> 
> 
> 
> Are you sure that your vms didn't have xbzrle enabled from a previous migration ?
> (Because when the capability is turned on once, it's always enabled for next migrations)

mhm might be - i thought i was sure they don't. Sorry about that. At
least it still makes sense to explicit disable everything we don't want ;-)

> (Anyway, I think we can apply your patches, to be sure that capabilities are turned on or off)

Thanks

Stefan


> 
> ----- Mail original ----- 
> 
> De: "Alexandre DERUMIER" <aderumier at odiso.com> 
> À: "Stefan Priebe - Profihost AG" <s.priebe at profihost.ag> 
> Cc: pve-devel at pve.proxmox.com 
> Envoyé: Lundi 10 Février 2014 09:33:17 
> Objet: Re: [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 
> 
>>> you can see if it is off or on by checking the xbzrle cache size during 
>>> migration. If it is > 0 it is on. 
> 
> maybe this is because we always setup cachesize ? 
> 
> #set cachesize 10% of the total memory 
> my $cachesize = int($conf->{memory}*1048576/10); 
> eval { 
> PVE::QemuServer::vm_mon_cmd_nocheck($vmid, "migrate-set-cache-size", value => $cachesize); 
> }; 
> 
> (Maybe this is forcing xbzrle on ?) 
> 
> I'll do tests today. 
> 
> 
> 
> ----- Mail original ----- 
> 
> De: "Stefan Priebe - Profihost AG" <s.priebe at profihost.ag> 
> À: "Alexandre DERUMIER" <aderumier at odiso.com> 
> Cc: pve-devel at pve.proxmox.com 
> Envoyé: Lundi 10 Février 2014 09:28:21 
> Objet: Re: [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 
> 
> Hi Alex, 
> 
> you can see if it is off or on by checking the xbzrle cache size during 
> migration. If it is > 0 it is on. 
> 
> Stefan 
> Am 10.02.2014 09:23, schrieb Alexandre DERUMIER: 
>>>> No idea why they enable all features now by default. 
>>
>> This is strange, if I do a "info migrate" in monitor during the migration, the features are off by default. (at least on source) 
>>
>>
>> ----- Mail original ----- 
>>
>> De: "Stefan Priebe - Profihost AG" <s.priebe at profihost.ag> 
>> À: "Alexandre DERUMIER" <aderumier at odiso.com> 
>> Cc: pve-devel at pve.proxmox.com 
>> Envoyé: Lundi 10 Février 2014 08:00:22 
>> Objet: Re: [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 
>>
>>
>> Am 10.02.2014 um 07:42 schrieb Alexandre DERUMIER <aderumier at odiso.com>: 
>>
>>>>> I won't try them ;-) xbzrle is just unstable since a long time i don't 
>>>>> believe it's suddenly stable ;- 
>>>
>>> Yes, same here, I also wanted to say that it's was not stable yet. 
>>
>> No idea why they enable all features now by default. 
>>
>> Stefan 
>>
>>>
>>> ----- Mail original ----- 
>>>
>>> De: "Stefan Priebe" <s.priebe at profihost.ag> 
>>> À: "Alexandre DERUMIER" <aderumier at odiso.com> 
>>> Cc: pve-devel at pve.proxmox.com 
>>> Envoyé: Dimanche 9 Février 2014 15:24:04 
>>> Objet: Re: [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 
>>>
>>> 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); 
>>>>
> _______________________________________________ 
> pve-devel mailing list 
> pve-devel at pve.proxmox.com 
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 
> 



More information about the pve-devel mailing list