mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
qapi: Convert migrate
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 is, 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 this in the new HMP command (hmp_migrate()), it is necessary to create a timer which runs every second and checks if the migration is still active. If it is, the timer callback will re-schedule itself to run one second in the future. If the migration has already finished, the monitor lock is released and the user can use it normally. All these changes should be transparent to the user. Signed-off-by: Anthony Liguori <aliguori@us.ibm.com> Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
parent
539de1246d
commit
e1c37d0e94
10 changed files with 123 additions and 71 deletions
|
@ -26,7 +26,6 @@ struct MigrationState
|
|||
int64_t bandwidth_limit;
|
||||
QEMUFile *file;
|
||||
int fd;
|
||||
Monitor *mon;
|
||||
int state;
|
||||
int (*get_error)(MigrationState *s);
|
||||
int (*close)(MigrationState *s);
|
||||
|
@ -40,8 +39,6 @@ void process_incoming_migration(QEMUFile *f);
|
|||
|
||||
int qemu_start_incoming_migration(const char *uri);
|
||||
|
||||
int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data);
|
||||
|
||||
uint64_t migrate_max_downtime(void);
|
||||
|
||||
void do_info_migrate_print(Monitor *mon, const QObject *data);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue