[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v9 08/10] Add migration capabilites
From: |
Orit Wasserman |
Subject: |
Re: [Qemu-devel] [PATCH v9 08/10] Add migration capabilites |
Date: |
Thu, 19 Apr 2012 10:10:39 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20120329 Thunderbird/11.0.1 |
On 04/18/2012 08:36 PM, Anthony Liguori wrote:
> On 04/11/2012 01:49 PM, Orit Wasserman wrote:
>> Add migration capabiltes that can be queried by the management.
>> The managment can query to source and the destination in order to
>> verify both support some maigration capability (currently only XBZRLE).
>>
>> Signed-off-by: Orit Wasserman<address@hidden>
>
> Ah, excellent. I'd suggest moving this earlier in the series.
OK.
>
>> ---
>> hmp.c | 18 ++++++++++++++++++
>> hmp.h | 1 +
>> migration.c | 11 +++++++++++
>> monitor.c | 7 +++++++
>> qapi-schema.json | 24 ++++++++++++++++++++++++
>> qmp-commands.hx | 24 ++++++++++++++++++++++++
>> savevm.c | 2 +-
>> 7 files changed, 86 insertions(+), 1 deletions(-)
>>
>> diff --git a/hmp.c b/hmp.c
>> index 891cac6..d681bfc 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -156,6 +156,24 @@ void hmp_info_migrate(Monitor *mon)
>> qapi_free_MigrationInfo(info);
>> }
>>
>> +void hmp_info_migration_caps(Monitor *mon)
>> +{
>> + MigrationCapList *caps_list, *cap;
>> +
>> + caps_list = qmp_query_migration_caps(NULL);
>> + if (!caps_list) {
>> + monitor_printf(mon, "No migration capabilities found\n");
>> + return;
>> + }
>> +
>> + for (cap = caps_list; cap; cap = cap->next) {
>> + monitor_printf(mon, "%s\n", cap->value->name);
>> + }
>> +
>> + qapi_free_MigrationCapList(caps_list);
>> +
>> +}
>> +
>> void hmp_info_cpus(Monitor *mon)
>> {
>> CpuInfoList *cpu_list, *cpu;
>> diff --git a/hmp.h b/hmp.h
>> index 443b812..868bfb3 100644
>> --- a/hmp.h
>> +++ b/hmp.h
>> @@ -25,6 +25,7 @@ void hmp_info_uuid(Monitor *mon);
>> void hmp_info_chardev(Monitor *mon);
>> void hmp_info_mice(Monitor *mon);
>> void hmp_info_migrate(Monitor *mon);
>> +void hmp_info_migration_caps(Monitor *mon);
>> void hmp_info_cpus(Monitor *mon);
>> void hmp_info_block(Monitor *mon);
>> void hmp_info_blockstats(Monitor *mon);
>> diff --git a/migration.c b/migration.c
>> index cea75aa..7578163 100644
>> --- a/migration.c
>> +++ b/migration.c
>> @@ -162,6 +162,17 @@ MigrationInfo *qmp_query_migrate(Error **errp)
>> return info;
>> }
>>
>> +MigrationCapList *qmp_query_migration_caps(Error **errp)
>> +{
>> + MigrationCapList *caps_list = g_malloc0(sizeof(*caps_list));
>> +
>> + caps_list->value = g_malloc(sizeof(*caps_list->value));
>> + caps_list->value->name = g_strdup("uleb");
>> + caps_list->next = NULL;
>> +
>> + return caps_list;
>> +}
>> +
>> /* shared migration helpers */
>>
>> static int migrate_fd_cleanup(MigrationState *s)
>> diff --git a/monitor.c b/monitor.c
>> index 8946a10..ff434e0 100644
>> --- a/monitor.c
>> +++ b/monitor.c
>> @@ -2558,6 +2558,13 @@ static mon_cmd_t info_cmds[] = {
>> .mhandler.info = hmp_info_migrate,
>> },
>> {
>> + .name = "migration_caps",
>> + .args_type = "",
>> + .params = "",
>> + .help = "show migration capabilties",
>> + .mhandler.info = hmp_info_migration_caps,
>> + },
>> + {
>> .name = "balloon",
>> .args_type = "",
>> .params = "",
>> diff --git a/qapi-schema.json b/qapi-schema.json
>> index 200e4fc..775fe56 100644
>> --- a/qapi-schema.json
>> +++ b/qapi-schema.json
>> @@ -276,6 +276,30 @@
>> { 'command': 'query-migrate', 'returns': 'MigrationInfo' }
>>
>> ##
>> +# @MigrationCap
>> +#
>> +# Information about current migration capabilites.
>> +#
>> +# @xbzrle: true if the current migration supports xbzrle
>> +#
>> +# Since: 1.1
>> +##
>> +{ 'type': 'MigrationCap',
>> + 'data': { 'name': 'str'} }
>
> Please make each cap a QAPI enumeration.
>
> So:
>
> { 'enum': 'MigrationCapability',
> 'data': ['xel'] }
>
> { 'command': 'query-migration-caps', 'returns': ['MigrationCapability'] }
>
> No need to abbreviate btw.
I will fix it
>
>> diff --git a/savevm.c b/savevm.c
>> index fbf1903..3c0b7cc 100644
>> --- a/savevm.c
>> +++ b/savevm.c
>> @@ -1573,7 +1573,7 @@ int qemu_savevm_state_begin(QEMUFile *f,
>> }
>> se->set_params(params, se->opaque);
>> }
>> -
>> +
>> qemu_put_be32(f, QEMU_VM_FILE_MAGIC);
>> qemu_put_be32(f, QEMU_VM_FILE_VERSION);
>
> Please drop this.
ok
Thanks,
Orit
>
> Regards,
>
> Anthony Liguori
>
>
>
- Re: [Qemu-devel] [PATCH v9 05/10] Add MigrationParams structure, (continued)
- [Qemu-devel] [PATCH v9 06/10] Add XBZRLE to ram_save_block and ram_save_live, Orit Wasserman, 2012/04/11
- [Qemu-devel] [PATCH v9 08/10] Add migration capabilites, Orit Wasserman, 2012/04/11
- [Qemu-devel] [PATCH v9 07/10] Add XBZRLE option to migrate command, Orit Wasserman, 2012/04/11
- [Qemu-devel] [PATCH v9 09/10] Add set_cachesize command, Orit Wasserman, 2012/04/11
- [Qemu-devel] [PATCH v9 10/10] Add XBZRLE statistics, Orit Wasserman, 2012/04/11