[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 16/22] migration: Move exported functions to the
From: |
Yoshiaki Tamura |
Subject: |
Re: [Qemu-devel] [PATCH 16/22] migration: Move exported functions to the end of the file |
Date: |
Wed, 23 Feb 2011 18:07:02 +0900 |
2011/2/23 Juan Quintela <address@hidden>:
> This means we can remove the two forward declarations.
>
> Signed-off-by: Juan Quintela <address@hidden>
> ---
> migration.c | 188
> +++++++++++++++++++++++++++++------------------------------
> 1 files changed, 92 insertions(+), 96 deletions(-)
>
> diff --git a/migration.c b/migration.c
> index 92bff01..d7dfe1e 100644
> --- a/migration.c
> +++ b/migration.c
> @@ -76,90 +76,6 @@ void process_incoming_migration(QEMUFile *f)
> vm_start();
> }
>
> -static MigrationState *migrate_create_state(Monitor *mon, int64_t
> bandwidth_limit,
> - int detach, int blk, int inc);
> -
> -int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
> -{
> - MigrationState *s = NULL;
> - const char *p;
> - int detach = qdict_get_try_bool(qdict, "detach", 0);
> - int blk = qdict_get_try_bool(qdict, "blk", 0);
> - int inc = qdict_get_try_bool(qdict, "inc", 0);
> - const char *uri = qdict_get_str(qdict, "uri");
> - int ret;
> -
> - if (current_migration &&
> - current_migration->state == MIG_STATE_ACTIVE) {
> - monitor_printf(mon, "migration already in progress\n");
> - return -1;
> - }
> -
> - if (qemu_savevm_state_blocked(mon)) {
> - return -1;
> - }
> -
> - s = migrate_create_state(mon, max_throttle, detach, blk, inc);
> -
> - if (strstart(uri, "tcp:", &p)) {
> - ret = tcp_start_outgoing_migration(s, p);
> -#if !defined(WIN32)
> - } else if (strstart(uri, "exec:", &p)) {
> - ret = exec_start_outgoing_migration(s, p);
> - } else if (strstart(uri, "unix:", &p)) {
> - ret = unix_start_outgoing_migration(s, p);
> - } else if (strstart(uri, "fd:", &p)) {
> - ret = fd_start_outgoing_migration(s, p);
> -#endif
> - } else {
> - monitor_printf(mon, "unknown migration protocol: %s\n", uri);
> - ret = -EINVAL;
> - goto free_migrate_state;
> - }
> -
> - if (ret < 0) {
> - monitor_printf(mon, "migration failed\n");
> - goto free_migrate_state;
> - }
> -
> - qemu_free(current_migration);
> - current_migration = s;
> - notifier_list_notify(&migration_state_notifiers);
> - return 0;
> -free_migrate_state:
> - qemu_free(s);
> - return -1;
> -}
> -
> -static void migrate_fd_cancel(MigrationState *s);
> -
> -int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data)
> -{
> - if (current_migration)
> - migrate_fd_cancel(current_migration);
> -
> - return 0;
> -}
> -
> -int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject
> **ret_data)
> -{
> - int64_t d;
> - MigrationState *s;
> -
> - d = qdict_get_int(qdict, "value");
> - if (d < 0) {
> - d = 0;
> - }
> - max_throttle = d;
> -
> - s = current_migration;
> - if (s && s->file) {
> - qemu_file_set_rate_limit(s->file, max_throttle);
> - }
> -
> - return 0;
> -}
> -
> /* amount of nanoseconds we are willing to wait for migration to be down.
> * the choice of nanoseconds is because it is the maximum resolution that
> * get_clock() can achieve. It is an internal measure. All user-visible
> @@ -171,18 +87,6 @@ uint64_t migrate_max_downtime(void)
> return max_downtime;
> }
>
> -int do_migrate_set_downtime(Monitor *mon, const QDict *qdict,
> - QObject **ret_data)
> -{
> - double d;
> -
> - d = qdict_get_double(qdict, "value") * 1e9;
> - d = MAX(0, MIN(UINT64_MAX, d));
> - max_downtime = (uint64_t)d;
> -
> - return 0;
> -}
> -
> static void migrate_print_status(Monitor *mon, const char *name,
> const QDict *status_dict)
> {
> @@ -483,3 +387,95 @@ static MigrationState *migrate_create_state(Monitor
> *mon, int64_t bandwidth_limi
>
> return s;
> }
> +
> +int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
> +{
> + MigrationState *s = NULL;
> + const char *p;
> + int detach = qdict_get_try_bool(qdict, "detach", 0);
> + int blk = qdict_get_try_bool(qdict, "blk", 0);
> + int inc = qdict_get_try_bool(qdict, "inc", 0);
> + const char *uri = qdict_get_str(qdict, "uri");
> + int ret;
> +
> + if (current_migration &&
> + current_migration->state == MIG_STATE_ACTIVE) {
> + monitor_printf(mon, "migration already in progress\n");
> + return -1;
> + }
> +
> + if (qemu_savevm_state_blocked(mon)) {
> + return -1;
> + }
> +
> + s = migrate_create_state(mon, max_throttle, detach, blk, inc);
> +
> + if (strstart(uri, "tcp:", &p)) {
> + ret = tcp_start_outgoing_migration(s, p);
> +#if !defined(WIN32)
> + } else if (strstart(uri, "exec:", &p)) {
> + ret = exec_start_outgoing_migration(s, p);
> + } else if (strstart(uri, "unix:", &p)) {
> + ret = unix_start_outgoing_migration(s, p);
> + } else if (strstart(uri, "fd:", &p)) {
> + ret = fd_start_outgoing_migration(s, p);
> +#endif
> + } else {
> + monitor_printf(mon, "unknown migration protocol: %s\n", uri);
> + ret = -EINVAL;
> + goto free_migrate_state;
> + }
> +
> + if (ret < 0) {
> + monitor_printf(mon, "migration failed\n");
> + goto free_migrate_state;
> + }
> +
> + qemu_free(current_migration);
> + current_migration = s;
> + notifier_list_notify(&migration_state_notifiers);
> + return 0;
> +free_migrate_state:
> + qemu_free(s);
> + return -1;
> +}
> +
> +int do_migrate_cancel(Monitor *mon, const QDict *qdict, QObject **ret_data)
> +{
> + if (current_migration)
> + migrate_fd_cancel(current_migration);
> +
> + return 0;
> +}
> +
> +int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject
> **ret_data)
> +{
> + int64_t d;
> + MigrationState *s;
> +
> + d = qdict_get_int(qdict, "value");
> + if (d < 0) {
> + d = 0;
> + }
> + max_throttle = d;
> +
> + s = current_migration;
> + if (s && s->file) {
> + qemu_file_set_rate_limit(s->file, max_throttle);
> + }
> +
> + return 0;
> +}
> +
> +int do_migrate_set_downtime(Monitor *mon, const QDict *qdict,
> + QObject **ret_data)
> +{
> + double d;
> +
> + d = qdict_get_double(qdict, "value") * 1e9;
> + d = MAX(0, MIN(UINT64_MAX, d));
> + max_downtime = (uint64_t)d;
> +
> + return 0;
> +}
> +
Looks good to me.
Yoshi
> --
> 1.7.4
>
>
>
- Re: [Qemu-devel] Re: [PATCH 10/22] migration: Refactor and simplify error checking in migrate_fd_put_ready, (continued)
- [Qemu-devel] [PATCH 11/22] migration: Introduce migrate_fd_completed() for consistenncy, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 12/22] migration: Use migrate_fd_error() in last place that set status to ERROR, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 13/22] migration: Our release callback was just free, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 15/22] migration: Remove migration cancel() callback, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 14/22] migration: Remove get_status() accessor, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 16/22] migration: Move exported functions to the end of the file, Juan Quintela, 2011/02/22
- Re: [Qemu-devel] [PATCH 16/22] migration: Move exported functions to the end of the file,
Yoshiaki Tamura <=
- [Qemu-devel] [PATCH 17/22] migration: use global variable directly, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 18/22] migration: another case of global variable assigned to local one, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 19/22] migration: convert current_migration from pointer to struct, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 21/22] migration: Export a function that tells if the migration has finished correctly, Juan Quintela, 2011/02/22
- [Qemu-devel] [PATCH 22/22] migration: Make state definitions local, Juan Quintela, 2011/02/22