On 04/18/2012 08:45 PM, Anthony Liguori wrote:
> On 04/18/2012 12:40 PM, Juan Quintela wrote:
>> Anthony Liguori<anth...@codemonkey.ws>  wrote:
>>> On 04/11/2012 01:49 PM, Orit Wasserman wrote:
>>>> Signed-off-by: Orit Wasserman<owass...@redhat.com>
>>>> Signed-off-by: Benoit Hudzia<benoit.hud...@sap.com>
>>>> Signed-off-by: Petter Svard<pett...@cs.umu.se>
>>>> Signed-off-by: Aidan Shribman<aidan.shrib...@sap.com>
>>>> ---
>>>>    arch_init.c |   26 ++++++++++++++------------
>>>>    1 files changed, 14 insertions(+), 12 deletions(-)
>>>>
>>>> diff --git a/arch_init.c b/arch_init.c
>>>> index 2e534f1..47b9fef 100644
>>>> --- a/arch_init.c
>>>> +++ b/arch_init.c
>>>> @@ -347,6 +347,18 @@ void cache_resize(int64_t new_size)
>>>>        g_free(old_page_cache);
>>>>    }
>>>>
>>>> +static void save_block_hdr(QEMUFile *f, RAMBlock *block, ram_addr_t 
>>>> offset,
>>>> +        int cont, int flag)
>>>> +{
>>>> +        qemu_put_be64(f, offset | cont | flag);
>>>> +        if (!cont) {
>>>> +                qemu_put_byte(f, strlen(block->idstr));
>>>> +                qemu_put_buffer(f, (uint8_t *)block->idstr,
>>>> +                                strlen(block->idstr));
>>>> +        }
>>>> +
>>>> +}
>>>
>>>
>>> Any time we're changing protocols/formats, we need to document it.  We
>>> need a docs/xbzrle.txt (and it should be before this patch).
>>
>> Agreed.
>>
>>> It's not clear to me how we preserve compatibility here either.
>>> You're potentially passing garbage to an older QEMU.
>>
>> I think not.  Only if you are migrating with the -x option.  And then,
>> you get what you asked for.
>>
>>> I thought I had previously asked for a monitor command to negotiate
>>> extensions for migration?
>>
>> I think it is in another patch.
> 
> So I think we also need:
> 
> { 'command': 'set-migration-capabilities',
>     'data': { 'enable': ['MigrationCapability'] }
> 
> Then a management tool just needs to:
> 
>     caps_from_src = query-migration-capabilities(src_qmp_session)
>     caps_from_dst = query-migration-capabilities(dst_qmp_session)
> 
>     common_caps = intersection(caps_from_src, caps_from_dst)

In patch  8.

> 
>     set-migration-capabilities(src_qmp_session, common_caps);
>     set-migration-capabilities(dst_qmp_session, common_caps);
> 
> Then libvirt doesn't special code to handle XBRLE or whatever the next new 
> migration protocol feature is.  With the current patches, libvirt would need 
> to create a table of:
> 
>    migration_features = {'xblre': '-x'}
> 
> Which would change every time we add a feature.  That seems pretty 
> undesirable to me.

I feel that capabilities are static either you have them or not. 
I prefer set-migration-options command to enable usage of some capability 
instead.

Thanks,
Orit
> 
> Regards,
> 
> Anthony Liguori
> 
>>
>> Later, Juan
> 
> 


Reply via email to