[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/6] qapi: Convert migrate
From: |
Jan Kiszka |
Subject: |
Re: [Qemu-devel] [PATCH 6/6] qapi: Convert migrate |
Date: |
Wed, 15 Feb 2012 14:44:46 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686 (x86_64); de; rv:1.8.1.12) Gecko/20080226 SUSE/2.0.0.12-1.1 Thunderbird/2.0.0.12 Mnenhy/0.7.5.666 |
On 2012-02-15 14:31, Jan Kiszka wrote:
> On 2012-02-10 20:31, Luiz Capitulino wrote:
>> The migrate command is one of those commands where HMP and QMP completely
>> mix up together. This made the conversion to the QAPI (which separates the
>> command into QMP and HMP parts) a bit difficult.
>>
>> The first important change to be noticed is that this commit completes the
>> removal of the Monitor object from migration code, started by the previous
>> commit.
>>
>> Another important and tricky change is about supporting the non-detached
>> mode. That's, if the user doesn't pass '-d' the migrate command will lock
>> the monitor and will only release it when migration is finished.
>>
>> To support that in the new HMP command (hmp_migrate()), it was necessary
>> to create a timer which runs every second and checks if the migration is
>> still active. If it's, the timer callback will re-schedule itself to run
>> one second in the future. If the migration has already finished, the
>> monitor lock is relased and the user can use it normally.
>>
>> All these changes should be transparent to the user.
>>
>> Signed-off-by: Anthony Liguori <address@hidden>
>> Signed-off-by: Luiz Capitulino <address@hidden>
>> ---
>> hmp-commands.hx | 3 +-
>> hmp.c | 51 +++++++++++++++++++++++++++++++++++++++++
>> hmp.h | 1 +
>> migration-fd.c | 2 +-
>> migration.c | 66
>> ++++++++++++++----------------------------------------
>> migration.h | 3 --
>> qapi-schema.json | 21 +++++++++++++++++
>> qmp-commands.hx | 9 +------
>> savevm.c | 13 +++++-----
>> sysemu.h | 2 +-
>> 10 files changed, 100 insertions(+), 71 deletions(-)
>>
>> diff --git a/hmp-commands.hx b/hmp-commands.hx
>> index 573b823..10d3f1b 100644
>> --- a/hmp-commands.hx
>> +++ b/hmp-commands.hx
>> @@ -792,8 +792,7 @@ ETEXI
>> " full copy of disk\n\t\t\t -i for migration without "
>> "shared storage with incremental copy of disk "
>> "(base image shared between src and destination)",
>> - .user_print = monitor_user_noop,
>> - .mhandler.cmd_new = do_migrate,
>> + .mhandler.cmd = hmp_migrate,
>> },
>>
>>
>> diff --git a/hmp.c b/hmp.c
>> index 8ff8c94..70bd574 100644
>> --- a/hmp.c
>> +++ b/hmp.c
>> @@ -14,6 +14,7 @@
>> */
>>
>> #include "hmp.h"
>> +#include "qemu-timer.h"
>> #include "qmp-commands.h"
>>
>> static void hmp_handle_error(Monitor *mon, Error **errp)
>> @@ -851,3 +852,53 @@ void hmp_block_job_cancel(Monitor *mon, const QDict
>> *qdict)
>>
>> hmp_handle_error(mon, &error);
>> }
>> +
>> +typedef struct MigrationStatus
>> +{
>> + QEMUTimer *timer;
>> + Monitor *mon;
>> +} MigrationStatus;
>> +
>> +static void hmp_migrate_status_cb(void *opaque)
>> +{
>> + MigrationStatus *status = opaque;
>> + MigrationInfo *info;
>> +
>> + info = qmp_query_migrate(NULL);
>> + if (!info->has_status || strcmp(info->status, "active") == 0) {
>> + qemu_mod_timer(status->timer, qemu_get_clock_ms(rt_clock) + 1000);
>> + goto out;
>> + }
>> +
>> + monitor_resume(status->mon);
>
> status->mon can be NULL if suspend is not supported, see below.
>
>> + qemu_del_timer(status->timer);
>> + g_free(status);
>> +
>> +out:
Ah, and "else" please, no need for goto here.
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
- Re: [Qemu-devel] [PATCH 5/6] Purge migration of (almost) everything to do with monitors, (continued)
Re: [Qemu-devel] [PATCH 5/6] Purge migration of (almost) everything to do with monitors, Juan Quintela, 2012/02/15
[Qemu-devel] [PATCH 6/6] qapi: Convert migrate, Luiz Capitulino, 2012/02/10
Re: [Qemu-devel] [PATCH 6/6] qapi: Convert migrate, Jan Kiszka, 2012/02/15
- Re: [Qemu-devel] [PATCH 6/6] qapi: Convert migrate,
Jan Kiszka <=
Re: [Qemu-devel] [PATCH 0/6] qapi: Convert migrate, Jan Kiszka, 2012/02/15
- Re: [Qemu-devel] [PATCH 0/6] qapi: Convert migrate, Luiz Capitulino, 2012/02/15
- Re: [Qemu-devel] [PATCH 0/6] qapi: Convert migrate, Jan Kiszka, 2012/02/15
- Re: [Qemu-devel] [PATCH 0/6] qapi: Convert migrate, Luiz Capitulino, 2012/02/15
- Re: [Qemu-devel] [PATCH 0/6] qapi: Convert migrate, Jan Kiszka, 2012/02/15
- Re: [Qemu-devel] [PATCH 0/6] qapi: Convert migrate, Luiz Capitulino, 2012/02/15
- Re: [Qemu-devel] [PATCH 0/6] qapi: Convert migrate, Jan Kiszka, 2012/02/15